バイナリ コードの一部の整合性をチェックする関数を作成しました。
関数は llvm パスで追加されます。
開始アドレスと終了アドレスに加えてチェック値が必要です。
チェック値は、バイナリ コードの計算結果です。
悲しいことに、IR パスは llvm の中間部分にあり、この部分はバイナリではなく IR で機能します。
バイナリコードとアドレスはまだわかりません。
今のところ、パスでできることはすべて作成し、pyelftoolを使用してバイナリ ファイルにアクセスし、狂ったように 16 進値を変更します ;-)
私の最初の質問は、このアドレスを事前に知ることは可能です.
ブロックアドレスが表示されますが、もっと柔軟なもの (命令のアドレス) が必要です。
私の 2 番目の質問: 誰かがチェック値を変更するためのより良いアイデアを持っています。私のソリューションはあまりエレガントではなく、プラットフォームに依存しています -.-
理解できたと思います。
ありがとう、