TC官方合作论坛

 找回密码
 立即注册
查看: 2462|回复: 12

[已解决] 动态库调用ReadProcessMemory 求高手帮帮忙

[复制链接]
发表于 2016-8-20 00:33:14 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
动态库调用ReadProcessMemory 求高手帮帮忙
回复

使用道具 举报

发表于 2016-8-24 00:20:51 | 显示全部楼层
另外一点 就是你参数写错了
//座位号内存基址"00111654"
这个是十六进制的,你写十进制的。
回复 支持 反对

使用道具 举报

发表于 2016-8-20 01:23:44 | 显示全部楼层
http://bbs.tyuyan.net/thread-63792-1-1.html
这个帖子给你回答了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-20 22:23:06 | 显示全部楼层
dear 发表于 2016-8-20 01:23
http://bbs.tyuyan.net/thread-63792-1-1.html
这个帖子给你回答了。

游戏没有保护 可就是读不出来
  
回复 支持 反对

使用道具 举报

发表于 2016-8-20 23:46:46 | 显示全部楼层
jandan520 发表于 2016-8-20 22:23
游戏没有保护 可就是读不出来

读什么类型的数据?长度多少?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-21 23:07:35 | 显示全部楼层
dear 发表于 2016-8-20 23:46
读什么类型的数据?长度多少?

就是 0到5的数字
回复 支持 反对

使用道具 举报

发表于 2016-8-22 11:51:45 | 显示全部楼层
  1. var 进程句柄=?? //这个你需要自己添,一般TC的 进程信息 这个函数就可以用窗口句柄获取到。要2次调用
  2. var 想要读取的内存地址=#444444 //16进制的地址。看着改
  3. var 返回内存地址上的内容
  4. var 要读取的长度=1 //0~5之间的数字 长度就是1咯。
  5. var 返回实际读取的内容
  6. 调试输出(dllcall("kernel32.dll","long","ReadProcessMemory","long",进程句柄,"long",想要读取的内存地址,"plong",返回内存地址上的内容,"long",要读取的长度,"plong",返回实际读取的内容))//这行调试1 说明成功了。0说明失败了
  7. 调试输出(返回内存地址上的内容)//你要的内容
  8. 调试输出(返回实际读取的内容)//内容的长度
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 00:07:25 | 显示全部楼层
本帖最后由 jandan520 于 2016-8-24 00:11 编辑


功能 内存读取操作()
    //座位号内存基址"00111654"
    变量 进程ID
    变量 进程句柄
    变量 座位号
    变量 返回内存地址上的内容
    变量 实际读取的内容
    变量 内存基址 = 00111654
    窗口句柄 = 窗口查找("QQ游戏 - 连连看角色版","")
    动态库调用("user32.dll","long","GetWindowThreadProcessId","long",窗口句柄,"plong",进程ID)
    进程句柄 = 动态库调用("Kernel32.dll","long","OpenProcess","long",2035711,"long",假,"long",进程ID)
    调试输出(窗口句柄)
    调试输出(进程ID)
    //进程句柄 = 进程获取句柄("QQ游戏 - 连连看角色版")
    调试输出(进程句柄)
    调试输出(dllcall("kernel32.dll","long","ReadProcessMemory","long",进程句柄,"long",00111654,"plong",返回内存地址上的内容,"long",1,"plong",实际读取的内容))//这行调试1 说明成功了。0说明失败了
    // 座位号 = 动态库调用("Kernel32.dll","long","ReadProcessMemory","long",进程句柄,"long",内存基址,"plong",内存地址上的内容,"long",4,"plong",实际读取的内容)
    //编辑框设置文本("编辑框2",座位号)
    //调试输出(座位号)
    调试输出(返回内存地址上的内容)//你要的内容
    调试输出(实际读取的内容)
结束





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2016-8-24 00:15:56 | 显示全部楼层
jandan520 发表于 2016-8-24 00:07
功能 内存读取操作()
    //座位号内存基址"00111654"
    变量 进程ID

0表示读取内存失败。
你确定是没保护的话,那就是你进程句柄弄错了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 23:30:51 | 显示全部楼层
dear 发表于 2016-8-24 00:15
0表示读取内存失败。
你确定是没保护的话,那就是你进程句柄弄错了。

谢谢高手耐心帮忙 原来是我把这个十六进制的,当成十进制了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-27 23:54 , Processed in 0.043143 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表