- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
一.机械码 ,又称机器码       . 
ultraedit  打开 ,编辑  exe 文件时你会看到 
许许多多的由       0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 组成的数码 ,这些数码 
就是机器码  . 
修改程序时必须通过修改机器码来修改                  exe 文件 . 
二.需要熟练掌握的全部汇编知识              (只有这么多  ) 
不大容易理解      ,可先强行背住      ,混个脸儿熟  , 以后慢慢的就理解了 
cmp a,b 比较 a 与 b 
mov a,b 把 b 的值送给    a 
ret  返回主程序 
nop 无作用 ,英文    “no operation的简写,” 意思是    “do nothing 机器码”( 90)***  机器码的含义参看 
上面 
(解释 :ultraedit  打开编辑 exe 文件时你看到      90,等同于汇编语句       nop) 
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 出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、 
寄存器和输入输出端口之间传送数据                . 
1.  通用数据传送指令      . 
MOV   传送字或字节     . 
MOVSX   先符号扩展     ,再传送 . 
MOVZX   先零扩展  ,再传送 . 
PUSH  把字压入堆栈      . 
POP  把字弹出堆栈     . 
PUSHA  把 AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈      . 
POPA  把 DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈     . 
PUSHAD   把 EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI  依次压入堆栈      . 
POPAD  把 EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX  依次弹出堆栈      . 
BSWAP   交换  32 位寄存器里字节的顺序 
XCHG   交换字或字节      .(  至少有一个操作数为寄存器         ,段寄存器不可作为操作数          ) 
CMPXCHG    比较并交换操作数        .(  第二个操作数必须为累加器          AL/AX/EAX ) 
XADD   先交换再累加      .( 结果在第一个操作数里         ) 
XLAT  字节查表
                 原创力文档
原创力文档 
                        

文档评论(0)