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或84)
jne或jnz // 不相等则跳(机器码是75或85)
jmp // 无条件跳(机器码是EB)
jb // 若小于则跳
ja // 若大于则跳
jg // 若大于则跳
jge // 若大于等于则跳
jl // 若小于则跳
pop xxx // xxx出栈
push xxx // xxx压栈
一条(跳)就死,九筒(90)就胡
对应这句口诀的软件代码有这样的特征,就是跳转指令后的代码是软件正常运行的代码,而跳转指令跳转到的地方就是软件限制等非正常运行的代码。
口诀的意思是说如果软件在跳转(跳转到指定的代码后)就出现注册失败(无法使用、功能限制等),那么就要把跳转指令(如JMP机器码为EB)改为NOP(机器码为90),这样改后,就使跳转指令失效,从而使跳转指令后面的代码得以执行,达到爆力破解的软件目的。
一条(跳)就胡,一饼(EB)伺候
对应这句口诀的软件代码有这样的特征,就是跳转后到达软件的正常运行代码,而不跳转呢,就执行跳转指令下面的非正常运行代码(如不能注册、功能限制等)。
口诀的意思是说如果软件在跳转后(跳转到指定代码)就使软件正常运行(如成功注册,功能限制解除等),那么就要让这个跳转变成JMP(机器码为EB)这个无条件跳转指令,从而达到爆为破解的目的。
(74) 变(75)
(84) 变 (85)
posted on 2007-07-11 12:29
dragon 阅读(213)
评论(1) 编辑 收藏 所属分类:
asm学习