教程出处:英伦技术小组--腾讯博客
英伦网盟对此教程不付任何刑事责任!盗版必究
软件破解常用汇编指令
cmp a,b // 比较a与b
mov a,b // 把b值送给a值,使a=b
ret // 返回主程序
nop // 无作用
call // 调用子程序,子程序以ret结尾
je或jz // 相等则跳(机器码是74或84)
jne或jnz // 不相等则跳(机器码是75或85)
jmp // 无条件跳(机器码是EB)
jb // 若小于则跳
ja // 若大于则跳
jg // 若大于则跳
jge // 若大于等于则跳
jl // 若小于则跳
pop xxx // xxx出栈
push xxx // xxx压栈
★★破解经典句式★★
1.(最常用)
mov eax [ ]
mov edx [ ]
call 00?????? 关键call
test eax eax
jz(jnz)或 jne(je) 关键跳转
2 (最常用)
mov eax [ ]
mov edx [ ]
call 00?????? 关键call
jne(je) 关键跳转
3
mov eax [ ]
mov edx [ ]
cmp eax,edx
jnz(jz)
4
lea edi [ ]
lea esi [ ]
repz cmpsd
jz(jnz)
5
mov eax [ ]
mov edx [ ]
call 00??????
setz (setnz) al (bl,cl…)
6
mov eax [ ]
mov edx [ ]
call 00??????
test eax eax
setz (setnz) bl,cl…
7
call 00?????? ***
push eax (ebx,ecx…)
……
……
call 00??????
pop eax (ebx,ecx…)
test eax eax
jz(jnz)
一、数据传输指令
───────────────────────────────────────
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV 传送字或字节.
MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
PUSHA 把AX,CX,广州随车吊出租,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA 把DI,SI,BP