6

Ubuntu LinuxでPythonを使用して別のプロセスのアドレス空間に書き込む方法は? 私の試み:

1) 仮想ファイル /proc/$PID/mem を使用してアドレスをシークします。私はそれを使用してメモリを読み取ることに成功しましたが、書き込もうとすると IOError が発生します。

fd=open("/proc/"+pid+"/mem","r+")
fd.seek(address,0)
fd.write("ABC")

出力:

IOError: [Errno 22] Invalid argument

2) 他のスレッドで提案されているように、python-ptrace ライブラリを使用しようとしています。ただし、適切なドキュメントやサンプル コードが見つかりません。

注: これはパーミッションの問題ではありません。root として実行すると同じ動作になります。

4

1 に答える 1

2

ここで解決策を見つけました: http://tito.googlecode.com/svn-history/r2/trunk/draft/fakefs.py

ctypes パッケージを使用して libc をロードし、libc.ptrace に POKEDATA オプションを指定してバイトを書き込みます。

于 2013-01-23T17:48:32.640 に答える