ptrace

あるプロセスに別のプロセスのプロセスへのアクセスを許可しますか?
ptrace

あるプロセスに別のプロセスのプロセスへのアクセスを許可しますか?

/proc/<PID>/smaps_rollup監視デーモンが他のプロセスにアクセスして、そのプロセスのスワップ使用量を報告できることを願っています。 ファイルへのアクセスが「PTRACE_MODE_READ_FSCREDSptraceアクセスモードの確認によって制御されます」というメッセージが見つかりましたが、それが何を意味するのかわかりません。 smaps_rolluprootとして実行することに加えて、監視デーモンに他のプロセスのファイルへのアクセスを許可する他の方法はありますか? ...

Admin

バックグラウンドでGDBを実行する
ptrace

バックグラウンドでGDBを実行する

私は2つのncursesウィンドウを持つプログラムに取り組んでいます。 1つはfork + execを使用して実装されたカスタムシェルを示し、もう1つは私のシェルで実行されているコマンドに関するいくつかの情報を表示したいと思います。そのためにGDBを使ってみました。 私の考えは、バックグラウンドでGDBを実行し、いくつかのブレークポイントを設定し、いくつかの情報を私のncursesアプリケーションが読み取り、フォーマット、表示するファイルに印刷することです。 問題は、入力が端末から出ないと自動的に終了するため、プロンプトなしでGDBを実行できないことです。次...

Admin

システムコール accept4() が無効な値を返します。
ptrace

システムコール accept4() が無効な値を返します。

私はシステムコールを記録できる「strace」に似たプログラムを作成しました。 また、Webサーバーをインストールし、「strace」と私のプログラムのシステムコールを観察して比較しました。 各プログラムについて、Web サーバーに単純な HTTP GET 要求を送信して複数のシステムコールを生成します。 私のプログラムでは: 私は特定のaccept4()実行で戻り値が(-11)であることがわかりました。これは(マイナス11)を意味します! ただし、 accept4() の (-11) 戻り値は絶対に発生しないでください。 accept4()システムコールが...

Admin

実行中のプロセスのPIDにGDBを接続する際の権限エラー
ptrace

実行中のプロセスのPIDにGDBを接続する際の権限エラー

このようなおもちゃC ++プログラムがあります #include <iostream> int main() { int n{}; std::cin >> n; // waits for input std::cout << n << std::endl; } コメント付きの行の実行中に一時停止し、ユーザー入力を待ち、デバッガを接続するのに必要なすべての時間を提供します。 ある端末でこのプログラムを実行し、別の端末に入力します。 gdb -p $(pidof that-executab...

Admin

ptrace PTRACE_PEEKTEXTエラー
ptrace

ptrace PTRACE_PEEKTEXTエラー

