aljeelany

التمرين السريع #1

4 ردود في هذا الموضوع

السلام عليكم ورحمة الله وبركاته

تمرين سريع لافداة المبتدئين و لتنشيط المحترفين

لغة البرمجة : Pascal/Delphi

المستوى : سهل.

الحماية : تشفير يدوي , خدعة بسيطة.

المدة : 5 أيام.

المطلوب :

1- عمل تعديل لنص الرسالة التي تظهر عند بدأ عمل التمرين.

2- أخذ توقيع للتشفير بحيث يعمل عند تغيير المفاتيح (مفتاح الفك), التوقيع يكون متوافق مع FastScanner 3

qcrackme1.png

http://hotfile.com/dl/98926954/357d515/QCrackMe1.rar.html

الحلول توضع محمية بكلمة سر ترسل على الخاص.

تم تعديل بواسطه aljeelany
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

انتهت مدة التمرين وهذا حله:

كان الغرض من التمرين وشرحه اعطاء بعض المفاهيم الاساسية لفك الحمايات والتي تعتبر صعبة الفهم على المبتدئين (مثلي).

وكان لابد من الشرح بمثال , ارفقت المثال قبل الشرح كتمرين ..

حل التمرين : Quick CrackME#1 .

49460792.png

• حل المطلوب الاول : تغيير نص الرسالة التي تظهر عند بدأ تشغيل التمرين.

عند فتح التمرين تخرج لنا الرسالة التالية (وبها نص, وهو المطلوب تغييره):

34468881.png

الان نحمل التمرين في المنقح , وبعد التحميل تخرج لنا رسالة تخبرنا بان احد اقسام البرنامج اما مضغوط او مشفر , بإمكانك تجاهلها :

75046434.png

بعد ذلك نشاهد كود التمرين بهذا الشكل:

12987725.png

حيث ان العنوان 00452479 هو عنوان بداية تنفيذ البرنامج EntryPoint

الان لنجرب البحث عن نص الرسالة بطريقة البحث التقليدية , سنجد انه لا توجد اية نصوص ! لما ياترى؟

هل تذكر الرسالة التي ظهرت عند تحميل التمرين في المنقح والتي تخبرك بان التمرين اما مشفر او مضغوط , وهذا هو السبب.

طيب بما ان التمرين والنصوص التي به مشفرة اذا كيف يعمل التمرين بدون مشاكل وتظهر النصوص شكل واضح وليست كلام مبهم؟

السبب ببساطة ان التمرين يقوم بفك التشفير/ الضغط قبل تنفيذ التعليمات الاساسية , أي ان تعليمات البرنامج تنقسم الى جزأين , الجزء الاول خاص بخوارزمية فك التشفير , الجزء الثاني خاص بكود التمرين الفعلي او الاساسي.

32989781.png

الشكل السابق يوضح كيفية تسلسل العمل:

1. يبدأ تنفيذ البرنامج عند نقطة البداية Entry Point اختصارها EP والتي تنفذ كود فك التشفير.

2. يتم تنفيذ خوارزمية الفك ووظيفتها فك كود البرنامج الاساسي.

3. يتم الانتقال الى نقطة البداية الاصليةOriginal Entry Point (اختصارها OEP) للكود المفكوك التشفير وهو كود البرنامج الاساسي , حيث كانت هذه هي نقطة البداية قبل اجراء عملية التشفير.

4. يتم تنفيذ تعليمات البرنامج الاساسي.

حسننا الان سنقوم بتحليل تعليمات الفك , لاكتشاف خوارزمية التشفير, بالإضافة لتعليمات اخرى لاكتشاف بعض الخدع:

1- PUSHAD: وظيفة هذه التعليمة نسخ محتويات المسجلات الثمانية (مسجلات الاغراض العامة) الى المكدس (Stack) , حيث يبدأ النسخ من المسجل EAX وانتهاء بالمسجل EDI , والصورة التالية توضح الترتيب التي تدخل به القيم الى المكدس:

79913629.png

