python - 从 Python 中的 ReadProcessMemory 返回一个浮点值
问题描述
我在名为 Assault Cube 的游戏中有一个包含 y 位置的地址(我正在学习逆向工程)
我的问题是 readprocessmemory 的 ReadBuffer.value 返回一个整数,我正在寻找一种将值作为浮点数接收的方法。有谁知道如何在python中做到这一点?
在图片中,我试图说明如何返回整数(1125777408),这本身是正确的,但我想找到一种方法来返回浮点值(104)。
def ReadProcessMemory(self, hProcess, lpBaseAddress):
try:
lpBaseAddress = lpBaseAddress
ReadBuffer = ctypes.c_uint()
lpBuffer = ctypes.byref(ReadBuffer)
nSize = ctypes.sizeof(ReadBuffer)
lpNumberOfBytesRead = ctypes.c_ulong(0)
ctypes.windll.kernel32.ReadProcessMemory(
hProcess,
lpBaseAddress,
lpBuffer,
nSize,
lpNumberOfBytesRead
)
return ReadBuffer.value
except (BufferError, ValueError, TypeError):
self.CloseHandle(hProcess)
e = 'Handle Closed, Error', hProcess, self.GetLastError()
return e
解决方案
有一个ctypes
方法叫做c_float
,所以用ctypes.c_float()
代替ctypes.c_int()
。
推荐阅读
- apache-poi - 如何使用 Apache XSSF 格式在 xlsx 的条件格式规则中启用“如果为真则停止”选项
- oracle - 仅当远程表可访问或oracle中有完整数据时才截断本地表
- python - 给定一个单词列表,为每个单词找到最短的唯一前缀
- flutter - 在底部导航栏颤动中删除底部阴影效果
- android - 设备进入深度睡眠后套接字关闭 - Android Xamarin
- python - 在 google colab 中使用 MS nlp_recipes 时没有名为“utils_nlp”的模块
- neo4j - Neo4j:为多种情况更新节点
- java - 使用spring starter更改嵌入式tomcat的版本
- amadeus - 搜索响应中的票价规则信息
- android - 最新 Okhttp 中的主机拦截器 HttpUrl.parse IllegalArguementException