5

ioctl syscalls を介してカーネル ドライバーと対話するユーザー モード共有オブジェクトをリバース エンジニアリングしようとしています。カーネル ドライバーの ioctl インターフェイスの定義を含むヘッダー ファイルがあります (つまり、ioctl コマンド番号の #defines と、ioctl に送信されるさまざまなデータの構造体定義)。

strace には、システム コールに渡されるユーザー ポインターを逆参照する機能があることがわかりますが、ioctl に渡されるカスタム構造体を逆参照することはできません。ポインタアドレスだけでなく、意味のあるデータが ioctl に渡されるように、自分の定義を strace に追加する簡単な方法はありますか?

strace のソースがあり、正常にコンパイル/インストールしましたが、独自のヘッダーをインクルードしようとしても効果がありませんでした。

4

2 に答える 2

2

これを実現する最も簡単な方法は、のライブラリインターポーザを作成することですioctl()。Linuxでこれを行うための優れたガイドがここにあります。

アプリケーションが使用するカスタムコマンド番号を確認できます。これらの構造体をダンプします。

于 2009-09-05T11:51:53.260 に答える
2

strace ビルドは、構造を自動的にイントロスペクトし、それらのパーサーを生成しません。構造を処理するには、いくつかのコードを記述する必要があります。

于 2009-09-05T19:31:14.190 に答える