تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تمرين] حللني ان استطعت
#1
اتباعا لفكرة قسم التحديات، اضع امامكم بنفس المبدأ تحدي برمجي...
تمرين "حللني ان استطعت" هو عبارة عن تطبيق يقوم بانجاز مهمة بسيطة.

المطلوب:
- تحليله و فهم ما يقوم به و اخيرا اعادة كتابة التطبيق بأي لغة برمجة تريدون...

الملفات التنفيذية بدون الحلول ترفق في نفس الموضوع و بعد ثلاثة ايام ان شاء الله تطرح الحلول الصحيحة...

ملاحظة:
المشاركة في محاولة حل التمرين مفتوحة، يمكنكم طرح الاستسفارات و كل الأعضاء يمكنهم الاجابة بدون تقييدات...

رابط خارجي: فرصة للأعضاء الذين بريدون الحصول على نقاط :
https://www.solidfiles.com/v/eWMmKYk7kLGaK


الملفات المرفقة
.rar   main32.rar (الحجم : 485 bytes / التحميلات : 7)
أعضاء أعجبوا بهذه المشاركة : EarthMan123 , ashrafonlinenow , siddigss , rce3033 , PowerUser
#2
بما أن المشاركة الجماعية مفتوحة، لعلي أضع بعض ملاحظاتي وأسئلتي.
للوضوح، سأستعمل ال structures التالية لـ :
 
File Header
https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_file_header
Optional Header
https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_optional_header32

------------------------------------------------------
------------------------------------------------------

1- يبدو أن البرنامج يقوم بفك تشفير مصفوفة الحروف (char*) من العنوان 0x04000E2 إلى آخر الملف المكتوب المرفق ويكتب النتيجة ابتداء من العنوان 0x420000، حيث يمكننا أن نرى اسدعاء دالة printf هناك.

2-
IMAGE_OPTIONAL_HEADER32.SizeOfImage = 0x020077EB
هذا هو ما يسمح للبرنامج بالوصول إلى عنوان الذاكرة 0x420000 وما بعد، أليس كذلك ؟

3- جدول ال section فارغ، أي
IMAGE_FILE_HEADER.NumberOfSections = 0
هل من فائدة للربط (linking) بهذه الطريقة ؟ أهذا لتجنب عملية ال relocation ؟
I am homesick for a place I have not even visited
مَا ابْيَضَّ وجهٌ باكتساب كريمةٍ ... حتى يسوِّدهُ شُحوب المَطلبِ
أعضاء أعجبوا بهذه المشاركة : EarthMan123 , HORMA , rce3033
#3
(27-03-2021, 01:04 PM)overlap كتب : اعادة كتابة التطبيق بأي لغة برمجة تريدون...

يبدو لي هذا Crafted exe ؟
أعضاء أعجبوا بهذه المشاركة :
#4
الجزء الأول من التمرين:

التطبيق مضغوط بــ (Crinkler) Compressor على شكل Linker مخصص لتطبيقات الــ Demo scene الصغيرة الحجم في اساسها...
إقتباس : Crinkler is an executable file compressor (or rather, a compressing linker) for Windows for compressing small demoscene executables. As of 2020, it is the most widely used tool for compressing 1k/4k/8k intros.
https://github.com/runestubbe/Crinkler

الملف الناتج (على القرص) يصبح صعب التحليل (Static analysis) بسبب التعديلات  التي يقوم بها Crinkler على بنية الملف التنفيذي (PE File structures) و بما ان ادوات التحليل و المنقحات تقوم بقراءة عناوين و احجام الحقول التي تكون هيكل الملف التنفيذي، سوف تعتبر ان الملف التنفيذي تالف Corrupted، و تصبح هذه الأدوات عير عملية...

الجزء الثاني من التمرين:
ايجاد و فهم عمل الخوارزمية التي تعالج كلمة AT4RE و محاكاتها باي لغة برمجة تريدون...
أعضاء أعجبوا بهذه المشاركة : rce3033


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم