Musab Al-Haddad
Musab Al-Haddad

@Malware_Daddy

19 تغريدة 79 قراءة Jan 27, 2022
السلام عليكم ورحمة الله وبركاته ,
في هذا الثريد بتكلم عن الهندسة العكسية او تعديل البرامج [Software Cracking] بالضبط وحسوي مثال عملي بسيط جدا لها بطريقة بستخدمها احيانا [String Reference] لكن طبعا المثال الي حستخدمه مايتعبر الا جزء بسيط من هذا التخصص الكبير
عن أبى هريرة، رضي الله عنه، أن النبي، صلى الله عليه وسلم، قال: "لَا يَشْكُرُ اللَّهَ مَنْ لَا يَشْكُرُ النَّاسَ". (أخرجه البخاري، وصححه الألباني) , وفي هذا الثريد حاب اتوجه بالشكر لناس ساعدتني باشياء كثير
@ChadOfArabia
@HitmanF15
@talsonslay
@HassanAlachek
@BassamAssiri
شرح البرنامج والأدوات المستخدمة والمصطلحات والمصادر موجود في هذا الميديم 🤞:
ونشكر الأسطورة [@TheRealSouma] على التدقيق عليه
@maldoc96.fg/intro-to-software-cracking-or-something-19bd93c4c950" target="_blank" rel="noopener" onclick="event.stopPropagation()">medium.com
بختصار حقولك ان الكراك هوا جزء من اجزاء الهندسة العكسية , بمعناه اننا حنعدل على برنامج عشان نخليه يسوي شي معين بدلا من المطلوب منه , تختلف الأسباب وكثيرة لكن في سياقنا برضو : إما لجل نزيد استخدامنا للبرنامج بعد انتهاء مدة تجريبية , او نصلح برنامج فيه خطأ معين بيصير فيه الخ…
^ بس تحذير انو ترا كسر حمايه او التعديل على برنامج معين بدون تصريح ترا شي يعاقب عليه القانون
فعشان كذا حنستخدم موقع فيه تحديات لهواه هذا المجال الا وهوا :
crackmes.one
تقدر تنزل التحدي الي استخدمناه من هنا :
crackinglessons.com
المطلوب :
هذا برنامج بسيط من نوع cli , اول ماتشغله عن طريق موجه الأوامر حيطلع يقولك try harder ويقفل , فنبغى نكركه عشان يطلعنا نتيجة اخرى والي هيا حتكون الفلاق ,
اول شي حنسويه حنضيفه في Detect it Easy عشان نعرف شوية معلومات عن البرنامج
اول شي زي ماهو طالع عندنا انه ملف من نوع
PE (.exe)
ثاني شي الي هوا النوع , ومكتوب انه من نوع
Console
يعني برنامج يشتغل في موجه الأوامر وماله واجهة مستخدم زي النوع الثاني من البرامج الي من نوع Gui
ثالث شي الا وهي المعمارية البرنامج الي المبني عليها , وهيا 32bit
واهم معلومة حاب تعرفها من هنا هيا ال Entry Point والمقصود بها هوا عنوان الذاكرة الي حيبدا ال EIP فيه تنفيذ البرنامج
اوكيه نبدا الخطوة التانية (الثالتة تقريبا) وهيا تشغيل البرنامج في x32dbg عشان نبدا نشتغل عليه
قبل كل شي هذي الصورة شرح سريع عن الي موجود قدامك عشان لاتنفجع
معلومة مهمة , وهيا لو تلاحظ ان البرنامج او ماتشغله حتلقى ال EIP مؤشر على كود يبدأ ب 7XXXXXXX
هذا العنوان حق النظام , فماراح نعدل عليه شي وشغلنا كلو حيكون في العنوانين الي تبدأ ب 004XXXXXX والي هيا الخاصة بالبرنامج , وزي ماشفنا فوق , البرنامج يبدأ من العنوان 004014e0
تقدر تروح للعنوان عن طريق الضغط على F9 او RUN داخل البرنامج
طبعا زي ماقلنا الطريقة الي حنستخدمها هيا البحث عن نص معين شفناه داخل سير البرنامج وهذا النص يظهر قبل ماتصير العملية الي نبغى نتفاداها في البرنامج فبكل بساطة كليك يمين على الفارة , وبعدها نروح نطلع كل الرفرنس النصي الموجود في البرنامج ومنها نقدر نسوي بحث ويطلعلنا النص الي نبغاه
حنلاحظ ان الي بيصيرعملية رياضيةأمر cmpونتيجتها صفر, وبعدها حالة الزيرو فلاق حتصير واحد عشان نتيجة العملية تساوي صفر , فيجي الجمب المشروط بعدها ويشوف نتيجة الزيرو الفلاق ويعرف النتيجة وييروح لعنوان الذاكرة إلي يخزنtry harder في الستاك , وبعدها يتنفذ أمر الطباعة ويطبع العبارة
وبعد ما البرنامج ينفذ الي عليه , حيسوي عملية اخيرة , وبعدها حيطلع
LEAVE
ويقفل ال cmd
معاه وهوا خارج 💀
اوكيه دحين فهمنا طريقة سير البرنامج , فيه كذا طريقة ممكن تخلينا نخرب العملية إلي تصير
إما نحط
nops
بدل الجمب , عشان يكمل سير البرنامج عادي بدون طباعة الجملة الي مانبغاها
او نغير عملية الجمب الى جمب مشروط أخر ماراح يتحقق فيه الشرط اللازم عشان تصير القفزة , زي مثلا
jne / jnz
ولو تلاحظ لو نفذنا اي منهم الشرط ماراح يتحقق والجمب ماراح يصير وحيتنفذ الكول الي راح يطبع الفلاق 🎉 وبعدها يسوي جمب تاني ويروح ينفذ امر اخير ويطلع
, بس تبقى معانا مشكلة اخيرة الا وهيا تقفيل البرنامج والخروج , وهذي نقدر نتخلص منها بإننا نسوي بدل أمر ال
Leave
نسوي جمب غير مشروط لعنوان معين عشان يسوي لووب , والبرنامج مايقفل الا لما نضغط أكس .
وبعدها بعد أتأكدنا من كل التغييرات الصح , نسوي باتش ونحفظ الملف
وهذا ما عندي فإن أحسنت فمن الله، وإن أسأت أو أخطأت فمن نفسي والشيطان, وشكرا لك عزيزي القارئ , النقد البناء وتوضيح بعض النقاط الي غفلت عنها في الردود شي دائما مرحب به طبعا 😘

جاري تحميل الاقتراحات...