You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取64位程序内存时遇OverflowError:整数过长无法转换求助

解决ReadProcessMemory报错OverflowError:int too long to convert

问题原因

你在32位Python环境中尝试读取64位进程(Tutorial-x86_64.exe)的内存地址,64位地址超出了32位整数的取值范围,导致ctypes无法完成地址转换,触发OverflowError。

解决方案

1. 切换到64位Python

  • 卸载当前32位Python,下载并安装对应版本的64位Python。
  • 重新安装依赖库:
pip uninstall ReadWriteMemory
pip install ReadWriteMemory

2. 自动获取进程基地址(避免硬编码错误)

手动计算的0x100000000+0x00325A70不可靠,64位程序启用ASLR(地址空间布局随机化)后,基地址会动态变化,应该通过进程对象的base_address属性自动获取:

from ReadWriteMemory import ReadWriteMemory

rwm = ReadWriteMemory()

process = rwm.get_process_by_name("Tutorial-x86_64.exe")
process.open()

# 自动获取基地址 + 偏移
baseaddress = process.base_address + 0x00325A70

pointer = process.get_pointer(baseaddress, offsets = [0x598, 0x28, 0x8, 0xF8, 0x18, 0x18, 0x7F8])
print(process.read(pointer))

3. 验证偏移链的正确性

用Cheat Engine等工具重新确认基地址和偏移链是否正确:

  • 附加到Tutorial-x86_64.exe,找到目标内存地址的偏移链
  • 确保每一层偏移都对应64位内存地址的读取

内容的提问来源于stack exchange,提问作者cool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:55:30