(01-09-2020, 05:43 PM)mohamad كتب : المشكلة عندي هي في فهم واستنتاج ما يجري بالبرنامج , وهدا يحتاج تراكم خبرة طويلة بالمجال , وللاسف لا اجد شروحات تشرح الحمايات وحتى باصداراتها القديمة بشكل مفصل جدا , اجدها افعل كذا وكذا وتفك الحماية والسلام , يعني بدون فهم الاشياء ولما فعلناها , وهدا يضعنا بخيارين اما التقليد لدون فهم , او اعادة اختراع العجلة بالبحث لسنين لفهم كل ما يجري من الحماية والبقاء متخلفين عن الجديد ,
, واصبت في ان الهوك هو نوع من الكسل , ولاكن لا مفر
تعرف لماذا لا نفهم ...
انا اقولك لان عرفت السبب اول شي عدم معرفه الاسمبلي والمسجلات والـflags وعدم فهم بعض دوال API مثلا نراه توجد حمايات بالبداية تقوم بوضع نسخة المفكوكة بالميموري وبعدها يتم تنفيذها اذا فهمنا ماهي API المسوؤلة عن عمل هذا الشي راح نفهم مثلا Virtualalloc
تراه بعض الحمايات مثلا ارمديلو .. للبحث عن OEP ملفات dll اول شي يتم وضعها بالميموري ويعدها حجز عنوان ف للوصول الى OEP نضع نقطة توقف على VirtualAlloc وعندة يتم حجز الذاكرة ... ولتنفذها ويذهب الى .text اي pe section code للتنفيذ ف اذا ازلنا نقطة الـ virtualalloc ووضعنا نقطة توقف على .text سيتوقف على نقطة بداية تنفيذ ...
وللوصول الى oep هذه الشروحات الاخ ابو البراء
https://www.at4re.net/f/thread-1317.html
https://www.at4re.net/f/thread-1303.html
هذه طريقة المكدس Stack كل الفكرة هي نشغل البرنامج .. وبعدها نعمل pause وبعدها نرها بداية عنوان .text اي سيكشن الكود لان الاكواد التنفيذ داخل هذا السيكشن وبعدها نذهب الى المكدس ونبحث عن عنوان يكون من ضمن عنوان .text ونرجع له وسيكون هذا العنوان اقرب عنوان لنقطة الانطلاق
وبالنسبة للحمايات مثلا بداية كود compiler لغة c++ يتم استدعاء دالة GetVersion ف بما ان يتم تنفيذ هذه الدالة بالبداية فتكون هذه الدالة اقرب دالة لنقطة الانطلاق
ياريت اذا في خطا واحد من الشباب يصححها