Cracking for Newbiez
Part 3: About Assembly
Part này tạm thời Zombie cung cấp giúp các bạn một số lệnh , chỉ thị asm ở mức cơ nhằm tiện cho việc đọc asm sau này để Crack.
MOV DTS, SRC: Chuyển giá trị từ toán hạng nguồn vào toán hạng đích
PUSH SRC: Cất giá trị toán hạng nguồn vào đỉnh ngăn xếp PUSHF: Chuyển giá trị cờ vào đỉnh ngăn xếp POP DST: Chuyển giá trị từ đỉnh ngăn xếp vào toán hạng đích POPF: Chuyển giá trị từ đỉnh ngăn xếp vào cờ XCHG DST, SRC: Chuyển đổi giá trị giữa 2 toán hạng LEA REG, mem: Đưa địa chỉ Offset của toán hạng nguồn vào thanh ghi đích ADD DST, SRC: Cộng toán hạng nguồn và đích. Kết quả lưu ở toán hạng đích ADC DST, SRC: Tương tự và cộng thêm cờ CF INC DST: Tăng 1 cho toán hạng đích SUB / SBB / DEC: Tương tự cho phép trừ NEG DST: Bù 2 giá trị toán hạng đích. CMP DST, SRC: So sánh giá trị toán hạng đích và toán hạng nguồn. Tác động vào cờ, giá trị 2 toán hạng không thay đổi. MUL / IMUL DST , SRC: Phép nhân không / có dấu. Kết quả lưu ở toán hạng đích. DIV / IDIV DST , SRC: Tương tự cho phép chia. AX : Số nguyên, DX số dư. NOT DST: Đảo bit. AND DST , SRC: Phép và logic giữa toán hạng đích và nguồn. Kết quả trả về ở toán hạng đích. OR DST, SRC: Phép hoặc logic XOR DST, SRC: Exclusif OR ( Bit của kết quả bằng 1 nếu giá trị 2 bit được XOR khác nhau). TEST DST , SRC: So sánh nội dung 2 toán hạng qua phép toán AND. Kết quả tác động đến các cờ. SHL DST, CL: Dịch trái các bit toán hạng đích Count lần (Count = CL). Ý nghĩa tương đương DST = DST * 2^CL. SHR DST, CL: Tương tự là dịch phải và là phép chia 2^CL * Cách dịch bit bằng cách đưa bit bị dịch vào CF thay bit dồn lên là bit 0. SAL / SAR: tương tự 2 chỉ lệnh trên nhưng dành cho các số có dấu. ROL / ROR: Dịch bit nhưng bit bị dịch được bảo tồn bằng cách chuyển về đầu bên kia phép dịch. RCL / RCR: Tương tự nhưng giá trị cở CF là giá trị sẽ được dùng để dồn vào đầu bên kia phép dịch. |
Quote:
JA Jump If Above
JAE Jump If Above or Equal JB Jump If Below JBE Jump If Below or Equal JC Jump If Carry JCXZ Jump if CX Register Zero JE Jump If Equal JG Jump If Greater JGE Jump If Greater or Equal JL Jump If Less JLE Jump If Less or Equal JMP Jump Unconditionally JNA Jump If Not Above JNAE Jump If Not Above or Equal JNB Jump If Not Below JNBE Jump If Not Below or Equal JNC Jump If No Carry JNE Jump If Not Equal JNG Jump If Not Greater JNGE Jump If Not Greater or Equal JNL Jump If Not Less JNLE Jump If Not Less or Equal JNO Jump If No Overflow JNP Jump If No Parity JNS Jump If No Sign JNZ Jump If Not Zero JO Jump If Overflow JP Jump If Parity JPE Jump If Parity Even JPO Jump If Parity Odd JS Jump If Sign JZ Jump If Zero |
In bài này