Cプログラムでptrace PTRACE_PEEKTEXTを使用するとこのエラーが発生するのはなぜですか? PTRACE_PEEKTEXT を使用するプログラム部分は次のとおりです。 static void read_file(pid_t child, char *file) { char *child_addr; int i; child_addr = (char *) ptrace(PTRACE_PEEKUSER, child, sizeof(long)*RDI, 0); do { long val; ...

Admin

分岐されたプロセスでLinuxシステムコールを傍受する(「キャプチャ」)ptraceよりも良い方法はありますか?
ptrace

分岐されたプロセスでLinuxシステムコールを傍受する(「キャプチャ」)ptraceよりも良い方法はありますか?

フォークされたプロセスからのすべてのシステムコールをキャプチャして変更し、カーネルに送信してからフォークされたプロセスに戻したいと思います。可能ですか?では、どうすればよいですか? 私は少し調査してptraceを見つけましたが、多くの作業(レジスタの変更など...)を実行しているので、少し重い作業のようです。しかし、私が間違っている場合は訂正してください。 ...

Admin

Ptrace: Multiarch/Qemu-User-Static Arm64v8/Alpine Docker コンテナにインストールされている GDB で機能が実装されていません。
ptrace

Ptrace: Multiarch/Qemu-User-Static Arm64v8/Alpine Docker コンテナにインストールされている GDB で機能が実装されていません。

私は自分のMacに独自にインストールされたx86_64 16.04 Ubuntu VirtualBoxにインストールされているarm64v8 / alpine dockerでGDBを使用してaarch64 ELFをデバッグしたいと思います。特にドッカーを設定するには、次のガイドラインを使用しました。ここ。それは: sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes sudo docker run --rm -it -v /directory_on_ubuntu...

Admin

ptraceができない/procでデバッガは何ができますか?
ptrace

ptraceができない/procでデバッガは何ができますか?

これptraceに関するWikipediaの記事説明する: コントローラとターゲット間の通信は、ptraceへの反復呼び出しを介して行われ、2つの間に小さな固定サイズのメモリブロックを転送します(呼び出しごとに2つのコンテキストスイッチが必要です)。これは、大量のターゲットメモリにアクセスするときに非常に非効率的です。単語サイズのチャンク(単語ごとに1つのptrace呼び出し)でのみ実行できます。 [7] したがって、Unixバージョン8では、プロセスが他のプロセスのメモリに直接アクセスできるようにするprocfsが導入されています。経由でコピーされました...

Admin

Cross Memory Attach または ptrace のどちらを使用しますか?
ptrace

Cross Memory Attach または ptrace のどちらを使用しますか?

ptraceシステムコールを試していますが、今見つけました。クロスメモリ接続クリストファー・ヤングから。 Cross Memory Attachとptraceのどちらがパフォーマンスが良いかを知りたいです。 事前にありがとう ...

Admin

特定のプロセスに特定の実行可能ファイルを実行させるには、ptrace()をどのように使用しますか?
ptrace

特定のプロセスに特定の実行可能ファイルを実行させるには、ptrace()をどのように使用しますか?

exec()外部ファイルシステムをシステムフラッシュに書き込む前にテストできるように、組み込みLinuxシステムの初期化プロセスを独自の初期化プログラム(systemd)に強制的に適用しようとしています(そしてデバイスがレンガになる危険があります)。 GDB を使用すると、コマンドを実行し、対応するシェルタイプgdb --pid=1で実行できますが、call execl("/lib/systemd/systemd", "systemd", 0)必要な方法で正しく動作しますが、システムのフラッシュメモリに GDB を入れるのに十分なスペースがありません。 p...

Admin

straceとltraceがEINTRを引き起こすのはなぜですか?
ptrace

straceとltraceがEINTRを引き起こすのはなぜですか?

次のプログラムを検討してください。 #include <stdio.h> #include <sys/epoll.h> int main(void) { int epfd = epoll_create1(0); struct epoll_event event; event.events = EPOLLIN; event.data.fd = 0; epoll_ctl(epfd, EPOLL_CTL_ADD, 0, &event); epol...

Admin

追跡されるプロセス(子プロセス)が分岐コマンドを実行したときに追跡プロセス(親プロセス)に通知する方法はありますか?
ptrace

追跡されるプロセス(子プロセス)が分岐コマンドを実行したときに追跡プロセス(親プロセス)に通知する方法はありますか?

私たち全員が知っているように、ptraceシステムコールはUnixファミリーシステムで最も強力なシステムコールの1つです。すべてのデバッグソフトウェアは、ptraceを使用して他のプロセス、つまり被追跡者を監視および操作します。 ptraceを使用すると、被追跡者プロセスで読み取り/書き込みシステム呼び出しを追跡できます。被追跡者を監視し、被追跡者が分岐コマンドを実行したときにのみトレーサに通知するためにptraceを使用できますか?可能ですか?そうでない場合は、特定のアドレスの特定のコマンドが実行されたときにトラッカーに通知できますか? PTRACE_S...

Admin

OSXでptrace()プログラムをコンパイルする
ptrace

OSXでptrace()プログラムをコンパイルする

MacOSには、次のような単純なCプログラムがあります。 #include <stdlib.h> #include <sys/wait.h> #include <stdio.h> #include <sys/ptrace.h> int main(int argc, char *argv[]) { pid_t pid = atoi(argv[1]); printf("pid = %jd\n", (intmax_t) pid); return ptrace(PT_ATTACHEXC, ...

Admin