gpt4 book ai didi

c++ - 将操作码添加到现有二进制文件需要什么?

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:15 25 4
gpt4 key购买 nike

我正在尝试在我编写的一个简单的 hello world 可执行文件中的 .text 部分的最开头添加一条 NOP 指令,我知道这不仅仅是那么简单,所以我正在使用反汇编库为了相应地修补所有地址(例如,如果我在二进制文件中插入 1 个字节的操作码,则该指令之后的所有地址都将向前推送 1 个字节,因此我修补对该地址的所有调用以使用新地址)。

我还在更新 PE header 的 OptionalHeader 中的 AddressOfEntryPoint 字段,以便入口点正确,但我仍然无法正常工作。

所以我的问题基本上是,在最开始添加 1 个 nop 指令后,我需要在可执行文件中“修复”什么(我检查过插入它不会破坏任何指令)。 PE header 中是否有更多字段需要修复?或者我在这里错过了什么? :S

最佳答案

你很可能必须 relocate您的二进制可执行文件(在一般情况下可能无法执行,例如 stripped binaries )。深入 Levine 的 Linkers and loaders书。

如果您可以重新编译该可执行文件,请考虑添加一些 plugin它的能力(并使用 dynamic linking )。

关于c++ - 将操作码添加到现有二进制文件需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com