الاخوة الاعضاء
السلام عليكم ورحمة الله وبركاته
في المرفقات احدى الملفات الواجب ان اقوم بتحليلها في مشروعي للتخرج
امل منكم المساعدة في ذلك
شاكرا لكم حسن التعاون مسبقاً
الاخوة الاعضاء
السلام عليكم ورحمة الله وبركاته
في المرفقات احدى الملفات الواجب ان اقوم بتحليلها في مشروعي للتخرج
امل منكم المساعدة في ذلك
شاكرا لكم حسن التعاون مسبقاً
الاخ gaminhmaster
شكرا للتفاعل
ارغب في تحليل البرنامج وليس في النتائج
ولو بالامكان الطريقة التي استطيع فيها مشاهدة البرنامج ب HLL
شكرا مرة اخرى
تريد التعلم ،جميل جدا :)
عليك وعلى خاصية البحث و المواضيع المثبتة في هذا القسم الفرعي وستجد ما تريد وأكثر .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
كيف استطيع ان ارى الكود الذي كتب به البرنامج علما بأني اعلم انه كتب ب C++
انت لن ترى الكود الذي كتب به بالسي بل سترى كود الاسمبلي بعد ترجمة كود السي .
استخدم اي Disassembler او Debugger مثل IDA Pro/OllyDbg/WinDbg .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
عند استخدامي لبرنامج IDA pro
ومحاولاتي المضنية في التحليل ظهر لي ان الباسورد هي 6c,65,74,6d,65,69,6e
ومن خلال الملاحظة هي الاحرف المستخدة في كلمة السر زائدة ب(1)
سؤالي هو اين تم انقاص الواحد و كيف
00401300 |. 0FBE00 |MOVSX EAX,BYTE PTR DS:[EAX]
00401303 |. 8D58 FF |LEA EBX,DWORD PTR DS:[EAX-1]
00401306 |. E8 75050000 |CALL <JMP.&msvcrt.getchar> ; [getchar
0040130B |. 39C3 |CMP EBX,EAX
0040130D |. 74 07 |JE SHORT suspicio.00401316
0040130F |. C745 D0 00000>|MOV [LOCAL.12],0
1. انقل الحرف من [EAX] إلى EAX
2. انقص قيمة الحرف بمقدار 1 وضع القيمة الجديدة في EBX
3. استقبل حرف من المستخدم، يتم وضعه في EAX
4. قارن بين EAX (الحرف المدخل) و EBX (الحرف الصحيح)
5. ان تطابق الحرفان يتم تجاوز السطر
0040130F |. C745 D0 00000>|MOV [LOCAL.12],0
وإلا يتم تنفيذ السطر ويتم وضع صفر في المتغير [LOCAL.12]
الخلاصة، يتم استخدام المتغير [LOCAL.12] لاحقاً لتحديد إن تم إدخال كلمة سر صحيحة أم لا بعد الانتهاء من الحلقة، إن كانت القيمة 0 هذا يعني وجود حرف واحد على الأقل غير صحيح في الكلمة، حيث أن القيمة الافتراضية هي 1.
تم تعديل هذه المشاركة بواسطة Xacker في 15 يناير 2010 في 23:45
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget