2011-12-14 13 views
0

システムコールの仮想アドレスがある場合、そのシステムコールを逆アセンブルできますか?私は実行中に特定のシステムコールによってすべてのアドレスが処理されることを見つけるためにカーネルを実行しています。システムコールを逆アセンブルする方法

私は32ビット2.6.38カーネル(x86)を実行しています。

+0

を使用することもkernel.org

を参照してくださいにLinuxカーネルのコードを取得することができ私はまだあなたが意味するものを理解できません。システムコールの「アドレス」とは何ですか? –

+0

@DavidSchwartz逆アセンブルされた命令を見て、ルートキットがシステムに影響を与えたかどうかを知るには – user567879

+0

どのCPU? "32 bit"は情報が不足しています –

答えて

0

私はあなたが疑問に思うかどうかは分かりません。

本質system callskernelsoperating systemslinux、及びlinux kernel

の詳細を読んでください、システムコールは、(アプリケーションの観点から)1つのマシン命令(int 0x80syscallによって実現アトミック操作です、 (例えば、システム呼び出し引数をレジスタにロードする)やその後(例えば、errnoを設定する)、いくつかのブックキーピング命令を使用して実行されます。それが起こると、制御はカーネルに入ります(別の種類のアドレス空間と異なるprotection ring)。ここにはlist of linux syscalls

実際のコードはカーネル内にあります。あなたは、私がこれを数回読んだLinux Assembly Howtoasm.sourceforge.net

、特定のアプリケーションまたはプロセスがやっていると呼ぶもののシステムを理解しstrace

+0

ご不明な点がありましたら申し訳ありません。実行中のカーネルの特定のシステムコールを解読して、ルートキット攻撃の有無を調べることができます。 – user567879

+0

私があなたに説明したように、その質問はまったく意味がありません。システムコールのマシンコードは本質的に1つのマシン命令( ''システムコール '')であり、それを "逆アセンブル"することはできません。私があなたに与えたすべてのリンクを読む時間を取ってください。 –

+0

GDBはgdb /boot/vmlinux-2.4.*/proc/kcoreによってこれを行うことができると私は理解しました。しかし、私のDebianでは、vmlinuxではなくvmlinuzしか持っていません。他の方法はありますか?このリンクは説明を提供しますhttp://www.symantec.com/connect/articles/detecting-rootkits-and-kernel-level-compromises-linux – user567879