2024-05-14 20:49:19 发布
网友
假设内存地址0A7F03E4存储一个值124。如何使用python将其更改为300?是否为此类任务提供了模块?
0A7F03E4
124
300
>>> import ctypes >>> memfield = (ctypes.c_char).from_address(0x0A7F03E4)
现在你可以阅读memfield,分配给它,做任何你想做的事情。当然,只要你能访问那个内存位置。
你也可以用
>>> memarray = (ctypes.c_char*memoryfieldlen).from_address(0x0A7F03E4)
这给了你一个模场列表。
更新:我刚读到你想检索一个整数。在这种情况下,当然要使用ctypes.c\u int。通常:使用适当的ctype;)
在UNIX上,可以尝试open()设备/dev/mem访问物理内存,然后使用file对象的seek()方法将文件指针设置到正确的位置。然后使用write()方法更改该值。别忘了把数字编码成原始字符串!
open()
/dev/mem
file
seek()
write()
不过,通常只有root用户可以访问此设备。
root
你试过内置的ctypes模块吗? 它提供了一个memset函数,可以满足您的需要。
现在你可以阅读memfield,分配给它,做任何你想做的事情。当然,只要你能访问那个内存位置。
你也可以用
这给了你一个模场列表。
更新:我刚读到你想检索一个整数。在这种情况下,当然要使用ctypes.c\u int。通常:使用适当的ctype;)
在UNIX上,可以尝试
open()
设备/dev/mem
访问物理内存,然后使用file
对象的seek()
方法将文件指针设置到正确的位置。然后使用write()
方法更改该值。别忘了把数字编码成原始字符串!不过,通常只有
root
用户可以访问此设备。你试过内置的ctypes模块吗? 它提供了一个memset函数,可以满足您的需要。
相关问题 更多 >
编程相关推荐