软件破解全程大揭密
在很多人的眼中,软件破解是一直很神秘。其实,你也可以做到软件破解的,下面笔者用通俗的语言介绍软件破解。不过,笔者只是希望你步入破解的殿堂,了解奇妙无比的破解天地。利用下面的知识做坏事,出了事笔者可不负责哟。
结果,如图2所示,软件crackme7.exe是用UPX v0.94软件加的“壳”,其中0.94为UPX的版本 。
2.同时侦测“壳”和编写语言的软件language2000(两个功能合为一体,太酷了)。笔者特别推荐使用language2000中文版(http://fpxxp.com/1/HA_language2k451144_YY.zip),它完全是傻瓜式软件,上手很容易,运行后选取待侦测“壳”的软件即可,图3为运行接口。
图3
如图4所示,软件W32Dasm.exe是用ASPack 2.11加“壳”,2.11为ASPack的版本
4.侦壳新霸主pe-scan(http://fpxxp.com/pe-scan.zip)增添了自动去“壳”功能,开拓了侦“壳”软件新的发展方向,从而奠定了其新霸主地位。如图5,运行后把左下角的shell打上对 就整合到了右键菜单。
图5
表1 破解常见修改
5.两种不同情况的不同修改方法
为了破解软件的注册和功能限制,归根结底其方法就是在两种不同情况下对程序所进行的修改,具体总结如下。
(1)修改为jmp(其示意图见图6)
je(jne,jz,jnz) =>jmp相应的机器码为EB (意思是出错信息向上找到的第一个跳转),jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息。例如:
xxxxxxxxxxxx 出错信息,如注册码不对,sorry,未注册版不成功,“Function Not Avaiblein Demo”,“Command Not Avaible” 或 “Can’t save in Shareware/Demo”等,我们希望把它跳过,不让它出现。
……
xxxxxxxxxxxx 正确路线所在,直接跳转到这里。
(图6)
针对上面两点,笔者总结了个爆破无敌口诀 背会此口诀,你将天下无敌,以后慢慢琢磨,仔细体会,收益多多,千万不要错过哦!
一条(跳)就死,九筒(90)就胡 (对应上面的(2)――修改为nop)
一条(跳)就胡,一饼(EB)伺候 (对应上面的(1)――修改为jmp)
妻死(74)便妻无(75)
爸死(84)便爸无(85)
静态分析与实例
1.静态分析
1.欲破解一软件,首先应该先用用想破解的这个软件,了解一下功能是否有限制,最好阅读一下软件的说明书或手册,特别是自己所关心的注册部分的使用说明,这样能够找到些线索。
所谓静态分析是从反汇编出来的程序列表上分析。从提示信息入手进行分析。
目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件则显示相应的提示信息,并等待用户 按键选择。而后软件执行完某一段程序后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示使用者进行下一步工作的说 明信息。为此,如果我们对静态反汇编出来的程序列表进行阅读,可了解软件的程序设计思路,以便顺利破解。人机对话方式给破解带来了方便。
2.W32Dasm介绍
破解时常用的静态分析工具是W32Dasm。大家可使用经中国破解人多此修改过的W32Dasm黄金版中文版(http://fpxxp.com/pw32dasmgold.zip),它功能强大,能完美显示中文和处理VB程序。
W32Dasm能很方便地反汇编程序,其使用也很简单,请读者参照后面的范例掌握。
3.实际修改地址(偏移地址)和行地址(虚拟地址)
W32Dasm反汇编出来的代码由三列组成:
第一列 行地址(虚拟地址)
第二列 机器码(最终修改时用ultraedit修改)
第三列 汇编指令
第一列 第二列 第三列
:0041BE38 2B45F0 sub eax, dword ptr [ebp-10]
:0041BE3B 6A42 push 00000042
在W32Dasm下将绿色的光条移到某一行代码上,在窗口底部可以看到一些字符。
例如:@:00461456 @:Offset 00060856h
第一个@指示行地址(虚拟地址),@00461456 与W32Dasm光条所在行的第一列相同;
第二个@指示实际修改地址(偏移地址) ,@Offset 00060856h中,h表示十六进制,offset的英文意思是偏移。
4.EXE可执行文件的修改方法
这是破解程序的最后一步(注意:修改程序时已经确保程序脱“壳”)。用ultraedit找到实际修
改地址(偏移地址),修改机器码,从而完成exe檔的修改
方法:打开欲修改的档,敲入Ctrl+g,0x偏移地址(如上面的敲入0x60856),即可到达实际修
改地址。
5. W32Dasm的使用
(1)打开文件。选“反汇编”菜单下的“打开档”打开可执行文件,如aa.exe(图8)。
图8

5. 动态追踪破解技巧-破解经典句式
以下是经典的比较组合,常常是注册码的出现处,所以被称为破解经典句式。
(1)
mov eax,[ ] //这里可以是地址,也可以是其他寄存器或mov eax [ ]。
mov edx,[ ] //同上,通常这两个地址就储存着重要信息 或者可以是pop edx。
call XXXXXXXX //关键call。
test eax,eax //eax为标志位。
jz(jnz)或 jne(je) //关键跳转。
(2)
mov eax,[ ] //这里可以是地址,也可以是其他寄存器。
mov edx,[ ] //或是pop edx,通常该地址就储存着重要信息。
call XXXXXXXX //关键call。
jne(je) //关键跳转。
(3)
mov eax,[ ] //这里可以是地址,也可以是其他寄存器
mov edx,[ ] //同上,通常储存着重要信息
cmp eax,edx //关键比较。
jnz(jz) //关键跳转。
6.动态破解实例
限于篇幅,给出下载地址http://fpxxp.com/ex2.zip,请读者自行查阅。
学好破解的补充
真正要深入地学好破解,是必须熟练掌握几十种破解工具的使用方法,熟悉API的相关知识,熟悉Windows程序设计,熟悉汇编知识。如此这般,才能如疱丁解牛,破解起软件来游刃有余。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!