وستجدها(التعليمة) في اغلب البرامج المشفرة أو المضغوطة والغرض منها تخزين محتوى المسجلات لاسترجاعها لاحقا قبل استدعاء كود البرنامج الاساسي ,لانه سيتم استخدام هذه المسجلات في خوارزمية الفك وربما في اغراض اخرى وبالتالي سيتم العبث بمحتواها.

طبعا هنا لا تنسى مبدأ عمل المكدس Last In First Out ( اختصارها LIFO) أي ان الداخل اخيرا يخرج اولا من المكدس , ونذكرك بقمة المكدس Top ولا ننسى ايضا ان المؤشر ESP هو الذي يؤشر على القمة (قمة المكدس) أي يؤشر على القيمة الاخيرة الداخلة للمكدس.

2- MOV EBX,401000 : وظيفة هذه التعليمة هي نقل القيمة 401000 الى المسجل EBX .

3- MOV EAX,5 : نقل القيمة 5 الى المسجل EAX .

4- MOV EDX,EAX : نقل قيمة المسجل EAX الى المسجل EDX , وبالتالي تصبح قيمة المسجل EDX بعد تنفيذ هذه التعليمة تساوي 5 .

5- XOR EDX,0C9 : وظيفة هذه التعليمة هي اجراء العملية المنطقية XOR على القيمة الموجودة في المسجل EDX وهي 5 مع الرقم C9 وبالتالي يكون الناتج CC , اليس كذلك ! طبعا القيم بالنظام السادس عشري.

6- XOR BYTE PTR DS:[EBX],DL : تقوم هذه التعليمة بعمل المؤثر المنطقي XOR على قيمة بحجم BYTE التي يؤشر عليها المسجل EBX في الذاكرة مع القيمة التي بالمسجل DL وهي كما عرفنا في الخطوة السابقة CC , ولكن القيمة CC كانت للمسجل EDX وليس للمسجل DL ! هنا عليك بمراجعة لغة التجميع , فالمسجل DL هو النصف الايمن من المسجل DX أي انه يحوي الخانتين الاوليين والمسجل DX بدوره النصف الايمن من المسجل EDX .

7- ADD BYTE PTR DS:[EBX],AL : تقوم هذه التعليمة بإضافة القيمة الموجودة في المسجل AL مع قيمة بحجم بايت BYTE في الذاكرة والتي يؤشر عليها المسجل EBX .

8- ADD EBX,1 : هذه التعليمة تقوم بإضافة القيمة 1 الى المسجل EBX والذي حسب ما اتضح لنا من الخطوتين السابقين ان قيمته هي عنوان يؤشر للذاكرة.

9- CMP EBX,452478 : هذه التعليمة للمقارنة بين القيمة 452478 و المسجل EBX والذي كما قلنا انه يؤشر على قيمة في الذاكرة.

الان لنلقي نظرة على شرح التعليمات المعنون بالرقم 2 و 9 , سجد ان في التعليمة الاولى يتم اسناد قيمة للمسجل EBX وفي الاخرى يتم مقارنة قيمة المسجل مع قيمة اخرى , وبعد ما اتضح لنا انهم عناوين للذاكرة لنلقي عليهم نظرة :

العنوان 401000 :

12728801.png

15293814.png

ستجد ان هذا العنوان هو عنوان بداية القسم CODE Section , اما العنوان 452478 :

84576853.png

هو عنوان اخر تعليمة قبل نقطة الدخول , وقبل الكود الجديد على البرنامج.

من هنا نستنتج ان خوارزمية فك التشفير تعمل على فك الكود المشفر من بداية القسم 401000 الى نهاية تعليمات التمرين الاساسي 452478 , ولكنه لا يصل الى نهاية القسم لأنه لم يمس خوارزمية الفك نفسها ولا التعليمات التي بعدها.

10- JLE SHORT 0045248C : هذه التعليمة من تعليمات القفز Jump وتعني Jump if Less or Equal أي اقفز اذا كان اقل من او يساوي , اقفز الى العنوان 0045248C , وهذا على حسب الحالة الناتجة من التعليمة السابقة , أي اذا كانت قيمة المسجل EBX اقل من او يساوي القيمة 452478 اذا اقفز الى العنوان 0045248C والا نفذ التعليمة التالية.

