DUMP修复原理
根据上面的分析我们基本上得到了一个这样的思维。Dump程序要做的事分几个基本的步骤:
1.在系统中找到目标进程(枚举进程)
2.在进程中确定进程的大小imagesize
3.把进程中的数据保存到文件
4. 把相对虚拟地址(RVA)和文件地址对齐(RA)。
科普一下:在文件中要节约空间,把数据紧密的存储在一切,而靠节表在load到内存中的时候,把在文件中的不同数据分别映射到不空内存空间中,而不足的地方就用0填充。但是当我把这些数据从内存中完完整整的dump下来的时候,我们同样把这些0也dump了出来。所以我们要做的首先应该是调整节表,让他的RA=RVA。这样我们实际上做的就是把RA这个指针移动过了若干个0的空间,从而指向正确的数据。

从内存中直接拷贝DLL时也会这样修复,只不过是手动的。
- 修复IAT表。
IAT中每组数据指向一个API函数,各DLL之间是以000000分开的。
使用ImportREC可以修复IAT表。具体修复过程不再赘述。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!