1

我正在使用 DyninstAPI(即 SymtabAPI 组件)来重写二进制文件中的符号表。我正在使用以下方法来做到这一点:

data_region->setPtrToRawData((void*) new_raw, data_region->getRegionSize())

该方法成功返回,我检查了我的错误代码,甚至重新读取了已成功替换的数据部分。问题是原始二进制文件没有用新的原始.data部分重写,原始原始.data部分仍然存在。

我已经浏览了手册以查看是否有某种提交功能,但没有记录,示例中也没有提到任何类型的提交功能。 编辑:我刚刚通读了Region该类的一些源代码,看起来我基本上正在做patchData的事情(如果那是我应该使用的方法)。

建议?

编程手册可从http://www.paradyn.org/html/manuals.html获得。

PS 希望更有信誉的用户可以为我添加DyninstAPI标签SymtabAPI

4

1 回答 1

1

在与开发人员协商后,他们提醒我需要调用的函数是emit,我最终使用的语法是:

symtab_obj->emit("new_binary.out");

谢谢德鲁!

于 2011-05-16T02:08:36.647 回答