مذا يعني هذا ؟

يعني عمل حلقة تكرار Loop لتنفيذ مجموعة من التعليمات لعدد معين من المرات , ولكن ماهي التعليمات التي يتم تكرارها ؟ القي نظرة على الصورة التالية :

54460126.png

نلاحظ ان تعليمة القفز ترجعنا الى التعليمة المشروحة تحت الرقم 6 وتنفيذ التعليمات التي بعدها , لنعيد شرح مذا يحدث في هذا الجزء, في البداية تقوم الخوارزمية بتغيير محتوى البيانات عند العنوان الموجود في المسجل EBX بواسطة العملية النطقية XOR مع القيمة CC , ثم تغيير البيانات الجديده عند نفس العنوان بواسطة عملية الجمع ADD مع القيمة 5 , زيادة قيمة المسجل EBX بواحد ويعني زيادة العنوان التي سيتم تغيير محتواه (او بشكل اصح فك تشفيره) بواحد , ثم مقارنة هذه القيمة بالقيمة 452478 فاذا كان هذا العنوان اقل من او يساوي هذه القيمة فاعد تنفيذ عمليات تعديل البيانات (عمليات فك التشفير) , أي ان الجزء المشفر والذي يتم فك تشفيره هو بين 401000 و 452478 , هذه الصورة توضح خوارزمية فك التشفير المستخدمة باختصار:

71687896.png

بالتأكيد كل شيء واحد في الصورة التوضيحية السابقة فقد تم شرحة باستثناء جملة (اقفز للعنوان 452408) وكيف عرفت عنوان الكود الاساسي للبرنامج , لا تستعجل سيتم شرحها لاحقا ..

الان لنكمل شرح بقية التعليمات :

11- XOR EAX,EAX : عمل المؤثر المنطقي XOR بالقيمة الموجودة في المسجل EAX مع نفس القيمة , وبالتالي يكون ناتج العملية 0 , أكيد تعرف ذلك مسبقا !

12- NOT EAX : عمل المؤثر المنطقي NOT على القيمة الموجودة بالمسجل EAX والتي تساوي 0 بعد تنفيذ التعليمة السابقة , وبما ان حجم المسجل EAX 4 بايت أي 8 خانات ست عشرية وبالتالي يكون الناتج بعد تنفيذ هذه التعليمة مساوي ل FFFFFFFF , ان لم تعرف كيف راجع المؤثرات المنطقية من احد المراجع.

13- MOV EBX,DWORD PTR SS:[ESP+4] : قبل شرح وظيفة هذه التعليمة راجع شرح رقم 1 في شرح التعليمات وركز على طريقة عمل المكدس , تقوم هذه التعليمة بنسخ بيانات بحجم DWORD والتي تساوي 4 بايت من قسم المكدس Stack Segment اختصارها SS في العنوان ESP+4 , وحيث ان المسجل ESP يؤشر على قمة المكدس يعني سيتم نسخ الاربع بايتات الثانية من المكدس , ولكن هل تذكر ماذا يحوي المكدس ؟ اجل قيمة المسجلات التي عند بدأ تحميل التمرين, ولكن القيمة التي سيتم جلبها تتبع أي مسجل ؟ بما أنك فهمت آلية عمل المكدس أكيد ستقول أنه المسجل ESI , ولكن ما الغرض من هذا ؟ سنعرف ذلك لاحقا, لنكمل شرح التعليمات.

14- XOR EBX,EAX : عمل المؤثر المنطقي XOR بين القيمة الموجودة في المسجل EAX مع القيمة الموجودة في المسجل EBX ويكون الناتج في هذا الاخير , فاذا كانت قيمة كل من المسجلين متساوية فان قيمة المسجل بعد تنفيذ التعليمة ستكون مساوية ل 0 .

