本帖最后由 CrazyNut 于 2018-5-25 13:49 编辑
前言:
这次辅助的爆破遇到了很多没有遇到过的问题,在大佬耐心指导一下午后才解决了{:301_999:}
做一下笔记,感谢耐心指导的大佬们!!
爆破网络验证:
这次网络验证爆破这里就缩略的说下过程 = = 因为重点是后面
查壳 - 没壳 = = 嘿嘿 似乎又是一个软柿子等我捏 ==
直接载入OD跑起来,然后查字符串,结果是什么都没查到 = =
那就打开E-dbg直接查登陆事件好了
看到了登陆按钮的事件地址是 00401559
回到OD ctrl+g 跳转到 00401159
段首下断,点一下登陆,被断在段首,然后F8单步找关键跳
找到这三个判断的关键跳,直接NOP掉
做好笔记,跑起来看看,
哈哈?成了?
因为提示了先运行游戏以后,辅助自己退出了,我准备重载一下,进去修改并保存
结果是
奇怪 怎么就不能定位了,找不到了 = =
我只好重新拖进去再运行,运行起来后,按OD上面的E居然发现
#黑人问号脸 ?? 这路径怎么飞到这种奇怪的地方去了,我明明放在桌面的??
我当然是去打开这个路径看看
发现是个这个东西 0.0 本来还没想到怎么回事= =大佬叫我查壳下,
果然是个exe,改后缀
OK 看来是他把主体释放到了这里运行,就是说刚刚重载怎么就找不到了
然后发现他是每次运行,就会随机生成一个数字的文件夹,
并且把辅助释放在里面!说明我之前 登陆验证 那里的修改是没问题的
那我就直接把他改了后缀的东西拿出来用
然后蛋痛的事情又来了
我直接用他改了后缀的东西,发现会
删除自己,并且同样的释放一个文件到随机数字文件夹并运行
所以我在OD里面做了修改,右键保存的时候是
不能保存,开始我还不知道怎么回事
然后我尝试打补丁的时候,根本补丁根本检测不到辅助运行了
现在我才有点明白辅助是怎么运行的
分析一下辅助的运行流程
运行辅助A→创建随机文件夹→再释放一个辅助B到随机文件夹并运行→删除辅助A
带来的影响
1.这一些列的操作,导致我无法打补丁
2.虽然我知道登陆验证应该NOP掉哪些跳转了,可以在辅助没运行起来之前,直接过去修改然后保存
但是蛋痛的是,每次运行,辅助就会把自己删了,下次登陆要复制一个进去,很蛋痛。
要做的事
当然就是想办法去把删除自己的地方干掉!
现在开始干删除自己地方,这次学习的重点了0.0
首先载入OD,不运行,自动暂停在入口。
既然有删除文件的操作,我就准备下删除文件的API断点
结果是什么都没断下来,我就奇怪了,只有单步慢慢的看 了
之前不知道怎么没断下来!这后面试了下可以断下来的= =
【记住这张图B后面有用】
可以看到是从call 004013c7调用的 【正解】
弯路演示:
重新载入OD后, 单步F8慢慢的走!! 当运行到一个CALL发现 辅助被删除 的时候,
就重新复制一个进去,重新载入,运行到刚刚辅助被删除的CALL F7 单步步入进入到 里面CALL 继续单步F8 !!
一直重复 【至少我是这样的,大佬如果有更好方法一定要给我说QAQ】
这样做是为了找到最后真正删除自己文件的那个CALL
重复的过程就不截图了
慢慢的看我找到了 一个call 里面包含了下面的这个流程
创建随机文件夹→再释放一个辅助B到随机文件夹并运行→删除辅助A
最后找到删除辅助一系列操作的call 004013c7在下图
【记住这张图A后面有用】
继续看
这个地方,大佬告诉我是调用的dll里面的动态API,
MoveFileA,也就是删除文件的API存在了API里面;
继续单步,最后终于看到了删除,的地方!!
【记住这张图B后面有用】
弯路演示完毕
我们回到图A的Call 004013c7 过去retn掉就可以!
我们ctrl +b 找00 00 00 00 多少个0都可以,找一段空代码
随便找一个地址写个 retn 0x8 call地址改到你修改的地方 !!
重要 !!!!
我直接写一个retn,软件运行起来会提示堆栈错误!!
这样
为什么是 retn 0x8 【今天大佬给我讲了好久这个】
两种方法判断
1.看图A
这个CALL上面有两个PUSH两说明他有两个参数
会压进两个Dword到堆栈 , 两个Dword = 8Bytes
所以应该是 retn 0x8
1.看图B
这是最后删除文件的命令,看到最后的retn 0x8没
所以call的段尾是什么,你要retn掉call,后面的参数就必须一致
重要!!
有人可能要问,何必找一个空地址来retn?
直接进到call里面retn不就好了
这个地方是易语言的调用API的共用函数,与vb类似,基本上所有的api调用都要用那个函数实现。所以那里无法段首ret
因为有很多地方都会调用,如上面说的,如果你retn的参数不一致,就会堆栈错误,
所以我们不能修改这个call里面!!!
接着说修改
随便找一个地址写个 retn 0x8
比如我改的是004a4863 倒回去改图A的call
这里就算改好删除自己的地方了!!!!
然后我们运行起来,没报错,而且自身也没被删掉
按照文章开始的地方,修改掉网络验证的关键跳!!!
右键保存!!因为辅助没被删掉,所以可以保存了 !!
完工!!
原版和破解版都在里面:链接: https://share.weiyun.com/5t2WyBU (密码:saOk)
再次感谢耐心指导我的大佬们
如果帖子有帮助到你,希望给个免费评分多多支持下!!谢谢各位!!
|