jmp *(eax)
コード内の間接的な命令をmov *(eax),ebx; jmp *ebx
x86 実行可能ファイルに置き換えたい。
jmp *(eax)
これを実装する前に、LLVM コンパイラを作成し、いくつかの print ステートメントを追加して、命令を検出するたびに出力をログに記録したいと考えています。
次に、間接シーケンスの置き換えに移りたいと思います。
Google 検索と記事から見たものから、llvm バックエンドの x86asmprinter を変更することでおそらくこれを達成できます。しかし、どうすればいいのかわかりません。助けや読書をいただければ幸いです。
注: 私の実際の要件は、間接的なジャンプとポップを扱いますが、これ以上何かに飛び込む前に、バックエンドをもう少し理解するためにこれから始めたいと思います。