我正在尝试编写一个分析Windows可执行文件的程序。我假设可执行文件中的部分直接映射到内存。我注意到几个程序中的奇怪行为。一个例子是crackme12.exe。当我检查调试器.rdata部分加载到内存中时,我可以看到,由于某种原因,在加载到可执行文件中不存在的内存中的部分的开头添加了96个字节。我花了2天时间尝试阅读Windows可执行文档,但我找不到解释为什么会发生这种情况。
答案 0 :(得分:1)
一种解释可能是程序本身已经在内存部分放了一个流,这并不罕见。你不会在Portable Executable Documentation中找到这种解释。某些(恶意软件)可执行文件也会替换或添加新部分。其他(混淆的)可执行文件会将现有的空文件部分扩展为非空的内存部分。