問題タブ [strace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
8795 参照

c - ptrace(PTRACE_PEEKUSER) と ptrace(PTRACE_PEEKDATA) の違いは?

に多くの質問を投稿した後ptrace(最新の 5 つの質問は私のものです:()

マニュアルページに記載されている違いは次のとおりです

  • PTRACE_PEEKTEXT子のメモリ内の位置 addr で単語を読み取ります
  • PTRACE_PEEKUSER子の USER 領域のオフセット addr で単語を読み取ります

この違いは、man ページだけでは理解できません。これについてもっと教えてくれる人はいますか??

0 投票する
4 に答える
5431 参照

windows - Windows でプログラムの DeviceIoControl 呼び出しをログに記録する方法

アプリケーションの DeviceIoControl() システム コールをキャプチャする必要があります。Linux では、strace を使用してすべての ioctl 呼び出しを分析できます。Windowsに同様の機能はありますか?

MSDN の Web サイトでは、実行可能ファイルのリアルタイム アクティビティを分析する「Process Monitor」というプログラムを推奨しています。ただし、「プロセス モニター」には、DeviceIoControl 呼び出しについては何も表示されません。

0 投票する
1 に答える
171 参照

linux - プログラムのシステム コールの場所を見つけるにはどうすればよいですか?

strace マニュアルから:

私は自分のプログラムをたどりました:

その結果、多くのシステムコールが発生しました。それらの中の一つ:

しかし、prog のこのアドレスにある逆アセンブルされた命令は、syscall (hte エディター) を呼び出しません。

なにが問題ですか?プログラムのシステム コールの場所を見つけるにはどうすればよいですか?

私のデバイスの PS アーキテクチャは、GDB コマンドの catch syscall をサポートしていません。

0 投票する
1 に答える
553 参照

c - ptrace はユーザー レベルまたはカーネル レベルで機能しますか?

ptrace を使用してデータ フロー異常検出を実装しようとしています。少し調査した後、strace に似たプログラムを実装しました。今、私はこれについて混乱しています。これは、ウィキがシステムコールについて私に教えてくれるものです:

「システム コールは、プロセスとオペレーティング システム間のインターフェイスを提供します」

ptrace を使用してプロセスのメモリを変更する場合、ユーザー空間またはカーネル空間で作業していますか? 私はこれについて本当に混乱しています。

0 投票する
0 に答える
357 参照

c - execve システムコールの引数の取得

ptrace を使用して、execve システム コールに渡される引数を取得しようとしています。しかしPTRACE_GETREGS、引数を使用して取得しようとするとSYS_execve、すべてのレジスタ値に対して 0 が取得されます。strace が渡されたすべての引数を取得する方法を教えてください。私はそのソースを読んでみましたが、それらは明らかに私が完全に使用できなかった構造を使用しています。もっと簡単な方法はありますか??

0 投票する
1 に答える
559 参照

c - 異なる実行フローに従ってstraceを実行するのはなぜですか?

シンボリックリンク攻撃を学習する次の記事を参照しています。

プログラムがスリープ状態にrmなると、ファイル名であるarg [1](別の端末を使用)を使用して、同じファイルのシンボリックリンクを作成します。記事で述べたように実行したとき、リンクが指しているファイルに書き込んでいます。

次に、straceを使用して同じ引数を渡し、「cant open」を取得しました。これは、arg[1]として渡されたファイルにアクセスできないことを意味します。しかし、これは私が通常実行した場合には当てはまりません。straceはこれをどのように検出しますか?どんな助けも非常に価値があります。

このような攻撃を検出するために、ptraceを使用して独自のアプリケーションを作成しています。これを検出するためにiノード番号を使用しようとしましたが、アプリケーションはまだ渡したファイルのiノード番号を参照しています。

0 投票する
1 に答える
6124 参照

linux - Straceマルチスレッドプログラム

マルチスレッドプログラムでstraceを実行すると、次のような結果が得られます。

引数がの1行に<unfinished...>あり、結果が。の別の行にあることに注意してください<...resumed>。結果と相関する引数がないと、straceの有用性が低下します。マルチスレッドプログラムをトレースするときに、straceに結果と引数を同じ行に出力させることは可能ですか?

0 投票する
4 に答える
479 参照

python - Pythonマルチプロセッシング+scipy:過剰なファイルシステムの「stat」および「open」の試行

私はPythonでいくつかの極端な奇妙な振る舞いを観察しています。次のコードを検討してください。

これに対してstrace-fを実行すると、ループから次のセグメントが取得されます。

ファイルシステム内で「ランダム」を検索することについてのすべてのがらくたはどうですか?クラスター上でこの構造を使用して非常に多くのプロセスを並行して実行し、非常に高速にループしているため、これを避けたいと思います。この種のファイルシステムアクティビティは、ファイルシステムメタデータサーバーを詰まらせているため、クラスター管理者は私に教えてくれます。 。

「importscipy」コマンドを削除すると、この問題は解決します。

しかし、実際のコードにはscipyが必要なので、それを取り除くことはできません。または多分私はできますが、それは苦痛でしょう。

なぜ私がこの振る舞いを見ているのか誰かが知っていますか?それが私が実行している何かのいくつかのバージョンの癖である場合:

python:2.7.1、マルチプロセッシング:0.70a1、scipy:0.9.0、

実際、システムに依存している可能性があることに気付いたので、ラップトップで同じコードを実行し、問題はありませんでした(つまり、2番目のケースと同等の出力)。私が実行しているラップトップで

python:2.6.5、マルチプロセッシング:0.70a1、scipy:0.10.0、

おそらく、修正されたのは以前のバージョンのscipyの問題またはバグですか?このようなものを検索しても何も見つかりませんでした。それが問題であるとしても、クラスター上のscipyのバージョンを変更するのはそれほど簡単ではありませんが、必要に応じてクラスター管理者に新しいバージョンをビルドさせることはおそらく可能です。

これが問題になる可能性がありますか?

0 投票する
2 に答える
1721 参照

linux - wget の strace が奇妙なソケット呼び出しを行う

「strace wgetgrooveshark.com」は、間違った文字列長の奇妙なソケット呼び出しで停止し、Ctrl+C で終了する必要があります。

write(2, "HTTP リクエストが送信され、応答を待っています"..., 40HTTP リクエストが送信され、応答を待っています... ) = 40

する必要があります

write(2, "HTTP リクエストが送信され、応答を待っています...", 40 ) = 40

しかし strace wget google.com は与えます

そして正しく終了します。

ありがとう

0 投票する
2 に答える
4666 参照

c - strace出力の解釈

straceを使用すると、特定のファイル記述子および特定のコマンドに対するioctl呼び出しを確認できます。3番目の引数は構造体ですが、straceはそれをメモリへの生のポインタとして示します。strace出力の例:

構造、または少なくとも生のポインターの背後にある値を確認する方法(straceオプションまたは他のツール)はありますか?