open システム コールが呼び出されるたびに、実際にレジスタ (eax、ebx、ecx) の内容を取得する次のコードを使用していました。多くの苦労の後、この質問から値が何を意味するかを理解しました。
ebx には、ファイル名へのポインタが含まれています。しかし、アクセスしようとすると、セグメンテーション違反が発生しました。どこが間違っていますか?コードはこちらからアクセスできます
1 に答える
2
すべてのプロセスには独自のアドレス空間があります。別のプロセスから取得したアドレスは、あなたのアドレスでは無効になります。他のプロセスでメモリを読み取る1つの方法は、を使用することPTRACE_PEEKDATA
です。Linuxの場合、別の方法は、アドレスを開い/proc/<pid>/mem
てシークし、ファイルのようにアドレスから読み取ることです。
于 2012-03-20T12:26:13.423 に答える