|
本帖最后由 mjg2009 于 2015-11-29 09:51 编辑
在这个64位程序越来越多的时代,按键,TC都还停留在32位。本人曾找遍按键论坛,TC论坛,都没找到一个32位进程能读写64位进程内存的插件。当然普通地址随便可以读。一但遇上长地址(如 1F3AA5DCCF0)或者带模块名的,DM,TS什么的都得跪。
然后找度娘解决才发现这方面的资料几乎为0.除了几个API什么也没有。而且几个API都是NTDLL.DLL未文档的。百度,谷哥都找不到资料。读写比还好,主要是模块遍历,真是头痛的事。(应该说是水平有限)
经过半个月研究,终于写出了这个插件,然后发现我的程可以直接用DELPHI写。插件用不上了,不想浪费,放出来给有需要的人吧。
var xx = com( "inx64.memory")
只写了几个简单的读写函数,
string GetModuleBase(hwnd,moduleName) 取模块基址(参数1:窗口句柄,参数2:模块名)返回16进制字符串地址。 比如 xx=xx.getmodulename(hwnd,"xxx.dll")
int ReadInt(hwnd,address[,nlen=4]) 读取4字节以内的整数(窗口句柄,地址:16进制字符串 可以直接用CE的地址表达串,可选参数 :读取字节数默认为4) 返回10进制整数。比如 xx=xx.readint(hwnd,"[[[xxx.exe+111]+222]+333]+444")
string ReadStr(hwnd,address[,nlen=10]) 读取字符串 参数同上 比如 xx=xx.readstr(hwnd,"[[[xxx.exe+111]+222]+333]+444",20) 注意地址跟大漠的不一样,模块不需要加<>
Float ReadFlo(hwnd,address) 读敢单精度浮点数 参数同上
Double ReadDoub(hwnd,address) 读取双精度浮点数 参数同上
int WriteInt(hwnd,address,sdata) 写入4字节整数(窗口句柄,地址,写入内容) 成功返回0 返回非0写入失败。
int WriteStr(hwnd,address,sdata) 写入字符串(窗口句柄,地址,写入内容:字符串) 成功返回0 返回非0写入失败。
目前好像就这几个 本插件也同时支持32位进程。在XP 和W7 上都正常,W8以上没试验
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|