15- DIV EBX : وظيفة التعليمة (في هذه الحالة) اجراء عملية القسمة الحسابية بين القيمة الموجودة في المسجلين EAX ,EDX حيث ان قيمة المسجل EAX تمثل القيمة الاقل اهمية و المسجل EDX تمثل قيمته الاكثر اهمية , وبين القيمة الموجودة بالمسجل EBX , وهنا نذكر أنه لإجراء عملية القسمة يجب ان يكون المقسوم عليه لا يساوي صفر والا سيكون الناتج غير معرّف رياضيا , اما داخل الحاسب فان هذا سينتج مقاطعة عن تنفيذ التعليمات الخاصة بالبرنامج الذي ينفذ هذه التعليمة , وسيولد نظام التشغيل ما يسمى بالاستثناء Exception , وان لم يكن للبرنامج الذي يعمل الية لمعالجة الاستثناء هذا فان نظام التشغيل سيضطر الى اجهاضه او ايقافه عن العمل.

الان لنحاول فهم هذا الجزء :

- في التعليمة 11 و 12 يقوم التمرين بإعطاء القيمة FFFFFFFF للمسجل EAX.

- في التعليمة 13 يقوم التمرين بإعطاء قيمة المسجل ESI المحفوظة في المكدس للمسجل EBX , ولكن ماهي هذه القيمة ؟ بما ان تعلمية Pushad كانت اول تعليمة ينفذها التمرين اذا قيم المسجلات المحفوظة في المكدس هي القيم التي تعطى للمسجلات اثناء التمرين في الذاكرة , ايضا اثناء تحميله في المنقح, اذا لنلقي نظرة على محتوى المسجل ESI بعد تحمليه في المنقح, نلاحظ انها تسوي FFFFFFFF , وستلاحظ هذا في اغلب نسخ المنقح Olly .

11189086.png

- ينتج عن التعليمة رقم 14 عملية XOR المنطقية بين المسجلين EAX و EBX وبما ان كلاهما يساوي FFFFFFFF وبالتالي يكون ناتج هذه العملية يساوي 0 .

- تعليمة القسمة , التعليمة رقم 15 ينتج عنها انهاء عمل البرنامج ! وما السبب ؟ السبب هو عملية القسمة على صفر , هذا الصفر الذي نتج من التعليمات السابقة .

ومن هنا يتضح ان هذا الجزء مخصص لمقاومة عملية التنقيح Anti-Debugging , وهذه الطريقة منتشرة وليست بجديده.

وهنا عند تنقيح التمرين يجب تغيير قيمة المسجل ESI او تعديل تعليمة القسمة حتى لا تتسبب بخطأ.

وهذا رسم توضيحي لهذا الجزء:

66706569.png

لنكمل شرح بقية التعليمات:

16- POPAD : تقوم هذه التعليمة بتحميل قيم مسجلات الاغراض العامة من المكدس, انها تعمل عكس التعليمة PUSHAD , ووظيفتها هو اعادة تحميل قيم المسجلات بالقيم الاصلية التي كانت تحملها اثناء تحميل التمرين في المنقح وقبل تنفيذ التعليمات السابقة.

17- PUSH 452408 : تقوم هذه التعليمة بدفع القيمة 452408 الى المكدس .

18- RETN : وظيفة هذه التعليمة هي الرجوع الى الاجراء الذي قام باستدعائها , وذلك عن طريق اخذ عنوان الاجراء من قمة المكدس ثم القفز اليه, ولكن هنا لم يتم استدعاء أي اجراء ولكن تم دفع عنوان التعليمة القادمة التي سيتم تنفيذها (بواسطة التعليمة السابقة) وبالتالي فانه سيقفز الى التعليمة التي عند العنوان 452408 .

واذا تتبعنا البرنامج وذهبنا الى العنوان 452408 سنجد انه نقطة الدخول الاصلية للتمرين OEP .

يتبع ..

• الان بعد فهم حماية التمرين بشكل كامل نستطيع فك تشفره :-

1- نعيد تحميل التمرين في المنقح.

2- نغير محتوى المسجل ESI وذلك للتغلب على الخدعة وتنقيح التمرين بدون مشاكل.

3- نضع نقطة توقف عند اخر تعليمة في كود الحماية , أي بعد خوارزمية فك التشفير وخدعة كشف المنقح , والتي قبل نقطة الدخول الاصلية مباشرة وهي التعليمة RETN وعنوانها 004524AD .

4- ننفذ التمرين (Run) ونلاحظ ان البرنامج توقف عند نقطة التوقف التي وضعناها.

5- نقوم بتضليل الكود من بداية الكود المشفر (والذي تم فك تشفيره الان) وهو 401000 الى 452478 وهو نهاية الكود المشفر.

6- نقوم بحفظ التعديلات في ملف جديد, وذلك كالاتي :

Right Click->Copy to executable->Selection.

Right Click->Save file.

الان نحمل الملف الجديد في المنقح ثم نبحث عن نص الرسالة التي تظهر عند بدأ التشغيل سنجد انها قد ظهرت:

33553635.png

هذا يعني ان عملية فك التشفير نجحت, ولنجرب تشغيل التمرين للتأكيد ولا تنسى تغيير قيمة المسجل ESI حتى لاتقع في مشكلة...

مذا حصل التمرين لا يعمل ؟ اجل لا يعمل ولكن ما السبب ؟

السبب هو أنه خوارزمية التشفير تفك كود التمرين الاساسي المفكوك اصلا !! ما الحل؟

الحل هو تجاوز كود خوارزمية الفك فلا حاجة لها الان , وهناك عدة طرق احدها ان تقوم باستبدال الخوارزمية بتعليمات nop , او القفز مباشرة الى نقطة الدخول الاصلية , ولكني افضل تحويل نقطة البداية للتمرين الى نقطة الدخول الاصلية من غير قفزات او تعديل على الكود , كيف ذلك ؟ بالتعديل في بنية الملف التنفيذي PE Header .

سنستخدم احد ادوات PE File Editor وهي LordPE , وعملية تغيير نقطة الدخول EP كالتالي :

1- لدينا نقطة الدخول للتمرين عند تحميله في المنقح وتساوي 00452479 وهذا يسمى بالعنوان الافتراضي.

2- نفتح التمرين (الملف الجديد) باستخدام LordPE من خلال PE Editor .

3- نرى ان نقطة الدخول EntryPoint هنا تساوى 00052479 ولكن كيف هذا , هنا راجع احد مراجع ال PE Format , ولكن حتى لا تقع في الحيرة فان العنوان هنا بصيغة RVA اما عند تحمليه في المنقح فهو بصيغة VA , بإمكانك التحويل بينهما باستخدام الاداة LordPE بعد اختيارك للملف اختر FLC , اختر خانة RVA وادخل رقم EntryPoint التي وجدتها في الاداة وليس في المنقح ثم انقر DO للتحويل , انظر الى خانة VA ستجد انه مساوي للعنوان الذي بداخل المنقح !.

52905479.png

4- بما ان نقطة الدخول الاصلية OEP هي 00452408 والحالية هي 00452479 وكلاهما بال VA ونريد تبديل الاصلية بالحالية , ايضا قيمة ال EntryPoint في بنية الملف التنفيذي تحتاج الى ان تكون بصيغة RVA , اذا نقوم بتحويل قيمة نقطة الدخول الاصلية التي لدينا من VA الى RVA أي القيمة 00452408 , فتصبح 00052408 .

5- الان ليدنا قيمة نقطة الدخول الجديدة 00052408 بصيغة RVA فنقوم بابدالها بالقيمة الحالية لل EntryPoint ثم حفظ Save .

78227259.png

الان الملف يعمل بدون مشاكل ! بقي لدينا تغيير محتوى الرسالة:

1- نحمل الملف المعدل في المنقح , نبحث عن نص الرسالة التي تظهر عند بدأ التشغيل , وسنجدها عند العنوان 00452198 و العنوان 004521AC ولكن أي منهم سنغير؟

44122209.png

2- نتبع العنوان الاول 00452198 بالضغط على Enter

20822520.png

