メモリを直接変更して、プログラムの実行中に値を編集できることを確認したかったです。
私の思考プロセス(テストされていない)は、次のことです。
- プログラムを実行してください。
- システム・モニター・アプリケーションを開き、プログラムを「停止」(終了または終了しない).
- 航海
/proc/<ID#>/
chmod
mem
読み取りおよび書き込みアクセスを許可するファイルmem
16進エディタを使用した編集- 引き続き計画を立て、変更が反映されていることを確認してください。
これがこの問題を解決する正しい方法ですか?
そうでなければ、どうやってこれを達成しようとしますか?
答え1
~によるとman 5 proc
:
/proc/[pid]/mem
This file can be used to access the pages of a process's memory through open(2),
read(2), and lseek(2).
つまり、このインターフェイスは次の機能のみを提供します。読むライセンス。このファイルに書き込んだり変更したりすることはできません。
# chmod +w /proc/$pid/mem
chmod: changing permissions of '/proc/2905/mem': Operation not permitted
実行中のプロセスのメモリを変更したい場合、私が考えることができる1つの方法は次のとおりです。デバッガをプロセスに接続し、それを使用して変数を設定します。。