DSP

破解时常用的汇编指令

2019-07-13 12:59发布

一,破解时常用的汇编指令如下,汇编较弱者可先强行背住,以后就可慢慢理解了。
cmp a,b //比较a与b
mov a,b //把b的值送给a,使a=b
ret //返回主程序
nop //无作用,英文"no operation"的简写,意思是"do nothing"(机器码90) (解释:ultraedit打开编辑exe文件时看到90,等同于汇编语句nop)

call //调用子程序,子程序以ret结尾
je 或jz //若相等则跳(机器码74 或0F84)
jne或jnz //若不相等则跳(机器码75或0F85)
jmp //无条件跳(机器码EB)
jb //若小于则跳
ja //若大于则跳
jg //若大于则跳
jge //若大于等于则跳
jl //若小于则跳
jle //若小于等于则跳
pop xx //xx出栈
push xx //xx压栈
更为详细的指令请查阅汇编书籍。
4.破解常见修改,参看表1。
汇编指令修改 相应的机器码修改(通过16进制编辑器实现)
jnz/jne->nop           75->90
jnz/jne -> jmp         75-> EB
jz/je->nop                74->90
jz/je -> jmp            74-> EB
jnz -> jz                   75->74  或  0F 85 -> 0F 84
jz -> jnz                   74->75  或  0F 84 -> 0F 85
jnz -> jz                    75->74  或  0F 85 -> 0F 84
je-> jne                   74->75  或  0F 84 -> 0F 85