软件汉化:OllyDBG 入门之二–破解预备知识(转)

二、需要熟练掌握的全部汇编知识

不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了

cmp a,b  比较 a 与 b
mov a,b  把 b 的值送给 a
ret  返回主程序
nop  无作用 英文“no operation”的简写,意思是“do nothing”(机器码90)

call  调用子程序
je 或 jz
 若相等则跳(机器码74 或0F84)
jne 或 jnz
 若不相等则跳(机器码75或0F85)
jmp
 无条件跳(机器码EB)
jb
  若小于则跳
ja
  若大于则跳
jg
  若大于则跳
jge
 若大于等于则跳
jl
  若小于则跳
jle
 若小于等于则跳
pop
 出栈
push 
压栈

三、常见修改(机器码)

74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB

jnz->nop
75->90
(相应的机器码修改)

jnz -> jmp
75 -> EB
(相应的机器码修改)

jnz -> jz
75->74
(正常)0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)


四、
两种不同情况的不同修改方法

1、修改为jmp
je(jne,jz,jnz)=>jmp 相应的机器码EB(出错信息向上找到的第一个跳转) jmp的作用是绝对跳无条件跳,从而跳过下面的出错信息

xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能… , “Function Not Avaible in Demo” 或 “Command Not Avaible” 或 “Can’t save in Shareware/Demo”等 (我们希望把它跳过,不让它出现)
。。。
xxxxxxxxxxxx 正确路线所在

2、修改为nop

je(jne,jz,jnz) =>nop 相应的机器码90(正确信息向上找到的第一个跳转) nop的作用是抹掉这个跳转,使这个跳转无效,从而使程序顺利来到紧跟其后的正确信息处

xxxxxxxxxxxx 正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)
。。。
xxxxxxxxxxxx 出错信息(我们希望不要跳到这里,不让它出现)
。。。

五、爆破无敌口诀

一条(跳)就死,九筒(90)就胡 (对应上面的2.修改为nop )
一条(跳)就胡,一饼(EB)伺候 (对应上面的1.修改为jmp )
妻死(74)便妻无(75)
爸死(84)便爸无(85)

 

汇编语言的几条常用命令:

根据条件作出是否跳转的决定,通常前面会有一个判断语句,例如:
CMP AX,BX
JZ XX

上面两条命令意为用AX减BX,它的值如果为0则跳转到XX的标 行

常用的跳转命令有:

跳转命令

JZ/JE 相等或为零为则跳转
JNZ/JNE 不相等或不为零则跳转
JL/JLE 小于/小于或等于则跳转
JG/JGE 大于/大于或等于则跳转
JMP 无条件跳转

比较语句

CMP AX,BX AX寄存器减去BX寄存器的内容
AND AX,BX AX与BX做”与运算”
OR AX,BX AX与BX做”或运算”
TEST AX,BX 与 AND AX,BX 命令有相同效果
XOR AX,AX 使AX的内容清零,每个寄存器与自己作异或运算等于清零动作.

子程式

一个子程的模样长得像这个样子:CALL 15F:334422,子程式是主程式的一个分支,用来做特定动作。
打个比方: 你要上班,先走路到车站,然后上车,然后下车,然后走到自己的办公室;
这里如果要把上班编为一段程式的话,那么就可以把”走路”,”搭车”,”走到办公室”做为分支程式来处理;
说得再通俗一点就是: 你要破解的程式不可能就是一条主程式到底,肯定会呼叫下面的子程式,由子程式来处理你发送的注册信息,然后比较,然后标记是否注册正确,这些都是靠它来完成的。
所以说,破解的关键在于,找准程式在哪儿将会作注册判断,并进入那个注册子程式,仔细观察,你就成功了,子程式的返回码是RET。

算术运算

ADD AX,BX 加法运算 AX=AX+BX
SUB AX,BX 减法运算 AX=AX-BX
INC AX 寄存器加一 AX=AX+1
DEC AX 寄存器减一 AX=AX-1
MUL 乘法运算
DIV 除法运算

数据操作

 

MOV AX,BX 数据传送指令,将BX的值移送到AX中
XCHG AX,BX 将AX与BX的值互换

我最近在玩和讯财经微博,很方便,很实用。
一句话,一张图,随时随地与我分享理财心得与亲历见闻。
点击以下链接激活,来和我一起玩吧!
http://t.hexun.com/active.aspxviteCode=vgHnLwTTuTjrgTw%2fP7b6%2fA%3d%3d

相关资源:matlab代码做游戏-nonlocal_games_seminar_talk:一组与“扩展的非…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年5月7日
下一篇 2013年5月9日

相关推荐