3- نجد ان كل من النصين قريبان من بعض من حيث مكانهما , ولكن لنرى التعليمة عند عنوان النص الاول MOV EAX,4521AC هذا يعني انها تقوم بوضع عنوان للنص في المسجل EAX ولكن هنا لا يوجد نص , مجرد اخذ عنوان النص وهو 4521AC الان لنذهب الى هذا العنوان !! سنجد انه يقودنا الى النص الاخر اجل انه العنوان 4521AC , اذا هذا هو النص الوحيد .

4- نقوم بتضليل نص الرسالة (طبعا عند العنوان 4521AC) ثم نقوم باختيار التعديل على البيانات .

Right Click -> Binary -> Edit

5- نقوم بكتابة نص الرسالة الجديد (تاكد ان طولها اقل من او يساوي نص الرسالة الاصلية) في خانة ASCII ثم OK .

23858031.png

6- نقوم بحفظ التعديلات على الملف في ملف جديد.

نجرب الملف المحفوظ , نجد ان الملف يعمل بنجاح ونص الرسالة تغير. الان الى المطلوب الثاني :

• المطلوب الثاني: أخذ توقيع للتشفير بحيث يعمل عند تغيير المفاتيح (مفتاح الفك):

التوقيع او البصمة(في حالتنا هذه) هي بيانات رقمية تميز بين حماية واخرى او تشفير واخر او حتى بين مترجم Compiler واخر , حيث ان التوقيع مأخوذ من بينات رقمية وهذه بدورها(غالبا) تكون تعليمات , اما خوارزمية فك التشفير او فك الضغط او خدعة للحماية او تعليمات خاصة لمترجم معين .

تستعمل عدة ادوات لمعرفة نوع الحماية او الضغط اعتمادا على توقيع الملف المعني , وغالبا ما يأخذ (ويفحص) التوقيع من نقطة البداية او نقطة الدخول EntryPoint نظرا لأنها اول تعليمات سيتم تنفيذها من البرنامج , وبالتالي يصعب تغييرها اثناء التنفيذ وبالتالي هذا يضمن ثبات هذا التوقيع.

هنا سنقوم بأخذ توقيع من التمرين ثم عمل فحص للتمرين باستخدام احد الادوات وهي AT4RE Fast Scanner اعتمادا على التوقيع المأخوذ.

1- قمنا في المطلوب السابق بدراسة خوارزمية فك التشفير وعرفنا من أي تبدأ واين تنتهي , كما عرفنا انها تكون عند نقطة EntryPoint مباشرة , هنا سنقوم بأخذ توقيع من هذه الحماية , ولكن تأكد من انك تعمل على ملف التمرين الاصلي وليس المعدل , والسبب لأننا عدلنا نقطة الدخول في الملف المعدل.

2- نحمل التمرين ونرى التعليمات المضافة او المحقونة في التمرين وهي خوارزمية فك التشفير و خدعة كشف المنقح وبعض التعليمات المساعدة , ونلاحظ كما في الجزء المحاط بالأصفر في الصورة التالية ما يقابل هذه التعليمات بالقيم الثنائية Binary (ستقول لي هذه ليست ثناية ! هي قيم ولكنها ممثلة بالنظام السادس عشري لتسيل قراءتها ولكن نقول عنها ثنائية) , هذه هي التي سنأخذها كتوقيع.

68620135.png

- نقوم بتضليل هذه المساحة ثم نقوم بنسخها باستخدام الاضافة Data Ripper (يجب ان تتأكد بانها مضافة لديك لأنها ليست مع النسخة الاصلية من المنقح)وذلك كالاتي :

Right Click->Data Ripper

87299697.png

4- نقوم بتنسيق البيانات وازالة نهايات الاسطر حتى تظهر بشكل متتالي :

60BB00104000B8050000008BD081F2C90000003013000383C30181FB782445007EF133C0F7D08B5C240433D8F7F3616808244500C3

الان حصلنا على التوقيع وستنقوم بتجريبه للتاكد من صحته :

