SymtabAPI不会改变二进制

时间:2011-05-15 22:49:24

标签: symbol-tables

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

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

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

我仔细阅读了手册,看看是否有某种 commit 函数,但没有记录,并且示例中没有提到任何类型。 编辑:我刚刚阅读了Region类的一些源代码,看起来我基本上正在执行patchData所做的事情(如果是方法的话)我应该用。)

建议?

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

P.S。希望更有信誉的用户可以为我添加标记DyninstAPISymtabAPI

1 个答案:

答案 0 :(得分:1)

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

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

谢谢德鲁!