一次脱壳之旅

当如讲个故事吧!!     好几个,好几个月前,论坛里搞到一个样本,本来那会就想下来搞搞,结果一查壳  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下来的文件

最终~

好了故事讲完,或许方法不适合你,但是那谁谁谁说的:这世界本没有路,路都是人走出来的。  我可能用了很拙劣的方法到了终点,也或许有其它隐患,但我最终到达了以我自己的方法
回想,走歧路这个过程我是享受的。意识到错误,查找解决错误的方法,如何不去面对要面对的难点

我好像在灌水······我是不是违规了啊····,就是想留个贴,勉励一下,违规再说吧

放一波VMP的资料吧
链接: https://pan.baidu.com/s/1nJ1yg87CEs_p5VQFJUivtA 提取码: 9m68 复制这段内容后打开百度网盘手机App,操作更方便哦   (感觉子资料有点子那个,仁者见仁吧)
链接: https://pan.baidu.com/s/1MoV4dLtbBv-ttF6VT0tuLQ 提取码: 9a9j 复制这段内容后打开百度网盘手机App,操作更方便哦   

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称