المشاركات : 625
المواضيع : 22
الإعجاب المحصل:
0
الإعجاب المعطى: 0
الإنتساب : Nov 2018
السمعة :
0
08-04-2020, 07:19 PM
(آخر تعديل لهذه المشاركة : 08-04-2020, 07:21 PM بواسطة Cyperior.)
وعليكم السلام ورحمة الله وبركاته
ليعمل البرنامج المحمي بعد التعديل عليه فيجب عليك التعديل على دوال التحقق الموجودة فيه بأنواعها ( CRC الملف, والذاكرة وغيرها )
وذلك هو عمل ال Inline Patching.
عند عمل Inline Patching فنحن نقوم بالتعديل على البرنامج نفسه من خلال عمل تجويف للأكواد ( Code Caving ) مما يعني التعديل على الكود الأصلي ولكن عدم التخلي عنه باستخدامه في الكود المجوف.
أما إن كنت تعني عمل لودر فذاك يحتاج إلى الإنتباه فقط لتحقق الذاكرة.
هذا والله أعلم.
المشاركات : 559
المواضيع : 25
الإعجاب المحصل:
0
الإعجاب المعطى: 0
الإنتساب : Nov 2018
السمعة :
10
08-04-2020, 07:21 PM
(آخر تعديل لهذه المشاركة : 08-04-2020, 09:03 PM بواسطة mohamad.)
لم افهم ما تريد بالضبط
ولاكن البرنامج المحمي غالبا لا يقبل اي تعديل ، لانه يجري اختبار على نفسه اذا كان حدث به اي تغيير فيغلق نفسه في حالة عدلت عليه، لذا يجب فك الحماية اذا اردت عمل باتش للملف , او ان تعمل لودر
ارجو ان اكون اجبتك
المشاركات : 1,504
المواضيع : 287
الإعجاب المحصل:
76
الإعجاب المعطى: 42
الإنتساب : Oct 2018
السمعة :
36
القاعدة: للتعديل على ملف مضغوط او محمي يجب فك الضغط او الحماية أولا بعد ذلك عدل ما شئت ان كان لا يوجد تحقق CRC
أما إذا كان يوجد تحقق يجب عليك تجاوزه أولا...بعد ذلك عدل كما تشاء.
Inline Patching هي عملية حقن الكود بدون فك الضغط او الحماية و يتم بعدة طرق أشهرها اللودر، المكتبات التي يحملها البرنامج بالذاكرة أثناء الإقلاع مثل مكتبات DLL أو عن طريق Hook او Direct Inline الذي يتم على الملف المستهدف نفسه
هناك دروس و بعض التحديات مع الحلول تطرقت لهاته النقاط شاهد و ستفهم أكثر
لَّا إِلَٰهَ إِلَّا أَنتَ سُبْحَانَكَ إِنِّي كُنتُ مِنَ الظَّالِمِينْ.
عن أبي هريرة -رضي الله عنه- أن رسول الله -صلى الله عليه وسلم- كانَ يقولُ في سجودِهِ: «اللَّهُمَّ اغْفِرْ لي ذَنْبِي كُلَّهُ: دِقَّهُ وَجِلَّهُ، وَأَوَّلَهُ وَآخِرَهُ، وَعَلاَنِيَتَهُ وَسِرَّهُ».
(صحيح - رواه مسلم).
المشاركات : 625
المواضيع : 22
الإعجاب المحصل:
0
الإعجاب المعطى: 0
الإنتساب : Nov 2018
السمعة :
0
08-04-2020, 08:30 PM
(آخر تعديل لهذه المشاركة : 08-04-2020, 08:31 PM بواسطة Cyperior.)
للإجابة على تساؤلك الأول
ال Code Caving هو كما قال الأستاذ M!X0R في رده يسمى ب Direct Inline Patching
بالطبع يتحقق البرنامج من تلك الأماكن ولكن كما ذكرت يجب عليك تعطيل دوال التحقق.
وللتساؤل الثاني
البرنامج يمشي بحسب سير الأوامر يسمى هذا بال Code Flow
فمثلا لتخطي الشاشة المزعجة Nag Screen نجعل البرنامج يتجاوز تلك الشاشة عن طريق التعديل على النداء أو التحقق المؤدي إليها سواء بالتعديل المباشر أو عن طريق ال Code Caving وبالطبع كل هذا يتم قبل كود الشاشة المزعجة.
ويمكنك البحث عن ال Inline Patching للضاغط UPX فهو سهل وستفهم ما أصبوا إليه عدا تجاوز دوال التحقق.
المشاركات : 559
المواضيع : 25
الإعجاب المحصل:
0
الإعجاب المعطى: 0
الإنتساب : Nov 2018
السمعة :
10
تحتاج تعلم عن الاسمبلي اكثر , لا تستعجل
المشاركات : 625
المواضيع : 22
الإعجاب المحصل:
0
الإعجاب المعطى: 0
الإنتساب : Nov 2018
السمعة :
0
سأوضح لك بشكل أفضل
لنفترض أن مكان التحقق من الشاشة المزعجة في العنوان A
وأن مكان الكود المجوف في العنوان B
إذا نقوم بالتعديل على العنوان A بالتعليمة push B ثم ret أو بتعليمة call B مما سيؤدي بتغيير سير البرنامج من العنوان A إلى العنوان B وبذلك ينفذ كودنا المجوف مع الأخذ بالاعتبار إعادة التعليمات التي تم تغييرها عند تعديلنا على العنوان A,ومع ملاحظة أن نهاية الكود المجوف تكون التعليمة ret التي تعود إلى تنفيذ التعليمات التي بعد التعليمة A
إن لم تصل المعلومة فأخبرني لأريك بصورة من برنامج حي.