麦洛克菲逆向病毒分析课程.pptVIP

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

单步逆向分析 – 病毒body code 830000 – CreateMapping地址,copy 自身解密代码到另一块内存 单步逆向分析 – 病毒body code 创建病毒线程, 这是我们单步跟踪的一个原因,当然当分析熟 悉后,可直接下断点 Bp CreateThread位置 通过简单分析,可知创建线程后sleep等待,线程中完成 更多的具体工作。 单步逆向分析 – 病毒body code 发现了stolencode ,原来的入口点代码被修复。 如何能知道是原来的入口点代码呢? 一般是靠猜测,更多是多熟悉更重编译器入口代码的特点。 单步逆向分析 – 病毒body code 在病毒最后一个节里面寻找PE文件,然后完成自己加载的 PE文件,执行的功能。 单步逆向分析 – 病毒body code 替换宿主程序的导入表 单步逆向分析 8病毒修改了GetProcAddress 在IAT中的地址,所以这 时候我们可以下断点 单步逆向分析 自己展开PE文件的方式: 1 copy PE header 2 copy sections 3 fix import address table 4 jmp eop 单步逆向分析 9 解析绑定的PE结构,ImageBase ,NumberofSections, SizeOfImage + 0x100 10 VirtualAlloc 一段可读写SizeofImage 内存 ,pMem 11 把绑定的PE文件0x1026f102 - copy 到新分配的内中 pMem。 单步逆向分析 12 在edi ---》 pMem+最后一个节点virtual address , Esi --》 最后一个节倒数0x200字节 执行copy 操作,循环执行完所有节点扩展 单步逆向分析 13 判断重定位表(0x1071180) 重定位表达定义: Struct Image_Base_Reloction { DWORD virtualAddress; DWORD SizeofBlock WORD TypeOffset; (高4bit是重定位类型,低12bit是虚拟机地址偏移) } 【最终重定位地址】 = virtualAddress + typeoffset 0x0fff; 重定位的类型: 0 ------ 无定义 3 ------ 对应的地址要修正 10----- x64下PE文件的地址要修改 修正:【 最终重定位地址】 = 当前地址数据 + 修正值 单步逆向分析 重定位信息 单步逆向分析 14 自己完成PEloader 功能,解析导入表,完成填充IAT的功能。 单步逆向分析 15.1 自己完成对IAT表填充工作: 对比捆绑的PE,与od的情况。 从ollydbg 中dump出捆绑的PE 单步逆向分析 15.2 填充完毕后运行 单步逆向分析 15.3 获得EOP 地址, 转向跳转到绑定展开的pe EOP 地址运行 。 那么病毒如何再次获得控制权呢? 思路我们的处理思路是否有问题,漏下来什么,如 何解决? 病毒为什么要这样做? 绑定一个PE文件 直接释放文件不就可以了吗 单步逆向分析 1 当我们已经熟悉的分析过了,再次分析可以直接在cdata (最后一个节)段下F2断点。 2 F9 运行到断点,下.text段F2断点,F9运行。此时就已经跳 过了混淆的代码区域。 3 后面的分析可以单步跟踪了。 分析总结 1 把真正的代码入口加密保存在自身的body中,使得修复变得 困难。 2 改写程序新入口。 3 通过大量junk code 干扰分析。 4 控制流程,采用分段式,先是EOP的修改,而后是API的 hook 。 5 病毒有感染部分 + 捆绑的PE组成,自行展开捆绑PE并运行. 分析总结 分析时有用断点: bp 0x0100200a – 多态解密头结束 bp 0x0101F000 – 第二次解密开始 Bp 0x0101f5be –二次解密出口关键跳 Bp 0x0101ff97 --二次解密出口 BP 0X010207d4 – 创建的线程工作函数 Bp 0– 恢复抽掉的入口代码 Bp 0x01020e79 -- hook 宿主的导入表函数 Bp 01020B06 -- 修正重定位地址 Bp 01020bae -- 填充导入表 BP 0102Bda -- 填充导入表完成后,运行点,下断点,否则跑飞。 分析总结 如何更快的跳过解密的混淆头 如何dump出捆绑的PE 如何自己load PE展开在内存中 * 2012-03-10 麦洛克

文档评论(0)

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

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

1亿VIP精品文档

相关文档