软件破解常用汇编指令
cmp a,b // 比较a与b
mov a,b // 把b值送给a值,使a=b
ret // 返回主程序
nop // 无作用,英文(no operation)简写,意思“do nothing”(机器码90)
call // 调用子程序,子程序以ret结尾
je或jz // 相等则跳(机器码是74或84)
jne或jnz // 不相等则跳(机器码是75或85)
jmp // 无条件跳(机器码是EB)
jb // 若小于则跳
ja // 若大于则跳
jg // 若大于则跳
jge // 若大于等于则跳
jl // 若小于则跳
pop xxx // xxx出栈
push xxx // xxx压栈
爆破无敌口诀
一条(跳)就死,九筒(90)就胡――(对应上面的2--修改为nop)
一条(跳)就胡,一饼(EB)伺候――(对应上面的1--修改为jmp)
(74) 变(75)
(84) 变 (85)
一条(跳)就死,九筒(90)就胡
对应这句口诀的软件代码有这样的特征,就是跳转指令后的代码是软件正常运行的代码,而跳转指令跳转到的地方就是软件限制等非正常运行的代码。
口诀的意思是说如果软件在跳转(跳转到指定的代码后)就出现注册失败(无法使用、功能限制等),那么就要把跳转指令(如JMP机器码为EB)改为NOP(机器码为90),这样改后,就使跳转指令失效,从而使跳转指令后面的代码得以执行,达到爆力破解的软件目的。