تقييم الموضوع :
  • 3 أصوات - بمعدل 3.67
  • 1
  • 2
  • 3
  • 4
  • 5
استفتاء : ضع هنا كل ما يتعلق بالهندسة العكسية
#5
(13-01-2019, 06:09 AM)تلميذ كتب : نريد شرح تعليمات المنقح
jnz,jmz,jn,push,mov,daxالخ...

صيغة الأمر MOV 
mov destination , source 
مثلا : eax = 1 , ebx = 5
mov eax,ebx 
eax ستصبح قيمته 5 بعدما كانت 1 / ملاحظة : لا تخلط بين تعليمة MOV و ADD 
____________________
add eax,ebx 
eax ستصبح قيمته 6 لأن ADD تخص الجمع 
____________________
التعليمة PUSH تقوم بدفع قيمة المعامل للمكدس Stack لغرض حفظ قيمته // ستكون اعلى قيمة في المكدس
مثلا : eax = 4
Push eax // تم دفع القيمة اعلى المكدس 
call xxxxxxxx // قام البرنامج بالمرور بدالة مثلا و أثناء المرور تغيرت قيمة eax ما العمل ؟ 
لنفرض أن قيمة eax أصبحت 445887F
التعليمة POP عكسها تماما تسترد كل ما تم دفعه عن طريق PUSH ...(أعلى قيمة في المكدس)
pop eax // تسترجع القيمة التي تم دفعها و هي 3 , أظن الفكرة وصلت 
___________________ 
أوامر القفز لها معامل واحد : JMP operand و هو العنوان الذي تؤدي إليه القفزات 
مثلا لدينا عنوان 0054784D نريد الذهاب إليه دون شروط : 
jmp 0054784D // أمر قفز عادي (غير مشروط) يقفز مهما كانت النتيجة 
الآن القفزات المشروطة : jz , je / jnz , jne (يوجد غيرها ذكرتها كمثال)
je و jz لهما معنى واحد , إلا ان jz متعلقة بالzero flag 
مثال : eax = 10 , ebx = 10 
cmp eax,ebx // التعليمة cmp هي للمقارنة بين معاملين , و هي تطرح المعامل الثاني من الأول 
je 0054784D // اقفز اذا كانت نتيجة العملية تساوي الصفر , نفس الشيء بالنسبة ل jz اقفز اذا كانت راية ZF تساوي الصفر 
jne و jnz عكس التعليمتين السابقتين ! / jump if not zero | jump if not equal to zero 
___________________
أخي الحبيب لا يوجد تعليمة dax ولا jmz في اوامر أسمبلي x86 . راجع معلوماتك 
لتتأكد أكثر قم بزيارة المرجع التالي : 
https://www.felixcloutier.com/x86/
أعضاء أعجبوا بهذه المشاركة : Small Axe


الردود في هذا الموضوع
RE: استفتاء : ضع هنا كل ما يتعلق بالهندسة العكسية - بواسطة x-member - 13-01-2019, 01:04 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 11 ) ضيف كريم