私はコマンドで実行されたすべてのシステムコール(例えば/ bin/ls)をリストするプログラムを書いています。私は、ファイルを開く場合:今、私は何をしようとしていることは、それは
ptraceを使ったシステムコールのトレース
例に渡されるすべてのシステムコールの引数、環境変数、コマンドライン引数を見つけることです。システムコールsys_accessはファイルを正しく開きますか?しかし、どのようにこれらの価値を得るために?
open、read、write、closeのようなシステムコールに対してこれをしたい。
私の研究によれば、これらはレジスタになければなりません(ebx - edx)もしそうなら、これらのレジスタ値は何を意味していますか? 私はこれを持っていますlink。
しかし、私は本当にそこから多くを得ることができませんでした。これについてのこれ以上の参考文献は多くの役に立ちます。
これは役立ちますか?http://lxr.free-electrons.com/source/include/linux/syscalls.h – dbrank0
@ dbrank0:ありがとうございます。本当に助けになるのです。しかしもう一つ質問があります。 EBX:004c48de ECX:00000000 EDX:004c8ff4 /アクセス RETURN 33:この中 値は六角にあるFFFFFFFE私の以前のプログラムの 出力はこの 'code'SYSCALL 33のようなものです。それで私はどのようにそれを理解していますか?私はnoobプログラマーです。私の知らないうちに申し訳ありません –
ファイル名は0x4c48deに保存されています。モードは0です(モードフラグが定義されている参照)。edxは関連しておらず、何も定義されておらず、戻り値は-2です(読み込み専用ファイルシステムについて不平を言います)。 – dbrank0