1- نقوم باضافة بفتح التمرين بواسطة Fast Scanner 3 مع والتأكد من وجود الاضافة Plugin بالاسم Signature Manager , نفتح الاضافة ثم : نكتب في الخانة الاولى اسم يدل على حماية او تشفير الملف , مثلا الاسم :

Quick CrackMe#1 Crypter 

53282976.png

2- الخانة الثانية نكتب فيها وصف للحماية.. لا تهمنا الان.

3- الخانة الثالثة نضع بها التوقيع الذي حصلنا عليه.

4- تاكد من ان Signature Type تساوي Packer/Protector ثم Add .

5- نجرب فحص التمرين باستخدام الFS والنتيجة:

47980161.png

الان هل انتهى المطلوب .. لا! , راجع المطلوب " أخذ توقيع للتشفير بحيث يعمل عند تغيير المفاتيح (مفتاح الفك)"

اذا لنجرب تغيير المفاتيح(مفاتيح فك التشفير- راجع حل المطلوب الاول) وهما 5 و CC (القيمة CC لم تكتب مباشرة ولكنها ناتجة من عملية منطقية على القيمة C9 وبالتالي الأخيرة هي التي ستتغير) , وسنجرب ايضا تغيير عناوين بداية ونهاية البيانات التي سيتم تطبيق عملية فك التشفير عليها وهما العنوانان 401000 و 452478 , ايضا نجرب تغيير مكان نقطة الدخول للبرنامج الاساسي OEP .

مثلا جعلناه بهذا الشكل:

82294878.png

ثم نقوم بحفظ التعديلات في ملف جديد, وتجربة فحصه من جديد ؟ (طبعا التمرين عند تشغليه لن يعمل لان المفاتيح المستخدمة في الفك ليست نفسها المستخدمة في التشفير ايضا عناوين بداية ونهاية فك التشفير و نقطة الدخول الاصلية متغيره ولكن الغرض من هذا هو الفحص فقط).

سنجد ان ال FS لا يتعرف على الحماية.. هل العيب من ال FS ؟ لا بل من التوقيع خاطئ حيث انه التوقيع السابق :

60BB00104000B8050000008BD081F2C90000003013000383C30181FB782445007EF133C0F7D08B5C240433D8F7F3616808244500C3

اما التوقيع للملف المعدل :

60BB23214100B85455760A8BD081F212FF55063013000383C30181FB3C3644007EF133C0F7D08B5C240433D8F7F3616833314304C3

اذا ما الحل هل يستحيل وضع توقيع فعال لهذا التشفير ؟

لا بل يوجد حل .. أغلب ادوات الفحص ومنها Fast Scanner تدعم اثناء فحصها للمتشابهات من البيانات ما يسمى بالبدل Wildcard , حيث انه يتم الاتفاق على وجود رمز او رموز معينة سيتم تجاهلها اثناء الفحص وفي ال FS هذا الرمز هو علامة الاستفهام ؟ حيث أنه يتم وضع علامة الاستفهام عند عنصر البينات المتوقع تغييره والمراد تجاهله , وبتطبيقها على توقيعنا يكون التوقيع الناتج هو :

60BB????????B8????????8BD081F2????????3013000383C30181FB????????7EF133C0F7D08B5C240433D8F7F36168????????C3

جرب فحص الملف المتلاعب به.. ستجد أن الفاحص يكتشفه بكفاءة.

الى هنا ينتهي الدرس , مرفق شرح فلاشي كتطبيق لما تم شرحه+نسخة pdf للشرح + ملف التمرين + ملف محلول.

رابط تحميل المرفقات:

http://hotfile.com/dl/102192197/9db463a/QCrackMe1.rar.html

97296860.png

aljeelany-AT4RE 2011

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

حاجة روعة الاخ الجيلاني لك وللفريق العربي الف شكر

درس دسم جدا بس انت عارف اغلب الاعضاء هنا غير عكسيين

لذا يبدو الامر للبعض غريب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

درس دسم جدا بس انت عارف اغلب الاعضاء هنا غير عكسيين

لذا يبدو الامر للبعض غريب

من هنا بدأ كل شئ (تقريباً) :cool:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .