Python从RAM获取变量的值

时间:2018-07-15 08:15:54

标签: python

是否可以使用Python使用地址(例如作弊引擎)从RAM中获取变量的值?

2 个答案:

答案 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,它解决了我的问题。