This topic created in 4699 days ago, the information mentioned may be changed or developed.
情况:
一个练手工具,功能仿CheatEngine或GameMater
运行并输入初始数值,自动扫描指定程序的占用内存并等待变化值
变化后再次扫描,显示变化区域的内存地址并等待输入
问题:
用什么方法有效读取指定程序的占用内存
能不能通过前期准备框定可能变化的内存范围
从而不读取全部内存加快读取速度
求教
4 replies • 1970-01-01 08:00:00 +08:00
 |
|
1
for4 Jul 27, 2013 1
常规方法 ctypes+windbg 也可以写一个dll注入目标程序,dll中加载py脚本.搜索pydotdll
|
 |
|
2
timonwong Jul 27, 2013 1
Win32API: 读取: ReadProcessMemory, hProcess句柄需要通过OpenProcess()打开,需要访问权限需要指定 PROCESS_VM_READ 权限
写入: WriteProcessMemory, OpenProcess()打开的句柄需要指定 PROCESS_VM_WRITE权限。
还有种方法是在另外的进程中创建一个Thread,不过设计到大量问题我在想只能用原生API实现,要不就只能自己写个Python的emitter, 自动生成机器代码,然后把通过VirtualAllocEx分配一个页面,注入到另外的进程中去。
读取的权限还好说点,写入比较麻烦,估计需要管理员权限了。
ReadProcessMemory是可以指定起始地址和大小的。
|
 |
|
3
Mutoo Jul 27, 2013
python不是解析语言么,边解析边执行,bytecode和一般的静态程序也不一样,如何内存搜索?
|
 |
|
4
shiweifu Jul 27, 2013 via Android 1
买本windows 核心编程 搜搜pywin32
|