开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2081|回复: 14
收起左侧

[求助] 游戏屏蔽了PostMessage和SendMessage,请教解决方法

[复制链接]
结帖率:50% (1/2)
发表于 2023-4-6 10:12:23 | 显示全部楼层 |阅读模式   山东省烟台市
一款多年前的32位老旧游戏,最近运营方更新了反辅助模块SP(SkyProtect)后,游戏客户Duan不但不能多开了(仅限2开),竟然不支持投递消息了。请问有没有什么解决办法?


顺便请教下如何用代码恢复object hook
结帖率:0% (0/2)
发表于 2023-4-6 12:12:44 高大上手机用户 | 显示全部楼层   湖北省武汉市
使用游戏提供的API:如果游戏提供了自己的API,那么使用它可能是最简单和最可靠的方法。你需要查阅游戏文档或在网上搜索相关信息,以找到游戏API的使用方式和限制。
使用键盘和鼠标模拟器:键盘和鼠标模拟器可以模拟用户输入,从而实现与游戏进行交互。你需要找到一款可靠的键盘和鼠标模拟器软件,并学习如何使用它进行操作。
使用内存编辑器:内存编辑器可以读取和修改游戏的内存,从而实现与游戏进行交互。你需要找到一款可靠的内存编辑器软件,并学习如何使用它进行操作。使用内存编辑器可能需要一定的技术知识,并且可能会受到游戏反作弊机制的限制。
回复 支持 反对

使用道具 举报

签到天数: 23 天

发表于 2023-4-6 12:14:43 | 显示全部楼层   河南省濮阳市
如果你的消息为模拟的话,可以尝试keybd_event API测试一下。
之前使用跑跑卡丁车还有GTAV线上也是屏蔽的这些东西,但使用keybd_event还是可以正常模拟的。
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2023-4-6 16:04:30 | 显示全部楼层   山东省烟台市
laodan 发表于 2023-4-6 12:14
如果你的消息为模拟的话,可以尝试keybd_event API测试一下。
之前使用跑跑卡丁车还有GTAV线上也是屏蔽的这 ...

感谢。
模拟不好使呢。
用模拟键盘对话框会一直发出模拟的按键字母。
回复 支持 反对

使用道具 举报

签到天数: 23 天

发表于 2023-4-6 19:58:03 | 显示全部楼层   河南省濮阳市
lkmaji 发表于 2023-4-6 16:04
感谢。
模拟不好使呢。
用模拟键盘对话框会一直发出模拟的按键字母。

尝试一下SendMessageTimeout API,虽然感觉希望不大,但可以试试,万一可以呢.
不然还是我说的这个,使用keybd_event API
易语言不清楚,在VB中,需要定义:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)。
具体如果你想要将某个字符直接传送到其它程序的输入框中的话,尝试一下SendMessageTimeout吧
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2023-4-6 21:17:04 | 显示全部楼层   山东省烟台市
laodan 发表于 2023-4-6 19:58
尝试一下SendMessageTimeout API,虽然感觉希望不大,但可以试试,万一可以呢.
不然还是我说的这个,使用 ...

反复试验还是没有成功
原语句:
_投递消息 (窗口句柄, 256, 按键值, 0)
_投递消息 (窗口句柄, 257, 按键值, 0)
(.DLL命令 _投递消息, 整数型, , "PostMessageA", 公开, 向指定窗口句柄发送消息
    .参数 窗口句柄, 整数型
    .参数 标识, 整数型
    .参数 消息1, 整数型
    .参数 消息2, 整数型)

PostMessageA可以后台挂机,keybd_event只能前台而且不能聊天。
请教用SendMessageTimeout替换该如何修改参数值?
回复 支持 反对

使用道具 举报

签到天数: 23 天

发表于 2023-4-6 22:13:51 | 显示全部楼层   河南省濮阳市
和SendMessage用法基本一致,只不过增加了个参数,我对于易语言代码不熟悉。建议你找一下其它的资料哈。
回复 支持 反对

使用道具 举报

结帖率:95% (84/88)

签到天数: 3 天

发表于 2023-4-7 03:13:44 | 显示全部楼层   美国
最简单粗暴的方式:放虚拟机
回复 支持 反对

使用道具 举报

结帖率:100% (31/31)

签到天数: 23 天

发表于 2023-4-7 09:32:28 | 显示全部楼层   浙江省杭州市
如果游戏屏蔽了PostMessage和SendMessage,可能需要采用其他方式来模拟键盘和鼠标输入。下面介绍两种常见的方式:

使用鼠标和键盘驱动程序发送输入事件:可以使用Python中的Windows API,例如使用win32api库中的keybd_event和mouse_event等函数来模拟键盘和鼠标事件。注意,使用Windows API来模拟输入时要非常小心,因为它可以绕过游戏的防作弊机制。

使用图像识别和模拟点击:如果游戏屏蔽了消息发送,也可以使用图像识别来自动点击屏幕区域。可以使用Python中的PyAutoGUI库,该库可以通过图像识别来定位屏幕上的元素,然后自动点击指定位置。这种方法也比较依赖游戏的界面布局和元素特征。

无论采用哪种方法,都需要注意合法性和安全性,避免对游戏进行作弊或破坏性操作,以及使用API或库的版权等问题。
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2023-4-7 09:57:07 | 显示全部楼层   山东省烟台市
laodan 发表于 2023-4-6 22:13
和SendMessage用法基本一致,只不过增加了个参数,我对于易语言代码不熟悉。建议你找一下其它的资料哈。 ...

反复测试,游戏好像是只屏蔽了参数256/257(键盘按下和抬起)
SendMessage (窗口句柄, 256, 按键值, 3)
SendMessage (窗口句柄, 257, 按键值, 3)

258的参数好用可是只能用在聊天框里,不能实现游戏里的按键功能。
SendMessage (窗口句柄, 258, 按键值, 3)
SendMessageTimeout (窗口句柄, 258, 按键值, 0, 0, 100, 0)

keybd_event 可以实现按键功能,可惜只能前台使用,而且不能聊天,否则按键就会出现在聊天栏里了。
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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