السلام عليكم عندي استفسار فيما يخص اداة التعديل PYG _dll عندي قيامي بتعديل على البرامج المحمية بواسطة هذه الاداة ينجح التعديل لكن المشكل عند اعادة تشغيل النطام اجد التعديل الذي قمت به بواسطة هذه الاداة لا يشتغل
وعليكم السلام،اظن لان عناوين الدوال win32 api تغيرت
جرب ان تحفظ عنوان النداء الذي قمت بعمل( CALL Win32 api (patching
ثم تعيد تشغيل النظام و تشغل البرنامج attach وتذهب لذلك العنوان وتراه ان تغير عنوان النداء
(10-01-2021, 05:05 PM)Cyros كتب : [ -> ]عناوين الدوال win32 api تغيرت
شكر على الشرح لكن اذا كانت عناوين الدوال تتغير في كل مرة عند اعادة تشغيل النظام اذا فما فائدة هذه الاداة ام هناك حل ربما لا اعرفه
لم اجرب هذه الاداة لانها تدعم مكتبات قليلة لا يستخدمها كل البرامج
اظن بالطريقة التالية بامكانك تغير وعمل CALL Win32API بسلاسة
استخدام طريقة CreateRemoteThread لحقن dll
بالمكتبة التي حقنتها استخدم الدالة GetProcAddress لجلب عنوان الدالة التي تريد ان تعمل لها نداء ثم استخدم الدالة WriteProcess لتقوم بكنابة من المكتبة التي حقنتها للبرنامج
سترى كثير امثلة وشرح عن هذه الطريقة اثناء بحثك في الانترنت خصوصا في موقع CodeProject
ستجد ايضا ان بحثت DLL Injector جاهز بواجهة رسومية يغنيك عن كتابة برنامج حقن مكتبة dll
الحل يكمن في تجنب التعديل على النداءات Call 0xXXXXXXXX لأنها تتغير بكل مرة يشغل بها البرنامج وذلك بسبب الASLR
وايضا كاضافة خفيفة اذا كنت مسطب انتي فايرس يجب تعطيله او عمل استثناء للملف .
(10-01-2021, 08:25 PM)EarthMan123 كتب : [ -> ]الحل يكمن في تجنب التعديل على النداءات Call 0xXXXXXXXX لأنها تتغير بكل مرة يشغل بها البرنامج وذلك بسبب الASLR
لا لم اعدل على اي نداء انا عدلت فقط في قفزة قمت بتغير عنوانها فقط فتم كسر البرنامج لكن وجدت مشكل حفظ التعديل لان البرنامج محمي بحماية themida فاستخدمت الاداة ونجح التعديل لكن عند اعادة تشغيل النظام رجع البرنامج كما كان ولم يشتغل التعديل فوجدت ان عنوان التعديل يتغير في كل مرة اعيد تشغيل فيها النظام لاادري اما النظام يغير العنواين ام من الحماية
(10-01-2021, 08:29 PM)farfes كتب : [ -> ]وايضا كاضافة خفيفة اذا كنت مسطب انتي فايرس يجب تعطيله او عمل استثناء للملف
لست مسطب اي برنامج حماية
(10-01-2021, 05:29 PM)EAX+4 كتب : [ -> ]ام هناك حل ربما لا اعرفه
الحل يجب عليك تفعيل خيار Target Have ASLR مع إدراج عنوان Base قسم الكود و الإعتماد على عناوين RVA بدل VA
بالتوفيق.
(11-01-2021, 12:42 AM)M!X0R كتب : [ -> ]الحل يجب عليك تفعيل خيار Target Have ASLR مع إدراج عنوان Base قسم الكود و الإعتماد على عناوين RVA بدل VA
شكرا لكن كيف احصل على عنوان BASE وRVA
(11-01-2021, 07:35 PM)EAX+4 كتب : [ -> ]شكرا لكن كيف احصل على عنوان BASE وRVA
مثال:
اريد التعديل على هذه التعليمة
0040FBEA . /75 0C JNZ SHORT 0040FBF8
لكي تكون بهذا الشكل
0040FBEA /EB 0C JMP SHORT 0040FBF8
نجلب Base عن طريق ALT+E من المنقح Olly or X64dbg
Executable modules, item 0
Base=00400000
Size=00033000 (208896.)
Entry=0040FB34 Target.<ModuleEntryPoint>
Name=Target
File version=1.90
Path=C:\Users\M!X0R\Desktop\Target.exe
كما تلاحظ عنوان Base يساوي 400000 و هو العنوان الذي ندرجه
الآن باقي عنوان RVA قم بطرح عنوان VA من Base لتحصل على RVA
0040FBEA طرح 400000 يساوي FBEA
أتمنى يكون كل شيء واضح
بالتوفيق.