AND:
الاستخدام: AND dest,src
الوظيفة: اجراء عملية اضافة منطقية للقيمتين المدخلتين واستبدال -dest- في هذا المثال بالقيمة الناتجة
مثال: AND BX,03h
شرح: ليس هناك الكثير مما يمكن قوله عن هذا الامر فهو ينفذ ما يشير اليه الاسم
ملحوظة: dest= destination اي مكان القيمة الناتجة بعد الاضافة
src= القيمة امراد اضافتها للقيمة الموجودة في dest
----------------------------------------------------------------------------
CALL:
الاستخدام: CALL address
الوظيفة: تنفيذ امر في مكان االعنوان 'address'
مثال: CALL 10284312
شرح : يتم تنفيذ الامر الموجود على سطر العنوان 'address' وما ان يتم تنفيذ
هذا الامر حتى تتابع الشفرة تنفيذ الامر الموجود بعد امر CALL
----------------------------------------------------------------------------
CMP:
الاستخدام: CMP dest,src
الوظيفة: يطرح src من dest ويقوم بتحديث المقاطعات
مثال: CMP AX,03h
شرح: امر مهم جدا كما نعتبره -نحن الكراكرز- لانه قد يوجد في مكان ما ضمن
الشفرة للتاكد من ار ما . مثلا ان يقارن السيريال الصحيح بالذي قمنا
بادخاله او ليتاكد ان كان البرنامج مسجلا ام لا
غالبا ما يتبع بامر قفز
----------------------------------------------------------------------------
FLAGS:
هي غالبا كالمسجلات -registers- فيما عدا انها تملك اما قيمة صح او خطا مثلا (0 او 1)
وهي توضع باستخدام اوامر كالـ CMPوتستخدم لتفقد القيمة الناتجة من امر استدعاء مثلا:
CMP AX, BX ; يقارن AX بـ BX, فان توافق فان مقاطعة الـ 0 تبدل بـ 1
JZ 00124531 ; ان كانت القيمة الناتجة هي صفر, اقفز الى 00124531
----------------------------------------------------------------------------
INT:
الاستخدام: INT interrupt_number
الوظيفة: يستدعي امر افتراضي (غالبا ما تكون مبرمجة ضمن البيوس)
مثال: INT 10h
شرح: لن تشاهد هذا الامر غالبا (هذا ان شاهدته خخخخخخ) عندما تقوم بتفكيك برامج تحت نظام الويندوز لكنها تملا المكان في نظام كالدوز
----------------------------------------------------------------------------
JMP:
الاستخدام: JMP address
الوظيفة: الانتقال الى سطر من الشفرة يحدد بالعنوان 'address'
مثال: JMP 00402011
JMP هو انتقال غير شرطي الى سطر في الشفرة.
هناك الكثير من اشكاله قمت بتوضيحها في موضوع سابق لكني ساذكر الشكل العام الان كتذكير سريع به:
JZ ; Jump if zero flag is set [same as JE]
JNZ ; Jump if zero flag is not set [same as JNE]
وهي غالبا ما تتبع امر مقارنة:
CMP RealSerial,BadSerial ; يتم مقارنة السيريال الصحيح بالمدخل
JNE GoAwayBadCracker ; اذهب بعيدا ايها الكراكر السئ -ان لم تتوافق القيم-
-----------------------------------------------------------------------------
LODSB / LODSW:
الاستخدام: LODSB / LODSW
الوظيفة: تحميل اما بايت او كلمة من DS:SI ووضعها في AL(LODSB) او AX(LODSW) مما يزيد الـ SI
مثال: LODSW
شرح: دعونا نقول بان DS:SI تشير الى كلمة والتي تحمل القيمة EBh
LODSW ; تقوم بنسخ الكلمة والتي تشير اليها DS:SI وتضعها في الـ AX
AX ستحوي الان القيمة EBh
-----------------------------------------------------------------------------
MOV:
الاستخدام: MOV dest,src
الوظيفة: تنسخ بايت او قيمة كلمة من المصدر الى الوجهة
مثال: MOV AX,DX
شرح: ستشاهد الكثير من هذا الامر وباعتقادي ان مهمته تمثل بالسطر التالي:
LET dest = src
-----------------------------------------------------------------------------
MOVSB / MOVSW:
الاستخدام: MOVSB / MOVSW
الوظيفة: يقوم بنقل (او في الحقيقة , نسخ) اما بايت (MOVSB) او كلمة (MOVSW) من DS:SI الى ES
I مما يزيد SI
مثال: MOVSB
شرح: لنقل بان الـ DS:SI تشير الى بايت يحمل القيمة 5h
MOVSB ; تقوم بنسخ البايت الذي تشير اليه DS:SI وتضعه في ES
I
والذي في هذه الحالة سيملك القيمة 5h في النهاية
-----------------------------------------------------------------------------
RESITERS المسجلات:
هي اماكن افتراضيه لتخزين البيانات. الوحيدة التي يجب القلق حولها هي:
(E)AX, (E)BX, E(CX), E(DX), الـ (E) هي فقط معرف الى انها تطبيقات 32 بت
وايضا المسجلات الزوجية التالية:
DS:SI ; يمكن استخدامها كمصدر
ES
I ; تستخدم كهدف
----------------------------------------------------------------------------
REP:
الاستخدام: REP
الوظيفة: تكرار تعليمة لعدد من المرات محدد في المسجل CX.
وعندما تاتي مع احد الاوامر التالية فانها تؤدي الى تكرارها MOVSB, LODSB, STOSB
مثال: MOV AL,Bh ; AL تحوي الان القيمة bh
MOV CX,5h ; CX تحوي القيمة 5h
REP STOBSB ; تنسخ قيمة AL (5h) الى مثلا DS:SI وتكرر لخمس مرات مع مضاعفة SI حسب عدد مرات التكرار
----------------------------------------------------------------------------
RET:
الاستخدام: RET
الوظيفة: العودة من وظيفة او امر
مثال: RET
شرح: غالبا ستشاهد هذا الامر في نهاية الشفرة وغالبا يقوم باعادة الشفرة الى احد اسطر الاوامر بواسطة الامر CALL
----------------------------------------------------------------------------
STOBSB / STOSW:
الاستخدام: STOSB / STOSW
الوظيفة: تاخذ القيمة من AL (STOSB) او من AX (STOSW) وتضعها في DS:SI وتزيد الـ SI
مثال: STOSB
شرح: دعونا نقول بان الـ AX تملك القيمة EBh
STOSB
تنسخ قيمة الـ AX وتضعها في الكلمة والتي تشير اليها الـ DS:SI في هذه الحال DS:SI الان تشير الى كلمة تملك القيمة EBh
تستخدم الاوامر بعدها سوية مع امر REP
---------------------------------------------------------------------------
تحياتي وترقبوا الاوامر الاخرى