好,废话不多说,教程开始。
我们首先查壳,是Aspack的壳,对于这个壳,大家应该很熟了。 ![]() 我已经脱好了壳,再查一下壳,是Dephi的 ![]() ![]() 我们先使用一下软件,详细了解 ![]() ![]() 很明显,未注册版本不能使用“单人挑战”、“网络挑战”等功能,那么破解就是为了可以使用这些功能。 好,我们用Ollydbg载入软件,这是程序入口 ![]() 让软件运行,并点击“单人挑战”,随意选择等级,弹出“未注册” ![]() 让软件暂停运行,点击 “查看”—“调用堆栈” 弹出堆栈窗口,如图 ![]() 选择最后的一行,右击,选择显示调用,来到弹出窗口的CALL ![]() 分析一下,显然00569A7F是跳转的关键。那有朋友要说,不是把那行的“jnz”改为“je”就可以了吗?是的,这样确实可以,但因为未注册版本有很多功能无法使用,如果只改这里,那么其他的功能(如网络挑战)还得按照这样的方法修改。这不是很烦吗?所以我们要找到使这个跳转跳向未注册的关键点 ![]() 我们在这段代码的开头下F2断点,重新运行软件,点击“单人挑战”,随意选择等级,程序马上暂停,Ollydbg提示有断点。然后一步步分析,发现00569A7C的代码似乎是判断是否注册的关键。单步运行到00569A7C,CPU下方小窗口显示ds[005731E4]=00,那很显然,只要ds[005731E4]=01,那么程序就是注册的了。我们右击这个提示,选“数据窗口中跟随地址”,如图 ![]() 如图,将005731E4的数据改为01 ![]() ![]() 接下来就是要生成破解后的文件,在数据窗口右击,选“复制到可执行文件”,在弹出的窗口右击,选“保存文件” ![]() ![]() 我们试用一下破解后的文件,可以了,已经没有限制 ![]() 到这里,教程就结束了,大家下去后好好练习下。我修改了一下软件的界面,如图 ![]() ![]() 其中的kxqa.exe是原程序,脱壳.exe是脱壳后的文件,破解.exe是破解后的文件,开心知识问答.exe是我修改软件界面后的文件 |
|