【软件逆向-PE dump 后实现反编译的通用方法】此文章归类为:软件逆向。
恶意代码分析中,经常会出现在内存中释放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 。
所有涉及的字段,在下图中用红框标记。




更多【软件逆向-PE dump 后实现反编译的通用方法】相关视频教程:www.yxfzedu.com