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");
Спасибо, Дрю!