一次脱壳之旅
当如讲个故事吧!! 好几个,好几个月前,论坛里搞到一个样本,本来那会就想下来搞搞,结果一查壳VMP 热血凉了一半······不知道怎么就和它杠上了(同时下了有其它样本)那会开始怼这个壳,论坛里找了许多有用的没用的帖子学习,对照一路搞下来,刚到OEP,到OEP发现IAT修复这个东西很难搞。。。。找了很多脚本修复IAT去修复输入表都无功而反
那会还打算自己刚一个脚本出来,从看别人的修复脚本作注释开始,对照语法慢慢搞,,,,然后就因为有事打断,就建了一个快照放那了。
在然后在论坛看到ximo大佬的Zeus 插件,(奇怪为什么当时查资料的时候没有搜到) 就又想把这个搞完,打算有时间刚出来,刚好又在自己网盘找到了不知道什么时候收藏的VMP吃灰视频
https://www.52pojie.cn/thread-467703-1-1.html (这个老哥的帖子很有用)还有一个脱SE老哥帖子也学到了很多,但是书签丢了·
查壳信息
根据PE段来看是 vmp1.6x -1.8版之间
上来,根据版本的原因,直接断点VirtualProtect 就没错,这是VMP虚拟化的重要函数
断下这个函数后,程序会多次断在这里,我们需要的是最后一次断在这里的时候,可以根据堆栈窗口NewProtect 的标志位确定
这个时候取消掉这个断点,程序要调用真的OEP进行运行,所以我在.text下内存访问断点
断下来后发现地址并不在 .text段内,对照后发现断在资源段
显然这不是我们要到的text段内,继续下text段的话,发现还是在断在资源段内,所以要想办法跳出这个资源段,所以我在内存断点停下处用了esp 大法,
停下来后发现还是处于资源段,这会就有点怀疑自己判断了·但还是取消硬件断点后,继续下text段内存访问断点
最终到达OEP,当然这个OEP可能有其它简单的方法获得,ximo大佬的插件一跑就出来了,ope查找软件也能找出来,但我还是喜欢用我拙劣的方法。
这会dump出来修复的IAT是VMP虚假的IAT,所以必要有一个过程去找到VMP隐藏的API地址进行替换修复IAT的过程,开头的地址的老哥的帖子很详细解释了这个关系,当时就卡在这
当再回头发现了ximo大佬的插件有多牛逼,以及看完视频后····我写脚本的心就抛到十万八千里了,写nm的脚本呢,懒才是真理!
就说说我看视频学的方法修复吧,ximo大佬的虽然搞出来了,但是还有些看不懂的地方·····
直接用上UIF,UIF可以直接代替脚本功能,一切都在图中了··
重构后,接下来就是正常的操作了·获取新的输入表后,直接转储到到达OEP时dump下来的文件
最终~
好了故事讲完,或许方法不适合你,但是那谁谁谁说的:这世界本没有路,路都是人走出来的。我可能用了很拙劣的方法到了终点,也或许有其它隐患,但我最终到达了以我自己的方法
回想,走歧路这个过程我是享受的。意识到错误,查找解决错误的方法,如何不去面对要面对的难点
我好像在灌水······我是不是违规了啊····{:301_971:},就是想留个贴,勉励一下,违规再说吧{:301_998:}
放一波VMP的资料吧
链接: https://pan.baidu.com/s/1nJ1yg87CEs_p5VQFJUivtA 提取码: 9m68 复制这段内容后打开百度网盘手机App,操作更方便哦 (感觉子资料有点子那个,仁者见仁吧)
链接: https://pan.baidu.com/s/1MoV4dLtbBv-ttF6VT0tuLQ 提取码: 9a9j 复制这段内容后打开百度网盘手机App,操作更方便哦
vpre2zf2r7m 发表于 2019-12-6 09:35
想问问楼主,那两个vmp资料的链接是同一份资料吗?第二份失效了
链接: https://pan.baidu.com/s/1c0DH0CCzbIponqIM3LCgMw 提取码: vy1g
不是 大佬、大佬~ 大佬牛逼。。我等膜拜 这一定是个大佬没错了 虽然我看不懂,但还是要点赞。学习就是一种享受,厌恶,再享受的过程。 学习了学习了。window上脱壳还没试过 感谢楼主 虽然我看不懂,但还是要点赞。学习就是一种享受,厌恶,再享受的过程 nb厉害啊