状況は次のとおりです。
ioctl()システムコールをフックするLD_PRELOADedモジュールを使用して、プログラムとドライバーの相互作用を分析しています。私が使用しているシステム(組み込みLinux 2.6.18カーネル)は、幸いにも「request」パラメーターにエンコードされたデータの長さを持っているので、適切な長さでioctlデータをうまくダンプできます。
ただし、このデータのかなりの部分に他の構造へのポインターがあり、これらの長さはわかりません(結局、これが私が調査しているものです)。そのため、データをスキャンしてポインターを探し、その位置にデータをダンプしています。ポインターがセグメント境界に近い場合、これによってコードがsegfaultsにさらされる可能性があるのではないかと心配しています(初期のテストでは、これが当てはまるようです)。
それで、逆参照を試みる前に、現在のプロセスが特定のオフセットを所有しているかどうかを先制的にチェックするために何ができるのか疑問に思いましたか?これも可能ですか?
編集:非常に重要な可能性があることについて言及するのを忘れたので、更新しました。ターゲットシステムはMIPSベースですが、x86マシンでモジュールもテストしています。