2012-05-13 6 views
3

メモリのバイトを読み込みたいが、メモリが本当に読み込み可能であるかどうかわからない。 vm_read関数を使ってOS X、ReadProcessMemoryを持つWindows、または_ try/ _catchで実行できます。 Linuxでは、私はptraceを使うことができると信じていますが、まだデバッグされていない場合に限ります。Unix(または少なくともLinux)のメモリを安全に読み取る方法は?

FYI私は例外ハンドラプログラムの状態ダンプコードを書いていますが、ユーザがさまざまなメモリ値が何であるかを知ることができればそれを助けます。無効でした。

答えて

1

コード処理状態のダンプ/例外ハンドラでは一般的な高速である必要がない場合は、アクセス試行前に独自のシグナルハンドラを配置して後で復元することができます。信じられないほど苦しくて遅いですが、それは完了です。

もう1つのアプローチは、/ dev/proc //マップの内容を解析してメモリのマップを作成し、各アクセス時にプロセス内のアドレスを決定するかどうかを決定することです。

私の場合は、ライセンスが自分のニーズを満たしていれば、すでにこれを行うものを見つけて、直接コードを再実装またはコピーしようとします。最初から書くことは苦痛であり、シンボル解決をサポートするトレースを与えることができることがあります。

関連する問題