世家101的破解经验
暗组世家101
小弟学破解的时间并不长,受老四的帖子的启蒙,才加入学习破解这一大队列。这次开贴,只是回顾自己学习到得东西,并综合利用一下。也让自己在以后的时间,能不断进步。废话不说,开始破解。
这次选用的是一款小游戏----《潜艇大战【北斗版】》。用peid查壳,可知是ASPack 2.12 -> Alexey Solodovnikov。用ollydbg打开,可看到点”确定”
点“否”。
我们就来到入口。
根据图片指示,我们一步步推进。
来到这里,我们已经到达oep了。
接下来就是把壳脱了。按照图片的顺序一步步来。
到这里,选择一个任意名字,就行了。再用ollydbg载入我们刚刚脱掉的壳的文件。可以看到,已经没有再询问我们任何东西了,而且直接到达oep,说明脱壳成功。用peid查壳,可以看到,已经变为
Borland Delphi 4.0 - 5.0
***********************************************我是华丽的分割线****************************************************
后面就是本人的兴趣了-----修改游戏。在游戏中,有一种道具是吃了会进入无敌时间。我现在修改成,吃任何道具都变无敌。接上面的图,在ollydbg中,我们查找无敌这一字符串。
可以看到,找到了无敌这一字符串,双击它
我们来到无敌的代码段。
我们往上看,可以看到,这是一个switch语句,可见,一定是有一个跳转到这里。在这里,就是004946D5.我们点击004946D5这一地址,可以看到,有一个红色箭头,源头就是跳转代码了。
那段代码是根据你吃到的道具,选择获得的能力。我们可以用一个跳转,让它实现无敌。我们把004647C0的代码,改为JMP 004649D5
修改后,我们保存一下
选择全部修改
任意一个文件名。保存后,运行文件。可以知道,我们吃任何道具,都会进入无敌状态。至此修改成功。
***********************************************我是华丽的分割线****************************************************
当然,你吃不到道具,被炸弹炸到了,还是会死,我们不如弄个不死版的。
还是之前那个脱壳后的文件,导入后,运行游戏后,用修改器找到保存生命数的内存的位置。我这里是00B14008。回到ollydbg,按住ctrl+G。输入00B14008。
我们来到这里
下好断点后,继续游戏,设法减少性命。这时会中断,来到下面这里
哈哈,这里就是中弹后,减命的代码。我们把它改成遇弹后跳转到无敌状态。
保存后,运行游戏。哈哈,无论如何,我们的不死啦。
好累啊!打了那么多字。这是我这段时间的收获,或许简单,但对我来说,是激励着我的动力。
PS:哪位大大能够帮我找一下,那个计算无敌时间的代码,我找不到!!!
上一篇: 西南某比赛的三个简单逆向题分析
下一篇: ANTI ANTI-VMWare