VMSweeper分析.PDFVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VMSweeper分析

作者 : aa1ss2 VMSweeper 分析 一. 基本使用 一. 最近,有一位牛人发布了一个比较有意思的插件,我们一起看一下其中一些好玩的东西。既然有大牛放血,那我就顺便给没有追踪 过 VM 的同学扫扫盲。(本文对应插件更新至VMSweeper1.4 beta 8 ) 由于我并没有源码,很多东西都是靠猜了,如果有什么地方说的不对,请各位多多指教。 这个插件的下载地址是 /showthread.php?t=13084 这个插件有些东西还没有完善, 因此经常会出错,我运行了几个程序,都没有一个能正常运行完的,不过这并不阻碍我们了解程序的 大体思想。在看这篇无聊的文章之前首先你要明白 VMProtect 的基本架构,因为追踪和还原VM 有一部分是和 VM 的架构相关的。 安装后打开一个 VMP 加密的程序,然后点击 VMSweeper 首先要选 Analyze all VM references 接着填写相关的参数,这里的 Code start 和 Code end 指定代码段的起始和结束 VM start 和 VM end 指定 vm 段的起始和结束,还有一个要注意的是要把区段名改为 VM 。 为什么要填这些参数呢,我在《VMProtect 逆向分析》里讲过了,因为入口的指令特征被抹除掉了,目前比较好的识别入口算法 就是查找 Code 段的所有 JMP 指令,然后检查是否 JMP 到 VM 段内,再做一些特征的校验(陷阱校验) 。 还有一个就是判断 VM 内部数据和退出VM 的识别,这些都需要VM 段的界限。 填写好了之后,会列出 VM 的入口 新版的 VMSweeper 已经自动获取段界限,不用手动输入了。 1 作者 : aa1ss2 接着就可以 Decode VM 了,这时看到在VM 的入口下了一个断点,当断点命中的时候按 F1 进行分析。 进行分析后弹出一个框后要求重新打开程序,这里正常的话应该是重启,然后进行 patch 。 二. 初始化状态 二. 重新打开程序,我们来看一下刚刚 VMSweeper 做了些什么。 打开 OD 的目录,你会发现多了一个以程序名称命名的目录,打开它,会看到一些文件。 2 作者 : aa1ss2 这些文件都是干什么的呢,我们一个一个来看。 Regs_xxxxxxx Stack_xxxxxxx 很明显,文件名已经提示是寄存器和堆栈了,那么到底是什么寄存器和堆栈呢,我没有插件的源代码,就只能猜了,如果没有猜错的话 这个应该是保存插件内部虚拟机的状态。 Regs_00405D1E.map: eax: eax (ecx ecx) ecx: (ecx ecx) - 1 edx: edx ebx: 0x00407C27 esp: 0x0012FEE4 ebp: 0x0012FFA4 esi: [0x0012FFA4] + 0x00407C27 edi: 0x0012FEE4 efl: efl 首先看地址 00405D1E 3 作者 : aa1ss2 这里记录的主要有用的是 ESI(VMP 目前版本的EIP) 的初始化值。 这里记录 EAX 和 ECX 不知道是不是作者搞错了其它的 VM ,VMP 在入口 EAX 和 ECX 并没有什么用,这里还有一个比较有 用的是 EBX 的校验算法,不过这里并没有记录。这里应该追踪的是ADD ESI,DWORD PTR SS:[EBP]指令。 接下来看 Stack_00405D1E.map: ……… 0012FF94: empty 0012FF

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档