如何破解软件注册码下面开始今天的破解,破解需要的软件:侦壳 language.exe脱壳 AspackDie.exe反编译 W32Dasm 黄金中文版16 进制编辑器 UltraEdit.rar在破解之前先复习一下基础知识:一.破解的等级初级,修改程序,用 ultraedit 修改 exe 文件,称暴力破解,简称爆破;中级,追出软件的注册码;高级,写出注册机二.用 w32dasm 破解的一般步骤:1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误提示信息,将错误提示信息记下来3.侦测有无加壳(第一课).若加壳,脱壳( 第二课)4.pw32dasmgold 反汇编5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键6.pw32dasmgold 主窗口中分析相应汇编,找出关键跳转和关键call7.绿色光条停在关键跳转,在 pw32dasmgold 主窗口底部找到关键跳转的偏移地址(实际修改地址)8.用 ultraedit 找到偏移地址 (实际修改地址)修改机器码,保存壳的概念:版权信息需要保护起来,不想让别人随便改动,exe可执行文件压缩,最常见的加壳软件 ASPACK ,UPX,PEcompact脱壳:拿到一个软件,侦测它的壳,然后我们要把它的壳脱去,还原它的本来面目.若它没有加壳,就省事不用脱壳了.脱壳软件unaspack,caspr,upx,unpecompact,procdump实际修改地址(偏移地址)和行地址( 虚拟地址)pw32dasmgold 反汇编出来的代码由三列组成第一列 行地址(虚拟地址)第二列 机器码(最终修改时用 ultraedit 修改)第三列 汇编指令第一列 第二列 第三列:0041BE38 2B45F0 sub eax, dword ptr [ebp-10] :0041BE3B 6A42 push 00000042 :0041BE3D 50 push eax :0041BE3E FF75F4 push [ebp-0C] :0041BE41 FF75F0 push [ebp-10] :0041BE44 FF35A8AB4400 push dword ptr [0044ABA8] 两种不同情况的不同修改方法1.修改为 jmpje(jne,jz,jnz) =>jmp 相应的机器码 EB (出错信息向上找到的第一个跳转)jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息2.修改为 nopje(jne,jz,jnz) =>nop 相应的机器码 90 (正确信息向上找到的第一个跳转) nop 的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。
好了,下面开始我们的破解之旅1,侦壳:先打开侦壳 language.exe,选择打开---- 找到要破解的软件点确定, language.exe 便显示出软件的壳是: Aspack 2,脱壳:双击脱壳软件,出现一个对话框,选择网络填表终结者:FormGhost.exe, (我们今天要练习脱壳的软件)打开点确定脱壳完成在网络填表终结者:FormGhost.exe 同目录下生成一个unpacked.exe 文件,这就是脱壳后的 FormGhost.exe4,开始反汇编:打开 反编译 W32Dasm 黄金中文版,选择反汇编---- 打开脱壳后的 unpacked.exe,变开始加载 找到 “注册码错误” ,双击它,汇编主程序便来到里:图 135,开始修改软件:打开 16 进制编辑器 UltraEdit.rar, (有点慢)图 17打开脱壳后的 unpacked.exe,直接按 ctrl+g,出现对话框,输入 0xacb4b(即偏移地址,不要前面的 000)图 18点确定,来到图19 6,关闭所以软件,运行另存的 unpacked222.exe,点帮助---注册,注册名称,注册码随便添,点确定,提示注册完成。
图 21回到软件界面看看,帮助,注册一项已经变为灰色了,图 227,破解全部完成点确定,来到图 19前面说过正确注册信息在错误信息之上,所以这里将 of85 改为of84图 20 (如果正确注册信息在错误信息之下,这里改为 eb) 将光标移到 5 上直接输入数字 4 即可,其他地方不要动好了,改好只后左上角的文件---另存为 unpacked222.exe (注意:正确注册信息在错误信息之上)关闭串式参考框看主程序:图 14从注册码错误向上找到第一个跳转(关键跳,除了jmp 的其它跳:je,jne,jz,jnz) ,来到这里图 15它上面的 call 叫关键 call ) ,双击关键跳,看软件最下面有一行字:Line:379267 Pg 7586 of 7626 Code Data@004ACB4B@Offset 00ACB4BH in File:unpacked.exe.其中@Offset 00ACB4BH 就是偏移地址,记住 00ACB4B(后面的 h 代表 16 进制,不用管他) ,图 16返汇编之后如图 7点击上面的参考----串式参考如图 8,3,运行脱壳后的 unpacked.exe,点帮助----注册,图 9。
注册名称,注册码随便添图 10点注册,提示:“注册码错误”图 11,好了记住这 5 个字破解组织类 :-----------1. PGC - http://www.pgc-2. The Millenium Group - http://tmg.da.ru/ (Keygen Factory :-)3. HellForge - http://www.hellforge.org/4. The Cracking Answer - http://tca2k.da.ru/5. Immortal Descendants - http://www.immortaldescendants.org6. TrickSoft - DOOM - ultraedit第三课 破解预备知识一.机械码,又称机器码.ultraedit 打开 ,编辑 exe 文件时你会看到许许多多的由 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 组成的数码,这些数码就是机器码.修改程序时必须通过修改机器码来修改 exe 文件.二.需要熟练掌握的全部汇编知识(只有这么多)cmp a,b 比较 a 与 bmov a,b 把 b 的值送给 aret 返回主程序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=>EB75=>74 75=>90 75=>EBjnz->nop75->90(相应的机器码修改)jnz -> jmp75 -> EB(相应的机器码修改)jnz -> jz75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)四.两种不同情况的不同修改方法1.修改为 jmpje(jne,jz,jnz) =>jmp 相应的机器码 EB (出错信息向上找到的第一个跳转)jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry, 未注册版不能...,"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等 。
xxxxxxxxxxxx 正确路线所在2.修改为 nopje(jne,jz,jnz) =>nop 相应的机器码 90 (正确信息向上找到的第一个跳转) nop 的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处 xxxxxxxxxxxx 正确信息,例如:注册成功,谢谢您的支持等五.爆破无敌口诀一条(跳)就死,九筒(90)就胡 (对应上面的 2.修改为 nop)一条(跳)就胡,一饼(EB)伺候 (对应上面的 1.修改为 jmp)妻死(74)便妻无(75) 爸死(84)便爸无(85)第四课 W32DASM 介绍一、静态分析欲破解一软件,首先应该先用用这个软件,了解一下功能是否有限制,最好阅读一下软件的说明或手册,特别是自己所关心的注册部分的使用说明,这样也许能够找到点线索 所谓静态分析即从反汇编出来的程序清单上分析从提示信息入手进行分析.二、W32DASM 介绍crack 时常用的静态分析工具是 W32DASM.W32DASMpw32dasmgold 能很方便地反汇编程序,它主要用于静态分析软件,不要用它作动态分析其使用也很简单,参照后面的范例很快就能掌握。
你将鼠标移到 W32DASM 最左边,点一下,将有一红点出现,再按住 shift 键,移到你需要的下一行,再按鼠标一下,将选中一段,按CTRL+C 复制, CTRL+V 粘贴到你的记事本或其它编辑处三、 实际修改地址(偏移地址)和行地址( 虚拟地址)pw32dasmgold 反汇编出来的代码由三列组成在 W32DASM 下将绿色的光条移到某一行代码上 , 在窗口底部可看到例如@:00461456 @:Offset 00060856h第一个@ 指示行地址 (虚拟地址),@00461456 与 W32DASM 光条所在行的第一列相同第二个@ 指示实际修改地址( 偏移地址) , @Offset 00060856h h 表示十六进制offset 的英文意思是偏移用 ultraedit 找到实际修改地址 (偏移地址),修改机器码,从而完成 exe文件的修改方法:打开欲修改的文件,敲入 ctrl-g,0x 偏移地址(如上面的敲入0x60856),即可到达实际修改地址四.pw32dasmgold 的使用第五课 用 w32dasm 破解的一般步骤Trw2000 常用键F5 键:退出 Trw2000 窗口(等价于输入 go 简打 g 命令)F8 键: 遇到 call 时追进 callF9 键:在光标所在位置设断点F10 键:单步执行F12 键:一个循环圈一个循环圈的走(程序执行到 RET 指令处,即从子程序 CALL 中返回,从 CALL 到 RET 为一个循环圈 )Trw2000 常用命令bpx *** 在***处下断点,最常用的 bpx hmemcpy 万能中断bd* 清除所有断点bc* 清除一个断点go 简打 g 暂时退出 Trw2000 窗口code on(code off) 显示三列,出现机器码,和 w32dasm 看到的一样(code off 关闭)pmodule 到程序领空x 彻底退出 Trw2000Trw2000 的使用 运行 Trw2000.EXE 程序即可启动 Trw2000,Ctrl+N 。