SymtabAPI не изменяет двоичность - PullRequest
1 голос
/ 16 мая 2011

Я использую DyninstAPI (а именно, компонент SymtabAPI) для перезаписи таблиц символов в двоичных файлах. Для этого я использую следующие методы:

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

Метод успешно возвращается, я проверяю свои коды ошибок и даже перечитываю раздел данных, который был успешно заменен. Проблема заключается в том, что исходный двоичный файл не переписывается с новым разделом .data, а исходный раздел .data сохраняется.

Я изучил руководство, чтобы увидеть, есть ли какая-то функция commit , но ни одна из них не задокументирована, и ничего подобного не упоминается в примерах. EDIT : Я только что прочитал некоторый исходный код для класса Region, и похоже, что я по сути делаю то, что делает patchData (в случае, если это метод, который я должен использовать) .

Предложения

Руководства по программированию доступны по адресу http://www.paradyn.org/html/manuals.html.

P.S. надеюсь, более уважаемый пользователь может добавить для меня теги DyninstAPI и SymtabAPI.

1 Ответ

1 голос
/ 16 мая 2011

После консультации с разработчиками, они предупредили меня, что функция, которую мне нужно было вызвать, была emit и синтаксис, который я в итоге использовал:

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

Спасибо, Дрю!

...