Patriotic it 2021-05-25 16:16 采纳率: 0%
浏览 138
已结题

运行python获取内存值报错

# 测试内存
import win32process
import win32con
import ctypes
import win32api
import win32gui


# 设置获取的最高权限
PROCESS_ALL_ACCESS = (0x000F0000 | 0x00100000 | 0xFFF)
# 获取进程句柄
window = win32gui.FindWindow(None, 'FXGG工具')
# print(window)
# 获取进程ID
process_id = win32process.GetWindowThreadProcessId(window)[1]
print(process_id)
# 以最高权限打开进程process_id
phand = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, process_id)
# 调用kernel32.dll,读取内存
kernel32 = ctypes.windll.LoadLibrary(r"C:\Windows\System32\kernel32.dll")
# 缓冲区获取基址值data1
data1 = ctypes.c_long()
# 读取基址 5532432928
kernel32.ReadProcessMemory(int(phand), 5532432928, ctypes.byref(data1), 4, None)
# 进行偏移
data2 = ctypes.c_long()
kernel32.ReadProcessMemory(int(phand), data1.value + 0xec8, ctypes.byref(data2), 4, None)
# 打印偏移后的值
print(data2.value)













这段代码运行后,出现了报错:

Traceback (most recent call last):
  File "F:/Code/python/invincible.py", line 21, in <module>
    kernel32.ReadProcessMemory(int(phand), 5532432928, ctypes.byref(data1), 4, None)
ctypes.ArgumentError: argument 2: <class 'OverflowError'>: int too long to convert

有没有哪位大佬指点一下我,或者教我一下用别的方法读写内存。谢谢!

  • 写回答

2条回答 默认 最新

  • Patriotic it 2021-05-25 17:15
    关注

    这个是int太长,不能转换

    评论

报告相同问题?

悬赏问题

  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。