عرض مشاركة واحدة
قديم 16-11-2004, 08:41 AM   رقم المشاركة : 2
راضـــي
رائدي ذهبي
 
الصورة الرمزية راضـــي
الملف الشخصي






 
الحالة
راضـــي غير متواجد حالياً

 


 

[align=right]وهذه هي نفس الأوامر السابقة ولكن في عدد الذواكر 32 بت

0F 87 JA Jump near if above
0F 83 JAE Jump near if above or equal
0F 82 JB Jump near if below
0F 86 JBE Jump near if below or equal
0F 84 JE Jump near if equal
0F 8F JG Jump near if greater
0F 8D JGE Jump near if greater or equal
0F 8C JL Jump near if less
0F 8E JLE Jump near if less or equal
0F 80 JO Jump near if overflow
0F 84 JZ Jump near if 0

أوامر القفز التالية هي عكس الأوامر السابقة

0F 86 JNA Jump near if not above
0F 82 JNAE Jump near if not above or equal
0F 83 JNB Jump near if not below
0F 87 JNBE Jump near if not below or equal 0F 85 JNE Jump near if not equal
0F 8E JNG Jump near if not greater
0F 8C JNGE Jump near if not greater or equal
0F 8D JNL Jump near if not less
0F 8F JNLE Jump near if not less or equal
0F 81 JNO Jump near if not overflow
0F 85 JNZ Jump near if not zero



ولاحظ انه عندما نعكس أمر القفز نضيف له حرف (N) بمعنى انه عندما نريد أن نعكس مثلا JE تصبح JNE وتكون دائما الإضافة

بعد الحرف الأول وهو حرف (J)

الدرس الثالث :

وبعد ما عرفنا أوامر القفز سوف ننتبه إلى بعض الملاحظات :-

1- يتكون الكود من ثلاث مقاطع فمثلا يُكتب الكود كالتالي :-

:00498AA1 0F849B000000 je 00498B42

ويتم تحليله كالأتي :-

:00498AA1 <------------- هذا عنوان الذاكرة أو مكان للذاكرة

0F849B000000 <------------- لغة الآلة في النظام العشري

je 00498B42 <------------- أوامر الأسمبلى

2- ولشرح كيف تعمل باتش لبرنامج لابد أن نعرف التحويلات الأتية :-

Decimal Hexdecimal Binary
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

التحويل من Hex إلى HexDecimal :-

فمثلا نريد تحويل 124h فحرف الh دليل على أن هذا الرقم Hex.
اضغط على الصورة لرؤيتها بالحجم الطبيعي
معنى Position وضع والأرقام التي تلي الوضع هي عدد الأوضاع فمثلا Position 0 تعنى الوضع الأول وهكذا. الرقم 4 وهو

الرقم المراد تحويله فنحن نريد أن نحول الرقم 124. والرقم 16 يمثل عدد الذواكر في لأننا نريد أن نحول رقم 124 hex والhex

يستخدم عدد الذواكر 16 بت.

3- ولمعرفة الربط بين لغة الآلة ولغة الأسمبلى إليك الجدول التالي :-

الوصف
Machine Code
Assembly Code

زيادة السجل (eax) بقيمة "1"
40 inc eax
نقصان السجل (eax) بقيمة "1"
48 dec eax
زيادة السجل (ebx) بقيمة "1"
43 inc ebx
نقصان السجل (ebx) بقيمة "1"
4B dec ebx
زيادة السجل (ecx) بقيمة "1"
41 inc ecx
نقصان السجل (ecx) بقيمة "1"
49 dec ecx
زيادة السجل (edx) بقيمة "1"
42 inc edx
نقصان السجل (edx) بقيمة "1"
4A dec edx
تعنى أن لا شيء يحدث
90 nop
إقفز لو مساوي
74 je
إقفز لو غير مساوي
75 jne
إقفز لو مساوي
0F84 je
إقفز لو غير مساوي
0F85 jne

4- ولكن أنا في إعتقادي أن البرنامج يُنفذ هذا الروتين :-

أ- خلال عملية التسجيل :

الخطوة الأولى : نضع الإسم والسيريال.

الخطوة الثانية : البرنامج يستقبل المعلومات التي وضعناها.

الخطوة الثالثة : يقوم البرنامج بنداء وظيفة أو دالة لتُقارن إذا كان السيريال الذي وضعناه صح أم خطأ.

الخطوة الرابعة : يقوم البرنامج بعملية القفز إلى قرار التسجيل أولا.

ب- خلال إعادة تشغيل البرنامج :

الخطوة الأولى : البرنامج يبحث عن نافذة التسجيل.

الخطوة الثانية : البرنامج يستقبل الإسم والسيريال.

الخطوة الثالثة : يقوم البرنامج بنداء نفس الوظيفة أو الدالة لتُقارن إذا كان السيريال الذي وضعناه صح أم خطأ.

الخطوة الرابعة : طبقاً للنتيجة يُقرّر التسجيل أو لا.

5- الكراك يترتب على فهمك لخطوات البرنامج فمثلا ترى أمامك رسالة الخطأ فأُنظر فوقها سترى مثلا أمر قفز فإعكسة ونحن عرفنا

كيف نعكس أوامر القفز فإذا وجدت أن نفس الرسالة تظهر أو تظهر رسالة الصح ولكن عند إعادة تشغيل البرنامج يظهر البرنامج وكأنة

ليس تم تسجيله فأُنظر فوق أمر القفز هذا سترى مثلا أمر نداء أو أمر مقارنة فإنتبة إلى كل هذه الأوامر حتى تفهم ماذا يحدث في

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

يتبع إن شاء الله

[/align]







رد مع اقتباس