7

ロード可能なカーネル モジュールが insmod によって再配置されるカーネル アドレス空間を見つけようとしています。

モジュールの insmod 中に -m, -O スイッチを使用すると、モジュールの観点からはシンボル テーブルと実行可能ファイルのセクションのアドレスのみが表示され、再配置されたアドレスは表示されないことがわかりました。 insmodを実行すると、再配置のプロセスが実行されます。

カーネルメモリ内のモジュールの再配置されたアドレス、つまりロードされたモジュールが存在するカーネル内にバインドされたアドレスを見つける方法を誰か教えてもらえますか?

ありがとう!

PS 私が使用している Redhat 2.4 Linux カーネルでは、/proc/modules リストにロードされたモジュールの仮想アドレスが表示されないことに注意してください。

4

2 に答える 2

12

ディレクトリに移動/sys/module/<module-name>/sections/.text- コードがロードされている場所 /sys/module/<module-name>/sections/.dataが表示され、データ セクションが表示され、モジュールの bss セクションの .bss が表示されます。

于 2013-04-06T17:50:37.623 に答える
9

/proc/modules ファイルから、コア セクション ポインタ (物理メモリ アドレスではなく仮想アドレスですが、物理アドレスに変換できます) とモジュールのフットプリント サイズを取得できます。

私のLinuxボックスのファイルの一部など:

autofs4 29253 3 - Live 0xf9014000
hidp 23105 2 - Live 0xf900d000
rfcomm 42457 0 - Live 0xf8f84000
于 2013-03-21T03:16:32.800 に答える