01-06-2012، 07:37 PM
دستور CMP
شکل استفاده : CMP dest,src
هدف : مقايسه دو پارامتر با يکديگر و ذخيره پاسخ در فلگ ها
مثال : CMP AX,03h
اين دستور يکی از دستورات مهم تو کار کرکه. از اين دستور برای مقايسه دو مقدار در يک برنامه استفاده ميشه مثلا مقايسه دو شماره سريال !
جواب مقايسه ( درست يا نادرست بودن مقايسه ) در فلگ ها ( معمولا فلگ صفر ، فلگ صفر يکی از فلگ های موجود بين فلگ هاست که در انجام اعمالی مثل مقايسه مورد استفاده قرار ميگيره )ذخيره ميشه.
دستور INT
شکل استفاده : INT int_num
هدف : فراخوانی يک تابع که معمولا در BIOS ذخيره ميشود
مثال : INT 10h
بطور کل شما در کرکينگ برنامه های تحت ويندوز تقريبا هيچ وقت با اين دستور برخورد نميکنيد ولی دونستن اين دستور مفيد خواهد بود.
دستور JMP
شکل استفاده : JMP address
هدف : پرش به قسمتی از کد برنامه
مثال : JMP 00402011
اين دستور يک پرش غير شرطی هست که به محل مورد نظر در کد پرش ميکنه.
دستورهای مختلفی در رابطه با پرشهای شرطی وجود داره که مهمترين های اونها برای ما به شرح زير هستند :
JZ که در صورتی که فلگ صفر ، ست شده باشه ( يعنی دارای مقدار يک باشه ) پرشی به محل مشخص شده در جلوی اون انجام ميده. مثال : JZ 00402011
JNZ که در صورتی که فلگ صفر ، ست نشده باشه ( يعنی دارای مقدار صفر باشه ) پرشی به محل مشخص شده در جلوی اون انجام ميده. مثال : JNZ 00402011
JE که همون کار JZ رو انجام ميده .
JNE که همون کار JNZ رو انجام ميده.
اين دستورات پرش شرطی معمولا بعد از انجام يک عمل مقايسه می آيند.
مثال :
CMP RealSerial , BadSerial
JNE GoAwayBadCracker
البته اين يک مثاله و در واقعيت از اين کلمات استفاده نميشه !
دستور MOV
شکل استفاده : MOV dest,src
هدف : مقدار src رو به dest کپی ميکنه
مثال : MOV AX,DX
شما وقتی که درون يک کد جلو بريد با تعداد زيادی از اين دستورات خواهيد ديد.
در حقيقت کار اين دستور بصورت زيره :
AX = DX
اين دستور چند مشابه هم داره مثل MOVSX که تقريبا همون کار رو انجام ميدن.
دستور OR
شکل استفاده : OR dest,src
هدف : يک عمل OR منطقی انجام ميده و نتيجه رو در dest ذخيره ميکنه.
مثال : OR DX,AX
دستور RET
شکل استفاده : RET
هدف : برای بازگشت از يک تابع به برنامه فراخواننده تابع استفاده ميشود.
مثال : RET
اين دستور معمولا در آخر يک تابع ديده ميشه و باعث ميشه که کنترل برنامه به کدی که تابع از اونجا فراخوانی شده برگرده.
خوب دوستان عزيز اينم بخش آخر اسمبلی در کرک بود.
البته زبان اسمبلی بسيار گسترده تر از اين چيزی که اينجا ما گفتيم.
اين فقط برای آشنايی با چند تا دستور بود که توی کار کرک باهاشون برخورد ميکنيم.
منبع : پرشین کرکر
شکل استفاده : CMP dest,src
هدف : مقايسه دو پارامتر با يکديگر و ذخيره پاسخ در فلگ ها
مثال : CMP AX,03h
اين دستور يکی از دستورات مهم تو کار کرکه. از اين دستور برای مقايسه دو مقدار در يک برنامه استفاده ميشه مثلا مقايسه دو شماره سريال !
جواب مقايسه ( درست يا نادرست بودن مقايسه ) در فلگ ها ( معمولا فلگ صفر ، فلگ صفر يکی از فلگ های موجود بين فلگ هاست که در انجام اعمالی مثل مقايسه مورد استفاده قرار ميگيره )ذخيره ميشه.
دستور INT
شکل استفاده : INT int_num
هدف : فراخوانی يک تابع که معمولا در BIOS ذخيره ميشود
مثال : INT 10h
بطور کل شما در کرکينگ برنامه های تحت ويندوز تقريبا هيچ وقت با اين دستور برخورد نميکنيد ولی دونستن اين دستور مفيد خواهد بود.
دستور JMP
شکل استفاده : JMP address
هدف : پرش به قسمتی از کد برنامه
مثال : JMP 00402011
اين دستور يک پرش غير شرطی هست که به محل مورد نظر در کد پرش ميکنه.
دستورهای مختلفی در رابطه با پرشهای شرطی وجود داره که مهمترين های اونها برای ما به شرح زير هستند :
JZ که در صورتی که فلگ صفر ، ست شده باشه ( يعنی دارای مقدار يک باشه ) پرشی به محل مشخص شده در جلوی اون انجام ميده. مثال : JZ 00402011
JNZ که در صورتی که فلگ صفر ، ست نشده باشه ( يعنی دارای مقدار صفر باشه ) پرشی به محل مشخص شده در جلوی اون انجام ميده. مثال : JNZ 00402011
JE که همون کار JZ رو انجام ميده .
JNE که همون کار JNZ رو انجام ميده.
اين دستورات پرش شرطی معمولا بعد از انجام يک عمل مقايسه می آيند.
مثال :
CMP RealSerial , BadSerial
JNE GoAwayBadCracker
البته اين يک مثاله و در واقعيت از اين کلمات استفاده نميشه !
دستور MOV
شکل استفاده : MOV dest,src
هدف : مقدار src رو به dest کپی ميکنه
مثال : MOV AX,DX
شما وقتی که درون يک کد جلو بريد با تعداد زيادی از اين دستورات خواهيد ديد.
در حقيقت کار اين دستور بصورت زيره :
AX = DX
اين دستور چند مشابه هم داره مثل MOVSX که تقريبا همون کار رو انجام ميدن.
دستور OR
شکل استفاده : OR dest,src
هدف : يک عمل OR منطقی انجام ميده و نتيجه رو در dest ذخيره ميکنه.
مثال : OR DX,AX
دستور RET
شکل استفاده : RET
هدف : برای بازگشت از يک تابع به برنامه فراخواننده تابع استفاده ميشود.
مثال : RET
اين دستور معمولا در آخر يک تابع ديده ميشه و باعث ميشه که کنترل برنامه به کدی که تابع از اونجا فراخوانی شده برگرده.
خوب دوستان عزيز اينم بخش آخر اسمبلی در کرک بود.
البته زبان اسمبلی بسيار گسترده تر از اين چيزی که اينجا ما گفتيم.
اين فقط برای آشنايی با چند تا دستور بود که توی کار کرک باهاشون برخورد ميکنيم.
منبع : پرشین کرکر
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg