第一次实战破解 DNF九剑。
本帖最后由 1011773783 于 2018-2-23 19:03 编辑进入论坛好久啦。一直没认真学习,这段时间好好把书和视频看啦一遍,有句话说得好,实践是检验真理的唯一标准,以前看书都是看 看明白啦也以为会啦,但是当实践的时候才认知到很多错误。
再次编辑完整版版
正文 因为没壳,直接丢OD,单纯的用单步跟踪进行破解。
1: crtl+g来到00401000处大致看下字符串,在软件上登入,出现“账号未找到”错误发现搜索无字符串,按F12使用堆栈调用法来到 (在图片上方有个K点击即可打开堆栈窗口) 错误call处,在0019EF6C地址上显示调用来到CALL的地址,在给这个CALL下F2断点。(已修改)
(说明,00401000是PE文件头的基质处,可从最后一张图看出,PE文件有exe ,dll,sys 目前只见过前两种,大部分exe都是00401000 dll是10001000,在PE文件头搜索是因为程序自顶向下运行,可搜索更多关键字符串。
利用堆栈调用法可以查看调用这个对话框的地址,由于window消息传递的原因会从内向外传递,如图5所示。我们利用F12是在内部函数中 这时我们可以通过在CALL下断点方式查看是谁调用这个函数。)
2:按F9运行程序后,继续登入软件,断在了刚地址处,右下方堆栈出现调用数据以及反回处,在此返回到调用CALL的地方。 也可以继续运行到retn返回到调用call下方。我们可以查看上方有哪些跳转可以跳过这个CALL 发现在004023A9地方可以跳过 这时我们改为JMP保存修改后继续载入单步跟踪。(已修改)
3:重新加载刚保存的文件进行登入,会发现直接就错误被终止程序,我们继续按上方的K 查看是哪个地址调用,来到这个地址为0019F030的内部调用处右键显示调用,继续分析是谁调用这个CALL,我们发现有三个地址调用这个CALL,不管,我的想法是可以直接在这个CALL上用retn方法返回出去。但是保存不了所以继续第二种思路。我在地址为0019F03C处右键显示调用 在这个CALL上下断(就是在K堆栈图中刚0019F030的下方那个地方),发现程序运行后能成功在这个地址断下 再继续F8后就退出进程啦,所以这个CALL就是软件自身退出CALL。我们可以查找上下方是否有跳转能跳过这个退出CALL。 我们可以发现在这个退出CALL的下面004025D4处可以有跳转可以跳过上面这个退出CALL,我们翻上去看看 发现 是JMP 无跳转跳过 ,但是为什么没有跳呢? 这时候我们可以在这个函数头 一直往上翻来到这个push ebp地址 (可以从上面retn看出 下面这个肯定就是一个函数的头部即段首),004020E9在这个位置下断后 我们可以F8 慢慢往下走 看为什么刚没有走到JMP处跳过退出CALL。(已修改)跑啦一遍发现这处错误CALL是两个地址跳转到此,我们再去第二个地址004024D0,因为是je跳转我们可以直接改为jmp跳转即可跳过退出CALL。
4:错误CALL和退出CALL过啦以后保存,继续运行登入出现,继续在0019EF20处显示调用来带内部CALL地方我们向下运行到retn,来到0042c611CALL处,在继续往下走就可以走回到原程序,我们在来到这个函数的段首下断并且在这个push ebp上查看调用地址来到00402ED2,在这个函数上方继续来到段首位置发现还是经过其他函数跳转 我们继续显示调用来到00402931处下断发现上方有个jnz 跳会跳到这个验证call,大家是不是想nop掉跳转然后就能不用验证啦?实践证明不行。我们必须在这个CALL里面验证因为这个CALL包含功能释放的函数。我们可以改也可以不改随意我选择我当时是两个跳转都nop啦不知道怎么想的,进入刚这个CALL来到断首位置我们需要记得00402ED2这个地址是错误call地址 注释下,。在00402DFC段首处,按enter 进入CALL内得知 第一个CALL是一个jmp跳转到静态编译的CALL,第二个CALL是扣点CALL 我们必须进入修改关键跳转。在00402FB3处有个jnz跳转可以跳到扣点成功地方我们在这个跳转上修改为jmp跳。然后保存修改。
5:继续重新运行,登入后发现advapi验证失败,继续F12来到堆栈处 这个地址 地址=0019EFA4上显示调用,下断后F9 然后确定,先跑出CALL(和上面差不多方法我就不贴图啦),跑出这个call来到下图位置,既然是个调用我们直接找到段首retn即可。在次我们需要明白这个函数的返回是如何反悔的,我们发现是retn 0x4 ,我们在段首改为retn 0x4.然后继续保存运行。发现终于成功,因为我们跳过啦这个验证身份的call 。 上面4的CALL我为什么不用此方法呢? 因为关键功能CALL在那个函数里面,而那个函数里面又包含啦下面这个身份验证CALL。我们只要把身份验证的弄掉就行啦。再次附破解图。(已修改)
好累啊,不过经过再次破解 发现思路更清晰啦,也谢谢52这个论坛
写这篇文章也没什么干货,只是想告诉自己成功破解软件,给自己信心,总的思路就是 堆栈调用方法(很多字符串被加密啦+自己跑程序),在错误CALL地方下断继续跑,在验证CALL处直接跳过验证让程序继续向下执行,简单的说就是爆破吧。。接下来继续学习脱各种壳。。。
下面放上原程序和破解程序。功能如图所示可以用。
由于不能上传大文件所以只上传破解的内容。就是个dll和ini文件 dll
http://www.virscan.org/在这个网站查毒发现dll文件解压出来90M 。。所以无法啦。
第一次发主题破解贴。如果有什么违规请告知 速解决。
百度网盘链接已放上,内含原程序以及破解程序和释放的功能DLL,由于破解时的准备工作不足。大家可以用备份的方式查看原程序和破解程序的关键CALL处。做的不好在此说声抱歉。https://pan.baidu.com/s/1ht7gPRu
shuai13145 发表于 2018-2-21 00:40
怎么用啊 楼主
版本是在那个网盘下载的 多功能版本 我复制下说明黄金会员:黄金会员升级 在登录器上点击 黄金会员购买 自动弹出链接
-------------------------------------------------------------------------------
登陆辅助:TGP 登陆 DNF 到游戏仓库中 加载辅助 Home 呼出辅助 有提示
-------------------------------------------------------------------------------
特殊功能:锁定耐久 自动评分自动捡物自动无敌跟随怪物 自动换角色
-------------------------------------------------------------------------------
卸载辅助:在登录器上有清理辅助按钮,使用哪个版本,用哪个登录器清理即可
-------------------------------------------------------------------------------
按键功能: C盘配置设置代码
~ 键 - 无形秒杀
F1键 - 技能全屏[开/关]三种种模式,配置选择
注意:F1 图内开启 不然会掉线-F1 图内开启 不然会掉线-F1 图内开启 不然会掉线
F2键 - 无敌评分[开/关]
F3键 - 一键变怪[开/关]自动方式= 1自动刷图 2自动深渊 3自动剧情
F4键 - 处理装备[开/关]
F6键 - 一键主线[开/关]
F7键 - 一键每日[挑/战]
F8键 - 自动刷图[开/关]搬砖 、升级 、剧情 、深渊
Ait 键 - 上下左右[顺/图] Hmily 发表于 2018-2-22 16:52
@1011773783 你附件里不是一个dll吗?基地址为什么会是401000了?正文写的太乱了,看不出所以然。
H大 因为无法上传EXE原程序(附件超过1M),只能把破解出来的文件放出来. 我指的是那个EXE程序的地址。主要都是单步跟踪,没有把所有重要CALL用文本记录下来所以有点乱啦。下次会注意的。 无论如何支持一波线 顶一下支持! 是在401000吧,不是40100 这游戏玩的人多吗? 支持支持 热心回复,感谢分享 等我看完了再说,好长 我要做大神 发表于 2018-2-20 19:02
是在401000吧,不是40100
...对 00401000基地址处。。 打错啦。 linuxprobe 发表于 2018-2-20 19:09
这游戏玩的人多吗?
应该还多,毕竟可以搬砖赚钱。 30个角色1天可以入账100块不过没稳定的辅助。都只能破解别人的。慢慢学编程吧。这样逆向更容易