【发布时间】:2016-04-12 01:13:32
【问题描述】:
我刚刚成功地将一个部分和一些代码添加到 Windows 10 中的 pe 文件(在本例中为我的 proxy.exe)。我还将入口点更改为新部分的开头。当我运行修补的 .exe 时,我的存根被调用,我听到高频哔声(我先用哔声测试),到目前为止一切都很好。
但现在我想回到 OEP。但是如何计算我的 oep 在内存中的地址? 我想到了这个问题,我想出了一个?解决方案?:
计算除我新添加的部分之外的所有部分的 Rsize,然后我得到我的存根在内存中的地址(增量偏移量)并从中减去总部分大小。现在我应该在内存中 .text 部分的开头。之后,我添加了 oep 的偏移量,仅此而已。
这种方法行得通还是我犯了错误?还有其他可能更简单的方法吗?那么dll呢,整个过程有区别吗?
http://i.imgur.com/tpUH8x4.png
提前非常感谢! ;)
【问题讨论】:
-
什么操作系统?我的理解是可执行文件的位置取决于操作系统(如果有的话)。
-
哦,我忘了说抱歉 - Windows 10。*已编辑帖子
标签: c++ header stub portable-executable entry-point