简单逆向破解一个软件

这个软件的名字叫乐斗圣斗士,我是别人叫我帮忙看看这个软件能破吗,我才来试试的,破完发觉学到点东西,便来分享下了

首先拿到一个软件,先不要着急拿入od,ida什么的我觉得,先走一遍流程,看下这软件哪里是关键点,哪里有漏洞,可以让我们攻击

跑完一遍流程后,我发觉很多提示我们注册的地方,既然有让我们注册,就肯定有跳转语句跳过这个,那有跳转,就得有判断吧,不然注册用户也是显示提示框就太不友好了,那就很明确了,我们要找的地方就是判断点,好开始我们的工作:

第一步,查个壳吧,如果是压缩壳就脱了,不是的话,那就直接带壳破解吧,加密壳算了吧,我目前没有这能力去

Exeinfo PE查出来不知道什么壳,百度了一下,是tmd强壳,算了吧,强壳,带壳破解吧(温馨提示:普通配置虚拟机过不了这个壳,得过检测的虚拟机才可以调试,手动过反调试也可以,目前我还不会)

第二步,载入od,开头会显示是或者否分析数据,随你点,问题不大,让程序先运行起来,然后

直接ctrl+g输入401000或者按e,这里是程序的基地址,搜索字符串先,看能不能搜索到,不能搜索到的话,用别的方法

这些断点应该都可以断下,我没试过,具体你们自己尝试,这个软件可以搜索到字符串,没有加密,只是加了个强壳,代码没有vm,对待新手还是很友善的了,

搜索到后,该搜索啥?就是第一步我们找到的那些东西,搜索未注册这个字符串

发觉了已注册,还有为注册版这个东东,点进去看看,向上翻,然后到段首下面一点下断(为什么?因为测试出来的,段首下断他检测得出来,然后不行),段首是什么?段首就是retn下面的第一句话,然后重载程序,继续运行起来,这时候他会显示断点不可用,这时候你点B(breakpoints),进去那里,等到他加载变成正常代码时,激活,最后断在这


然后F8向下走,可能你按一下F8,然后突然程序运行起来了,可又打不开,这时候在运行行下一行或者两行下个断点,按T(上面那一堆英文字母那)激活所有线程,然后就可以了,刚刚线程是被挂起了,然后向下走,有点经验的人,一下子就能发现故那件点了


cmp命令是将两个数比较,改变标志位,也就是右边的那个0,1 C P A Z S有兴趣的自己普及一下汇编知识,左边的寻址方法明显是对一个全局变量,我们很容易猜到,注册为1那里,而未注册为0,


右键数据窗口跟随,内存地址,然后发觉左下数据窗口,那里为0,印证了我们的猜想,那很简单了啊,我们把他改为1试试,看能不能成功,直接双击下面数据,输入01,让程序运行起来,发觉程序已经是注册版本


哈,感觉是不是很简单,那现在直接保存就好了啊,很抱歉,这是强壳,无法直接保存,那该怎么办呢,这里有个知识,就是打补丁,现在的程序很多都是vmp,tmd这类强壳,打补丁就好了,那该在哪打呢,我们应该在比较前面修改语句,不然比较完后就完了,然后补丁又有知识了,什么时候是打补丁的时间,我们需要在程序运行启动开始就修改程序了,而不是程序运行后,所以内存补丁是没有用的,也不能说没有用,第一次有效,第二次就没效果了,你自己可以试试,所以,经过我一番周转,我学到了一个新知识,dll劫持补丁,这个东西就是程序会加载系统的dll,而优先级是先加载同目录下的系统同名dll,所以利用这个可以达到效果,话多了,实践吧!

这两行点右键,二进制复制,


复制到这里,地址就填前面的那个地址,然后双击cmp那行,将cmp替换为mov,确定,mov是赋值的意思,将那里赋值为1

然后点增加补丁数据,右边生成注入工具这里记得打勾,然后生成,然后生成后复制到启动目录,点启动工具

,win10下,启动完美,其实这个软件到这里还没破解完全,有一些暗桩还没找出来,就是还会弹出显示要vip的信息,这后面这部分自行测试,自行破解。


写这篇文章让我理清了这个软件的思路,说实话,我刚开始搞这个软件的时候,画了比较久研究,新手,后面才发觉很简单,不过dll劫持这部分确实让我学到了新东西,学到了很多吧,我不会发布这个软件,也不会发布软件的补丁,如果有需要分析可以来找我拿,我只是提供一个思路

猜你喜欢

转载自blog.csdn.net/u010334666/article/details/80629071