-
-
[旧帖]
[推荐]汇编基本指令和解密常见修改
0.00雪花
-
发表于:
2010-4-12 17:51
2344
-
[旧帖] [推荐]汇编基本指令和解密常见修改
0.00雪花
汇编常用用指令如下(汇编基础比较差者可以先强行记忆,以后慢慢理解消化)
cmp a,b比较a与b
mov a,b把b的值赋给a,使a=b
ret返回主程序
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压栈
解密常见修改
解密时经常修改的指令
软件解密时经常需要修改的汇编指令如下
jnz/jnenop 7590
jnz/jnejmp 75EB
jz/jenop 7490
jz/jejmp 74->EB
jnzjz 7574或0F850F84
jzjnz 7475或0F840F85
jnzjz 7574或0F850F84
jejne 7475或0F840F85
两种不同情况的不同修改方法
1修改为jmp
je(jne,jz,jnz)=>jmp相应的机器码EB(出错信息向上找到的第一个跳转),jmp的作用是绝对跳转,无条件跳转,从而跳过下面的出错信息:XXXXXXX出错信息,例如:“注册码不对”,“Sorry,未注册版不能。。。”,“Function Not Avaible in Demo”或”Command Not Avaible”或”Can’t save in Shareware/Demo”等,我们可以通过jmp把它跳过,不让它出现。
2修改为nop
je(jne,jz,jnz)=>nop相应的机器码90(正确信息向上找到第一个跳转),nop的作用是去掉这个跳转,使这个跳转无效,失去作,从而使程序顺利的来到紧跟其后的正确信息处:XXXXXX正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过让它出现,程序一定要顺利来到这里)
3爆破无敌口诀
一条(跳)就死,九筒(90)就胡(对应上面的2,修改为nop)
一条(跳)就胡,一饼(EB)伺候(对应上面的1修改为jmp)
气死(74)便气无(75)
霸死(84)便霸无(85)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课