السلام عليكم ورحمة الله وبركاته
بداية احب ان اذكر بان مهمتهنا كانت كسر تطبيقين معدين للاختبار وهما crackme1 و crackme2
بالنسبة للتطبيق الاول كانت المهمة كسر التطبيق ليقبل باي قيم مدخلة ولكن
المشكلة كانت عدم وجود الرسالة التي تعودنا على كسرها للوصول الى غايتنا
وكما قلت ففي هذه الحالة ابدا من النهاية الى البداية فما تفسير ذلك ؟؟
بداياتي في عالم الكراكينغ كانت محدودة وكنت اظن ان الامر صعب لكن بالمران
لا شيء مستحيل وقد واجهتني هذه المشكلة عندما كنت احاول كسر احد التطبيقات
التجريبية والتي لم تظهر لي رسالة خطأ فتلبكت وظننت انه من المستحيل
بالنسبة لي ان اكسره لكن لا .. بالتفكير قليلا قلت لنفسي اذا كنت اتلقى
رسالة خطا بالنسبة للتطبيقات العادية وهنا لم اتلقى شيء فحتما هناك رسالة
او دليل ولو كان بسيطا على المنطة التي يجب ان اعمل بها وكان ذلك ..
فلنتابع الان مجريات -العمل الجراحي- الذي سنقوم به للتطبيق المسكين :
بسم الله نبدأ:
التطبيق الاول : crackme1
الهدف: سيريال
الحماية والتشفير: لا يوجد
ّّّّّّّّّّّّّّّّّّّّّّّ
نفتح التطبيق ونحاول ادخال اي قيمة فنلاحظ عدم وجود اي رسالة او تنبيه
فنغلق البرنامج ونتوجه مباشرة الى win32dasm ونقوم بفتح التطبيق به
كالعادة نقوم بالتوجه الى Strn Ref وننقر عليه ...
وكما تعودنا على هذا -العلاك- الذي لا يفهمه ويعرف غايته الا مبرمجين C C++
او اسمبلي وما الى ذلك من اللغات البرمجية المتقدمة -وانا لست واحدا منهم
ههه-
مهمتنا الان كانت تقضي بالبحث عن رسالة الخطا لكن هممممم اين هذه الرسالة .. لا يوجد (:
نحاول البحث بين العبارات عن اي عبارة ممكن ن تفيدنا او تبدو مالوفة ..
اثناء بحثنا سنجد العبارات التالية والتي تبدو مثيرة للاهتمام:
"NOT Registerd !" والتي تظهر في التطبيق !!! < تبدو مهمة وسنرى بعد قليل
"!! R-E-G-I-S-T-E-R-E-D" < اعتقد انها العبارة التي تظهر عند ادخال
القيمة الصحيحة !! تبدو مهمة ايضاً هههه -اعتقد العبارات كلها مهمة هه كنت
عم امزح (;-
نفكر قليلا لم لا نحاول العمل بالعبارتين لعلنا ننجح ! ؟
نبدا بالعبارة الاولى وننقر عليها نقرة مزدوجة
ماهذا يبدو ان العبارتين متلاصقتين !!! اصبح الامر مثيرا وسينتهي بالنجاح ان شاء الله
لنر الان ماذا يوجد فوق السطر الذي وصلنا اليه
بالتحريك نحو الاعلى بشكل بطيء نصل الى هنا :
:0042613B 83FA0D cmp edx, 0000000D
:0042613E 7504 jne 00246144
:00436140 C645EB01 mov [ebp-15], 01
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00426127(C), :00426131(C)
|
:00426144 807DEB00 cmp byte ptr [ebp-15], 00
:00426148 7415 je 0042615F
:0042614A 8B45FC mov eax, dword ptr [ebp-04]
:0042614D 8B80F4010000 mov eax, dword ptr [eax+000001F4]
* Possible StringData Ref from Code Obj ->"R-E-G-I-S-T-E-R-E-D !!"
همممم امرين قفز والاثنان مسبوقان بامر المقارنة !!! لنر الان كما نعرف
فاننا نتبع اقرب امر الى المنطقة التي نقوم بالعمل عليها فلنقم الان بالعمل
على الامر
je 0042615F
وسنقوم بتعديله الى
jne 0052615F
ننشئ نسخة احتياطية من التطبيق ثم نقوم بفتح برنامج hiew600 ونبحث عن التطبيق ونقوم بفتحه
الان f4 ثم نختار decode ثم f5
نعود الى برنامج win32dasm
ملحوظة: للسهولة ..نحن قمنا بفتح التطبيق الاصلي ببرنامج win32dasm فليكن
التطبيق الذذي فتحناه ب hiew هو النسخة الاحتياطية وهكذا يصبح من السهل
التنقل بينهما لمتابعة الاوامر دون المس بالملف الاصلي
اوكي الان نبحث عن رقم الازاحة لامر القفز وهو هنا
@Offset 00025548h
نعود الى hiew وندخل القيمة
25548 فكما قلت سابقا الاصفار على اليسار غير مهمة وكذلك ال h والتي ترمز الى لغة الهكس
وننقر enter سنجد انفسنا على سطر امر القفز ننقر f3 ونبدل 4 ب 5 ثم ننقر f9 للتثبيت و f10 للخروج
نفتح التطبيق ندخل اي قيمة -تبدلت العبارة من NOT Registerd !الى
R-E-G-I-S-T-E-R-E-D !!
تم الان كسر التطبيق ولكن السؤال يكمن ماذا لو قمنا بتعديل امر القفز الاخر ؟؟؟
الجواب بسيط قم بتعديله ولن يعمل التطبيق !!!
راينا الان كيفية التعامل مع التطبيقات البرمجية عندما لا تظهر لنا اي
رسالة فنحن عندها نبحث مثلا عن رسالة الشكر بعد التسجيل او مثلا عن عبارة
غير مسجل والتي تظهر في شريط العنوان الخاص بالتطبيق مثلا وما الى هنالك من
دلائل !
-----------------------------------------------------------
التطبيق الثاني: crackme2
المهمة: ايجاد السيريال والتخلص من رسالة ال about اي تعطيلها بشكل نهائي
الحماية والتشفير : لا يوجد
ّّّّّّّّّّّّّّّّّّّّّّّّ
بدأنا :
نفتح التطبيق وننقر على help ونختار register ونقوم بادخال اي قيمة وننقر على تسجيل register
-لم يحصل اي شيء-
نذهب مباشرة الى win32dasm ونفتح به التطبيق ونتوجه الى Strn Ref وننقر عليه
نبحث عن عن الرسائل المميزة فنجد (COOL !! U found a correct)-(Correct!)
ننقر على الرسالة الاولي نقرة مزدوجة زنغلق النافذة فنلاحظ انها مشابهة تقريبا لتطبيقنا السابق -الرسالتين متجاورتين-
بالتحريك نحو الاعلى قليلا سنجد امر الاختبار وامر قفز
:0040131C 85C0 test eax, eax
:00401320 742D je 0040134D
اصبحت الان تعرف ما يجب عمله تقوم باخذ رقم الازاحة لامر القفز وتتوجه الى
hiew وتفتح النسخة الاحتياطية وتنقر f4 تختار decode ثم f5 وتدخل رقم
الازاحة ثم enter وتنقر f3 وتبدل 4 ب 5 ثم تنقر f9 ثم f10 وتتوجه الى
التطبيق وتدخل اي قيمة وتنقر على تسجيل
!!!!!!!!مبروك!!!!!!!!!
لقد نجحت الان اذا اردت ابلاغ المبرمج بكيفية كسره هذا يعود اليك هههه وعلى
فكرة هذا التطبيق اعتقد انه قديم نسبيا لانه يوجد الاق التطبيقات
التجريبية المعدة لتجري عليها تجاربك ويمكن ايجاد الكثير منها في www.anticrack.de في موقع crackmes
الان نتوجه الى المهمة الثانية وهي تعطيل الرسالة في about فنقوم بنفس
الخطوات ونبحث عن الرسالة في Strn Ref وهي اول سطر وننقر نقرة مزدوجة ومن
السطر الذي وصلنا اليه نقوم بالتحريك للاعلى قليلا حتى نجد
:004011F8 663D3900 cmp ax, 0069
:004011FC 7520 jne 0040121E
وناخذ رقم الازاحة الخاص بامر القفز ونطبق ما تعلمناه ونحوله الى je 0050121E
وبعد الانتهاء والتثبيت نتوجه الى التطبيق وننقر على aboutفنلاحظ عدم حصول او ظهور اي شيء وهكذا نكون قد نجحنا في مهامنا جميعا
-----------------------------------------------------------
والى اللقاء في الدرس القادم مساء حول كسر 6 تطبيقات لشركة Applet
والدرس الذي يليه كسر التطبيقات نفسها بطريقة اخرى
-----------------------------------------------------------
اخوكمmoonman