私用プロジェクトとして、私はHaskellでエミュレートする小さなツールを書いています。スキャンメモリ。
それ
- /proc/pid/mapsで仮想メモリ領域を検索する
- /proc/pid/memをスキャンして、指定された値でメモリ領域を抽出します。
まだ開発の初期段階なので、私はまだcabal replに大きく依存しています。これにより、コードを変更してすぐにインタラクティブなghci環境に入り、コードを実行できます。残念ながら、/proc/pid/memを読むにはsudo権限が必要なので、cabal replをsudoとして実行する必要があります。これをしないことをお勧めします。。小さな変更を加えるたびにコード全体を書くのではなく、すべてのユーザーがこのファイルに対する読み取り権限を持つように、特定の/proc/pid/memの権限を変更することが代替案だと思います。この特定のファイルに対してすべてのデバッグを行います。
残念ながら、私が走ろうとしたとき
sudo chmod 644 mem
結果を得ました。chmod: changing permissions of 'mem': Operation not permitted
このアイデアはただ無駄な練習でしょうか?
とても感謝しています!
答え1
変更できない権限は/proc/…/mem
カーネルによって強制されます。
開発タスクでは、ユーザーとして実行されているすべてのプロセスが利用可能であり、ユーザーとして実行されている/proc/…/mem
プロセスにアクセスできる必要があります。 (scanmem
これも実行できます。ユーザーとして実行されているプロセスのpidを指定した場合は、rootとして実行せずに分析します。)すべてのプロセスを調べたい場合は、ファイルを読み取れないmem
プロセスをスキップしてください。