在使用 IDA 分析了一个 dll 文件后,我用另一个调用替换了一个调用。也就是说,替换CALL xxxx
为CALL ds:yyyy
. (ds:yyyy
已被其他位置引用)。我使用 IDA 修补二进制文件。
但问题是,在执行模块时,ds:yyyy
没有根据模块镜像库进行更新,因此地址无效。
我该如何处理这种情况?我也需要修补 reloc 部分吗?谢谢。
在使用 IDA 分析了一个 dll 文件后,我用另一个调用替换了一个调用。也就是说,替换CALL xxxx
为CALL ds:yyyy
. (ds:yyyy
已被其他位置引用)。我使用 IDA 修补二进制文件。
但问题是,在执行模块时,ds:yyyy
没有根据模块镜像库进行更新,因此地址无效。
我该如何处理这种情况?我也需要修补 reloc 部分吗?谢谢。
自己回答吧。它实际上是一个可移植的可执行文件。每次我通过重定位表启动它时,硬编码的地址都会更新。
我通过工具修改了表格,它运行良好。