بسم الله الرحمن الرحيم
التشفير من الأشياء التي ستعترضك كثيرا في مجال الهندسة العكسية
مافائدة التشفير :
1/ تصغير حجم البرنامج
2/ حماية البرامج التجارية من كسر حمايتها ( الخوف من مبرمجي اللأسمبلي )
3/ الحماية من سرقة أفكار أو الطرق التي برمج بها و الدوال المستعملة في البرنامج ( الخوف من عكس الكود من قبل مبرمجي الأسمبلي )
ملاحظة : هل عرفتم اللآن قوة لغة الأسمبلي و مخاطر تعلمها هذا دافع يجعل الشركات الكبرى تسيئ الى لغة الأسمبلي و تقول عنها كلام يجعلك تكره هذه اللغة و لا تتعلمها مثل لغة من المستوى المنخفض, قديمة, مضيعة وقت,لا يمكن أن تفعل بها شيئ. و هذا الكلام هو خوف من تعلمك لهذه اللغة حيث تصبح قادر على عكس الكود و معرفة أفكار البرنامج, كذلك تستطيع كسر حمايته و تستعمله مجانا من دون حق إستعمال
نعود الى موضوعنا, في هذا الدرس سنتعلم فك تشفير يدوي للمشفر الشهير upx و هو أسهل تشفير يمكنك فكه في عالم الهندسة العكسية
بنية التشفير :
ستجد هذه الأوامر في بداية أي برنامج مشفر ب upx
pushad ; دفع قيم المسجلا في المكدس (stack)
| ;/
| ;|
| ;|
| ;|
| ;| كود التشفير الخاص ب upx
| ;|
| ;|
| ;\
popad ; إسترجاع قيم المسجلات من المكدس
jmp OriginalEntryPoint ; يقفز الى بداية البرنامج ( نقطة الإدخال الأصلية)
حمل البرنامج المرفق و هو برنامج upx لكن مشفر (مشفر نفسه بنفسه J) و إفتحه ب ollydbg ستظهر شاشة dos إضغط على Minimize [-] و تظهر رسالة تقول أن البرنامج مشفر أو مضغوط شاهد الصورة :
بنية التشفير في البرنامج :
ماذا لدينا :
pushad ; دفع قيم المسجلا في المكدس (stack) : في العنوان 446480
كود التشفير الخاص ب upx : من العنوان 446481 الى العنوان 4465DC
popad ; إسترجاع قيم المسجلات من المكدس : في العنوان 4465E2
jmp OriginalEntryPoint ; يقفز الى بداية البرنامج ( نقطة الإدخال الأصلية) : في العنوان 4465E3
مبدأ عن التشفير : إن وجدت في برنامج مشفر القفزة الى نقطة الإدخال الأصلية فإعتبر نفسك فككت التشفير
فك التشفير :
اللأدوات اللازمة :
olly plugin (لاحق) و هو ollydump
ستجده في الملف المرفق قم بإخراجه و نسخه في مجلد ollydbg
مراحل فك التشفير :
نفتح البرنامج داخل ollydbg و ننفذ الحطوات التالية
1/نضع نقطة توقف (break point) في القفزة الى بداية البرنامج (في العنوان 4465E3)
2/نشغل البرنامج (نضغط F9 من لوحة المفاتيح)
3/سيتوقف في breakpoint نقوم بتنفيذ أمر القفز بالضغط على F8
4/نستخدم ollydump ( لنستخرج البرنامج مفكوك التشفيرمن الذاكرة) و إصلاح نقطة بداية الكود الأصلية للبرنامج وهي 1000 : لأن كود أي البرنامج يبدأ من 1000 وهي إجرائات الملف التنفيذي pe
نشرع في فك التشفير :
1/ إضغط على CTRL+G أكتب العنوان 4465E3 ثم موافق, ثم إضغط على F2 لوضع نقطة توقف
2/ نضغط F9 لنشغل البرنامج
3/ إضغط على F8 لتنفيذ أمر القفزة
4/ البرنامج الآن مفكوك التشفير في الذاكرة, نستخرجه ب ollydump نفذ التالي :
Plugins ---> OllyDump ---> OllyDump debugged process
ثم نفذ ما في الصورة :
البرنامج الآن هو مفكوك التشفير :
أغلق برنامج ollydbg ثم إفتح البرنامج من جديد ب ollydbg
ماذا تلاحظ :
1/ الرسالة تنذرك بأن البرنامج مشفر أو مضغوط إختفت
2/ تغير كود البرنامج تماما
3/ زاد حجم البرنامج
إنتهى الدرس
ملاحظة :
أرجو أن يكون هناك تفاعل و نقد للموضوع لا تدخل تستهلك و تخرج فأنت يججب أن تشارك لتستفيد و تفيد
