zirconium
غش ألعاب قابل للحقن عبر DLL للعبة Call of Duty: Black Ops 2 Zombies (مع تعديل Plutonium).
إخلاء مسؤولية:
- هذا المشروع موجود لأنني نشأت على BO2، وكان أيضًا هدفًا جيدًا للهندسة العكسية. إنها لعبة AAA عمرها 14 عامًا وميتة عمليًا، لكنها أيضًا تطبيق حديث نسبيًا لمحاولة عكس هندسة محرك ألعاب كبير.
- أنا لا أؤيد الغش. لست مسؤولًا عندما يتم حظرك حتمًا بسبب استخدام هذا. لذا، استخدمه على مسؤوليتك الخاصة.
معاينة:


الميزات:
- وضع الخلود (God mode)
- الاختفاء عن الزومبي
- ESP
- Aimbot
- زاوية رؤية الشخص الثالث (Third person FOV)
- بدون انتشار (No spread)
- بدون ارتداد (No recoil)
- النقل الفوري (Teleport)
- ضبط ما يلي:
- المال
- الذخيرة
- القنابل اليدوية/الألغام/قنابل القردة إلخ
- ارتفاع القفز
- الجاذبية
- السرعة
البناء:
git clone --recurse-submodules https://www.github.com/robertmotr/zirconium.git
cd zirconium/codebase
cmake -B ../cmake-build -G "Visual Studio 17 2022" -A Win32
cmake --build ../cmake-build --config Release
سيكون ملف DLL في ../build/Release/zirconium.dll
الاستخدام:
- افتح اللعبة، وادخل إلى مباراة زومبي
- استخدم Xenos injector للعثور على
plutonium-bootstrapper-win32.exe في قائمة العمليات وحدده
- حمّل
zirconium.dll كملف DLL واحقنه
- لقد استخدمت واختبرت فقط خيارات الحقن الأصلية الافتراضية، ولا أعرف ما إذا كان أي شيء آخر مثل manual mapping سيعمل. نفس الفكرة تنطبق على أي من مليار تطبيق مختلف لمحقنات DLL الموجودة.
الشكر:
شكرًا لجميع الأشخاص على unknowncheats.me الذين قاموا بعكس هندسة الكثير من الإزاحات (offsets) :)
ملاحظات مثيرة للاهتمام صادفتها:
- يوجد ملف PDB لخادم اللعب الجماعي (multiplayer server)، والذي يشارك الكثير من الدوال الشائعة مع العميل (حتى مع تعديلات Plutonium). يمكن أن يساعد هذا في تسريع الهندسة العكسية من خلال التحقق من تقدمك في IDA مقابل ملف PDB، ولكن فقط إلى حد معين.
- يستخدم Plutonium برنامج Themida، ولكن فقط أجزاء معينة من قسم .text مشفرة. تجاوز مضاد التصحيح يتطلب فقط استخدام ملف تعريف Themida الخاص بـ ScyllaHide على x64dbg. لا يبدو أنه يستخدم جميع ميزات Themida المجنونة لجعل الهندسة العكسية جحيمًا.
- يقوم Plutonium بتشغيل checksum على قسم .text (ربما أقسام أخرى) يتحقق من عدم تغيير أي بايتات عن الكود الأصلي. هذا يعني أن أي تعديل مهما كان في قسم .text سيغير الـ checksum. أفضل طريقة لربط الدوال (hooking) هي استخدام نقاط توقف الأجهزة (https://en.wikipedia.org/wiki/X86_debug_register) وجعلها تقفز إلى معالجات الاستثناءات الموجهة (vectored exception handlers) للدوال التي تريد ربطها. هذا سيحافظ على سلامة الـ checksum وبالتالي يبقى غير مكتشف.
- بالنظر إلى أن DX11 هو DLL خارج قسم .text، فمن الممكن ألا يكون من الضروري استخدام نقاط توقف الأجهزة + VEH لربط
IDXGISwapChain::Present دون اكتشاف. في البداية قضيت عامًا من التقدم المتقطع محاولًا معرفة كيفية عمل trampoline hook لهذه الدالة (والتي لا يزال بإمكانك استخدامها إذا فعّلت علامة بناء في CMakeLists.txt)، ولكن بعد اكتشاف الـ checksum تخليت عنها وانتقلت إلى الربط بنقاط توقف الأجهزة لكل شيء.
TODO:
- طلبت من claude تنظيف الكود الخاص بي قبل إصدار هذا لجعله يبدو نظيفًا وقد حوله إلى شيء سيء... ربما يومًا ما أعيده إلى الكود الأصلي الخاص بي
- تنعيم الـ aimbot/مزيد من خيارات الـ aimbot
- spinbot
- silent aim
- engine chams
- عصا سحرية/كومة زومبي(؟)
تم إنجازه:
- رفع الملف التنفيذي في Releases
- الشخص الثالث
- إعادة هيكلة التسجيل (logging)
- نص ملون بناءً على مستوى السجل
- إزالة حل القوالب العودية الغريب
- إضافة مستوى السجل + تسجيل شرطي بناءً على المستوى
- نقل نظام البناء إلى cmake من vs
- aimbot
- خيار إزالة حقن DLL وإعادة تعيين الحالة
- تبويب تصحيح أفضل
- النقل الفوري
- وضع الخلود
- ESP
- الهيكل العظمي
- خطوط الالتقاط
- المسافة
- الصحة