ptrace

    4

    2答えて

    別の監視プロセスの監視でマルチスレッドアプリケーションを実行することに興味があります。監視プロセスは、監視対象アプリケーション内のすべてのスレッドのCPUレジスタを取得および設定できる必要があります。私は単一のスレッドアプリケーションのためにこれを行う方法を知っています。しかし、私はマルチスレッドアプリケーションのためにこれをどのように拡張するかを知ることに興味があります。

    3

    2答えて

    私はCで書かれたプログラムを持っています。これはpopenを使って別のプログラムを開きます。私は、そのプログラムのピッド、またはそれのための何らかのハンドラを取得したいので、一定の制限時間の後にそれを強制終了するか、またはいくつかのRAMを超えて、そしてstdoutの制限を超えています。 PIDを必要とするptraceでこれを行う必要があると私は考えていますが、これはどのように取得するのか分かりま

    0

    1答えて

    私は、子プロセスから呼び出されるすべてのシステムコールをトレースし、その正確なメモリ使用量を決定するプログラムを作成しています。 ここは私の計画です。 父プロセスによってptraceさLETの子プロセス、 子プロセスがシステムコールを行う場合、父親のプロセスはSIGTRAPを受け取るだろう、 、その後のptrace(PTRACE_PEEKUSER、child_pid、4 *のORIG_EAX、NU

    3

    2答えて

    gdbのようにbacktraceのような出力を得たいです。しかし、私はこれを直接ptrace()経由でしたいと思います。私のプラットフォームはLinux、x86です。また、x86_64以降。 ここでは、シンボル名に変換せずに、スタックから返されたアドレスだけを読みたいと思っています。 ので、テストプログラムのために、gcc-4.5によって-O0モードでコンパイル: int g() { k

    2

    2答えて

    カーネル(この場合はLinux)から、プロセスコンテキスト(システムコール、ページフォールトなど)でPTRACE_SINGLESTEPを指定してptrace_requestを呼び出すとどうなりますか?ユーザ空間命令またはカーネル空間命令を単一ステップで実行するかどうか。私は、ptraceがユーザーの指示を一歩進めることができることを認識しています。なぜなら、これが生成する動作が不思議だからです。

    1

    1答えて

    私はコマンドで実行されたすべてのシステムコール(例えば/ bin/ls)をリストするプログラムを書いています。私は、ファイルを開く場合:今、私は何をしようとしていることは、それは 例に渡されるすべてのシステムコールの引数、環境変数、コマンドライン引数を見つけることです。システムコールsys_accessはファイルを正しく開きますか?しかし、どのようにこれらの価値を得るために? open、read、

    13

    1答えて

    私は他のプロセスのスレッドを観察するためにptraceを組み込んだlinuxアプリケーションに取り組んでいます。私が観察するアプリケーションが子プロセスをフォークするとき、これはすでにかなりうまく機能しています。すべての子どもIセットアップを追跡するために、親 から子プロセス SIGTRAPを形成 SIGSTOP:私のアプリケーションでのwaitpidを呼び出すことによって、私は観察したアプリケー

    1

    2答えて

    私はすでに次のように投稿しました。Questionは解決策を得て前進します 私はptraceを使用して、 。 プログラムはebx、ecx、edxの値を取得しています。 EBX:ECX bf9748af:00008000 EDX:00000000 /オープン SYSCALL 5:EBX:80485b3 ECX:00000242 EDX:000001b6 /オープン 今オープンシステムコールのために私

    2

    1答えて

    オープンシステムコールが呼び出されるたびに、実際にレジスタ(eax、ebx、ecx)の内容を取得するコードを使用していました。今度はたくさんの闘いの後、私はこの値が意味するものをこのQuestionから理解しました。 ebxにはfilenameへのポインタが含まれています。しかし、私がそれにアクセスしようとすると、私はセグメンテーション違反を取得していました。どこが間違っていますか? コードにはh

    2

    1答えて

    他のシステムコールが読み書きよりも子プロセスをkillしたいのですが(これらのコールもフィルタリングしますが、別の話です)、デフォルトではいくつかのシステムコールが実行されます。 私は空のテスト・チャイルド(即座に終了する)プログラムをコンパイルしました。また、フォークしてptracingを有効にして子プログラムを実行する親プロセスもあります。親プロセスはPTRACE_SYSCALLを使用し、毎回