gpt4 book ai didi

c++ - 加载前修改汇编指令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:44 25 4
gpt4 key购买 nike

我有一个 DLL 需要加载(我已经编写并编译了它),我想在将 DLL 加载到内存之前在汇编代码的现有指令之间插入指令。当然,您不能只读取每个字节并将它们插入其中,因为指令有时是多个字节。

我正在考虑使用 Udis86 之类的东西,一条一条地读取指令,然后将它们写入内存,然后在它们之间编写我的其他指令。这是一个好方法还是有更好的方法?

最佳答案

转移指令不是一个好主意。许多 x86 指令都取决于它们的位置,所以如果你移动它们,你可能会破坏很多东西。
您可以做的是在需要修补的地方复制指令;将 jmp 修补到某个空闲区域,然后在该空闲区域放置复制的指令、您的额外代码,最后将 jmp 返回到原始代码。不简单但可行。检查thisthis用于可能的实现。
也就是说,为什么您可以直接修改源代码而需要修改二进制文件?您应该问实际问题,而不是“如何做 X [因为我决定我需要 X 来解决我的问题]”。

关于c++ - 加载前修改汇编指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316147/

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