DyninstAPI(つまり、SymtabAPIコンポーネント)を使用して、バイナリのシンボルテーブルを書き換えています。私はそうするために次の方法を使用しています:
data_region->setPtrToRawData((void*) new_raw, data_region->getRegionSize())
メソッドは正常に戻り、エラーコードを確認し、正常に置き換えられたデータセクションを再読み込みします。問題は、元のバイナリが新しいraw.data
セクションで書き換えられず、元のraw.data
セクションが保持されることです。
ある種のコミット関数があるかどうかを確認するためにマニュアルを精査しましたが、文書化されておらず、例にはそのようなものは何も記載されていません。 編集:私はクラスのソースコードのいくつかを読んだだけで、Region
基本的に何をしているように見えますpatchData
(それが私が使用すべきメソッドである場合)。
提案?
プログラミングマニュアルはhttp://www.paradyn.org/html/manuals.htmlで入手できます。
PSうまくいけば、より評判の良いユーザーがタグDyninstAPI
を追加でき、SymtabAPI
私にとっては。