恶意代码分析中,经常会出现在内存中释放PE文件的操作。内存中的PE文件,通常被称作展开后的文件,dump下来的内存文件通常是无法被直接反编译的,这篇文章将简述一个通用的dump技巧,使内存中dump下来的PE文件被正常反编译,方便你的静态分析。Virtual address、RAW address、Imagebase 、AddressOfEntryPoint。virtual address 字段中的值,代表PE文件在内存中的页长度;RAW address 字段中的值,这代表PE文件在磁盘中的页长度;Imagebase 字段中的值,代表PE文件中的偏移地址从哪里开始计算;AddressOfEntryPoint 字段中的值,代表进程从哪里进入执行代码。以一个恶意代码为例,进行演示。首先在动态调试过程中,获取到内存中的PE文件。如下图中:接下来将内存中的PE文件保存下来,此时还无法正常进行反编译,需要进行一些调整,将所有节区的virtual address 字段 的值复制粘贴给 Raw address 字段 。将 rax 寄存器中的值赋值给AddressOfEntryPoint 字段 。本示例修改使用的工具为 CFF Explore 。所有涉及的字段,在下图中用红框标记。
回复或点赞可查看完整内容
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-284958.htm