是否可以使用Python使用地址(例如作弊引擎)从RAM中获取变量的值?
答案 0 :(得分:1)
这确实取决于实现,您可以在CPython中使用ctypes.string_at
函数(它会转储整个Python3整数结构)进行尝试:
import ctypes
from sys import getsizeof
my_value_1 = int(1)
my_value_2 = int(2)
b1 = ctypes.string_at(id(my_value_1), getsizeof(my_value_1))
b2 = ctypes.string_at(id(my_value_2), getsizeof(my_value_2))
print(hex(id(b1)), ''.join(format(x, '02x') for x in b1))
print(hex(id(b2)), ''.join(format(x, '02x') for x in b2))
打印:
0x7ffff670ffb0 4d0300000000000040b89d0000000000010000000000000001000000
0x7ffff670f5f0 740000000000000040b89d0000000000010000000000000002000000
在其他Python实现中(Jython,Iron Python等),这可能行不通。在CPython上,id()
返回对象的内存地址。
答案 1 :(得分:0)
我找到了一个Python模块hackManager,它解决了我的问题。