وعليكم السلام
لا توجد العاب كثيرة تسخدم vmp بشكل مباشر وحالياً الالعاب المشهورة تستخدم DRM مثل حماية Denuvo والتي بدورها تعتمد على حماية vmp لتصعيب الهندسة العكسية لـ Denuvo.
الالعاب التي لا تستخدم Denuvo بل تعتمد على Steam تستخدم Steam DRM لحماية نفسها من التلاعب بها. الـ DRM بشكل اساسي مهمته حفظ حقوق الملكية ومنع العبث بالنسخة كنسخها للعب بها على حاسوب ثاني.
يجدر ملاحظة انه يمكنك استخدام Steam DRM مع DRM اخر كـ Denuvo ولكن بقيامك بهذا ستعطل ميزات الـ DRM حق Steam
إقتباس :Using the Steam Wrapper with Other DRM
The Steam wrapper can and should be used in combination with other DRM solutions. To do so, apply the Steam wrapper in compatibility mode first before applying any other DRM. Apply it first so that it does not interfere with the DRM solution. Compatibility mode will disable DRM capabilities of the wrapper.
Submit the exe in compatibility mode by either selecting it in the drop down on the Steamworks page or using the appropriate flags in the automated drmtool.
حماية Steam يمكن التخلص منها بسهولة وهذا ايظا مذكور على موقعهم الرسمي
https://partner.steamgames.com/doc/features/drm
حماية Steam DRM او Steamworks Digital Rights Management هي حماية تقوم بتغليف ملفك التنفيذي للتاكد بانك المالك الشرعي للعبة و تقوم بتشغيل Steam قبل اللعبة وكذلك تشفير ملف اللعبة الى حين موعد صدورها الرسمي لمنع اي تسريب قبل الموعد الرسمي لاطلاقها
إقتباس :Steamworks Digital Rights Management wraps your game's compiled executable and checks to make sure that it is running under an authenticated instance of Steam. This DRM solution is the same as the one used to protect games like Half-Life 2 and Counter-Strike: Source. Steamworks DRM has been heavily road-tested and is customer-friendly.
In addition to DRM solutions, Steamworks also offers protection for game through day one release by shipping encrypted media to stores worldwide. There's no worry that your game will leak early from the manufacturing path, because your game stays encrypted until the moment you decide to release it. This protection can be added to your game simply by handing us finished bits or a gold master.
حماية Steam DRM تقوم بتعديل ملف اللعبه لكي اول ما تعمل اللعبة يتم تنفيذ كود Steam DRM والذي بدورة يقوم بالتحقق من شرعية حسابك وملكك للعبة اولاً وبعدما يتم فك تشفير الكود (في حال تم اختيار التشفير وهذا الخيار اختياري) ويتم تمرير التحكم لملف اللعبه وهذه الطريقة نحن نعرفها جيداً فأي packer يستخدمها.
الـ Steam DRM تقوم بتعديل الـ PE وتضيف قسم جديد باسم (bind.) في نهاية الـ PE للملف التنفيذي ويتم تعديل الـ original start address (OEP) لتشير لهذا القسم والـ checksum يتم اعادة حسابة بعد استخدام الـ Steam DRM
حالياً توجد اربع اصدارات لـ Steam DRM
- Version 1.0 هذا الاصدار لـ Steam DRM صدر في 2007
- يقدم تحقق بسيط من شرعية ملكك للعبة
- لا يدعم خاصية تشفير كود اللعبة
- لا يدعم 64 بت
- برنامج ProtectionID الخاص بفحص الالعاب لا يمكنه التعرف على هذه النسخة
- Version 1.5
- برنامج ProtectionID يتعرف عليها باسم Steam Stub
- يتحقق من مكتبة الـ Steam.dll بأن لديها شهادة رقمية صالحة لمنعك من تشغيل العاب لا تملكها
- تم اضافة خاصية تشفير كود اللعبة، التشفير يستخدم odd block cipher والذي يستعمل CBC mode
- Version 2 صدر في 2008
- برنامج ProtectionID يتعرف عليها باسم Steam Stub (new #1)
- يحتوي خاصية كشف المنقحات لمنع التنقيح ولا يعمد على دوال ويندوز في ذلك ما عدى PEB
- يحوي مكتبة DLL مشفرة تقوم بالعمل الذي يخص الحماية وتحميلها للذاكرة لا يتم من قبل دوال ويندوز بل من قبل الـ stub نفسة والـ DLL لا يتم كتابتها على القرص الصلب مطلقاً
- تحوي ثلاث مراحل للتشفير
- الاولى فك تشفير الـ config والذي يحوي import pointers ، معلومات الكود، الـ app ID ومعلومات عن المرحلتين التاليتين
- الثانية تحوي معلومات عن المرحلة الثالثة ويستخدم نفس الـ odd block cipher المذكور اعلاه
- الثالثة هي الـ DLL والمشفرة بـ XTEA وبعدما يتم فك تشفيرها وتحميلها يتم الانتقال للمرحلة التالية
- يستعمل public-key cryptography للتحقق من التوقيع الرقمي، يتم التحقق من steamclient.dll وكذلك ملف اللعبة للتاكد انه موقع رقميا وسليم
- يتم مقارنة الـ app ID من Steam API مع الـ built in value باستعمال (steam_appid.txt ) للتاكد انك مالك اصلي للعبه
- كود اللعبة مشفر بـ AES-256
- Version 3 وصدر في 2013
- برنامج ProtectionID يتعرف عليها باسم Steam Stub (new #2)
- مختلف عن الاصدار الثاني بانه لا يحوي مرحلتان للـ config والقيم المهمة لذلك لا حاجة لفك تشفير الـ DLL لفك تشفير اللعبة
- دعم 64 بت
حالياً توجد اداة Steamless من برمجة المهندس العكسي atom0s والتي تقوم بازالة الـ Steam DRM
https://github.com/atom0s/Steamless
ولكن هذه الاداة حسب كلام المبرمج فقط تقوم بحذف الـ SteamStub DRM واذا كانت اللعبه تستخدم steam_api.dll عليك بالقيام بذلك يدوياً وحذف الاعتماد عليها
اداة Steamless تقوم بفك الضغط (unpack) عن اللعبه بالتخلص من SteamStub DRM وبذلك يمكنك تنقيح اللعبه باستخدام Ida pro او x64dbg.
--------
للـ Steam DRM يوجد شكلان او قسمان
احدهما هو الـ SteamStub DRM ويمكن التخلص منه عن طريق Steamless
اما الشكل الثاني فهو يستخدم الـ steam api المتمثل بالمكتبتين steam_api.dll و steam_api64.dll ويمكن التخلص منه عن طريق عمل محاكاة للـ api تبع steam وافضل برنامج محاكاة حالياً هو goldberg emulator
https://gitlab.com/Mr_Goldberg/goldberg_emulator
طبعاً الشكلان ليسا طريقتين منفردتين بل وجهان لعملة واحدة ويستخدمان معاً