SymtabAPI не изменяет двоичность

Я использую 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 для меня.

1 ответ

Решение

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

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

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

Другие вопросы по тегам