ReadWriteMemory将内存读取为int而不是float

2024-09-27 21:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

from ReadWriteMemory import ReadWriteMemory

rwm = ReadWriteMemory()

process = rwm.get_process_by_name("javaw.exe")
process.open()
module_base = 0x6FBB0000
static_address_offset = 0x007FD7C0
static_address = module_base + static_address_offset
pitch_pointer = process.get_pointer(static_address, offsets=[0xB8, 0x1C8, 0x1C8, 0x1D0, 0x178, 0xAC, 0x8C])
camera_pitch = process.read(pitch_pointer)
print(camera_pitch)

我尝试使用作弊引擎中的指针获取相机间距,脚本工作正常,但相机间距是一个浮点值,而process.read(pitch_pointer)返回一个int,例如将camera_pitch设置为1108138163,而不是35.2。在任何地方都找不到如何获得浮动


Tags: fromreadbasegetaddressstaticprocessoffset
1条回答
网友
1楼 · 发布于 2024-09-27 21:26:25

您可以使用struct模块

大概是这样的:

>>> import struct
>>> i_value = 1108138163
>>> struct.unpack("@f", struct.pack("@I", i_value))[0]
35.21162033081055

也就是说,将整数转换为4字节数组,然后将其转换为浮点struct.unpack总是返回一个元组,在这种情况下是单个值,所以使用[0]来获取它

相关问题 更多 >

    热门问题