8

メモリアドレス0A7F03E4に値が格納されているとします124300Pythonを使用するように変更するにはどうすればよいですか?この種のタスク用に提供されているモジュールはありますか?

4

3 に答える 3

10
>>> import ctypes
>>> memfield = (ctypes.c_char).from_address(0x0A7F03E4)

これで、memfieldを読み取り、それに割り当て、好きなことを行うことができます。もちろん、そのメモリ位置にアクセスできる限り。

memarrayを取得することもできます

>>> memarray = (ctypes.c_char*memoryfieldlen).from_address(0x0A7F03E4)

これにより、memfieldのリストが表示されます。

更新:整数を取得したいということを読みました。この場合、もちろんctypes.c_intを使用します。一般的に:適切なctypeを使用します;)

于 2012-04-28T13:56:31.820 に答える
2

組み込みのctypesモジュールを試しましたか?それはあなたが必要なものをあなたに与えるべきであるmemset関数を提供します。

于 2012-04-28T13:53:12.443 に答える
1

UNIXでは、デバイスに物理メモリへのアクセスを試みてからopen()/dev/memオブジェクトのseek()メソッドを使用してfile、ファイルポインタを正しい場所に設定できます。次に、write()メソッドを使用して値を変更します。数値を生の文字列としてエンコードすることを忘れないでください!

ただし、通常、rootこのデバイスにアクセスできるのはユーザーのみです。

于 2012-04-28T13:56:46.727 に答える