天马阁

 找回密码
 立即注册
                                        →→→→→→→→→→→→ 1点击查看所有VIP教程目录长列表(总教程数269个) 2办理VIP详情进入 ←←←←←←←←←←←←
1 x64CE与x64dbg入门基础教程 7课 已完结 2 x64汇编语言基础教程 16课 已完结 3 x64辅助入门基础教程 9课 已完结 4 C++x64内存辅助实战技术教程 149课 已完结
5 C++x64内存检测与过检测技术教程 10课 已完结 6 C+x64二叉树分析遍历与LUA自动登陆教程 19课已完结 7 C++BT功能原理与x64实战教程 29课 已完结 8 C+FPS框透视与自瞄x64实现原理及防护思路 30课完结
64驱?封? 9 64反驱? 10 64位V? 11 绝? 12 ???课?
13 64透 ? 14 64U ? 15 64Q ? 16 64功 ?
17 64U ? 18 64模 ? 19 64多 ? 20 64网 ?
21 64注 ? 22 64火 ? 23 64棋 ? 24 64自二链L?
25 64破 ? VIP会员办理QQ: 89986068   
【请先加好友,然后到好友列表双击联系客服办理,不然可能无法接受到信息。】
27 加入2000人交流群637034024 3 28 免责声明?
查看: 4770|回复: 0

游戏辅助工具之我见

[复制链接]

12

主题

0

回帖

14

积分

编程入门

Rank: 1

天马币
24
发表于 2024-3-6 09:17:54 | 显示全部楼层 |阅读模式
曾经,我们是因游戏百度辅助;
现在,我们是因游戏制作辅助。
辅助在我看来,是对游戏苛刻的条件的抗议,也是为节省体力做出的抗争。
本帖隐藏的内容-----------------------------------------------------------------------------------------------------
游戏辅助类工具也是程序员生活的一部分,毕竟休闲时玩会游戏,可游戏太变态不好刷,那么该怎么办呢?
一.自动发言类
卖装了,卖药了……可是广告打不出去怎么办呢?世界里喊话吖~
吖的一句一句手喊,你想累死我啊~当然是使用伟大的喊话工具啦~
实现原理:
一般喊话工具是不会涉及Call的。因为这就太高级了,而且也很麻烦。有了SendMessage,Call喊话就是在落伍了。
目前喊话工具的实现原理分为以下两种:
1.模拟按键
2.SendMessage

模拟按键。顾名思义就是模拟键盘某键被按下,游戏产生相关相应功能。
一般游戏里的发言按键过程如下【我们以QQ堂游戏为例】:
=============================
Enter键打开对话框

输入发言内容

Enter键关闭对话框并发送封包实现喊话
=============================
SendMessage和模拟按键有相同点。
SendMessage也是通过方式达到模拟这种状态,不过它采用的是发送消息【要不然怎么叫SendMessage嘛】。
比较一下我们会发现,SendMessage优势明显:
1.CPU占用低
2.后台发言
而模拟按键一般都需要发言窗口保持最前,否则无法实现。
简单滴放出段SendMessage的代码:
  • SendMessage (窗口句柄 [定位 + 1], 主热键 [定位 + 1], 真)

[color=rgb(51, 102, 153) !important]复制代码




这是模拟出打开对话框状态。

如何传送发言内容呢?
我们又提出两种方法:
文本投递和文本粘贴




文本投递源码:
  1. .版本 2

  2. .子程序 文本投递, , 公开, 向指定窗口句柄的窗口中后台发送文本内容,对游戏有效!(无返回值)
  3. .参数 窗口句柄, 整数型, , 接收消息的窗口句柄
  4. .参数 文本内容, 文本型, , 发送的文本内容
  5. .局部变量 消息, 字节集
  6. .局部变量 长度, 整数型
  7. .局部变量 计次, 整数型

  8. 消息 = 到字节集 (文本内容)
  9. 长度 = 取字节集长度 (消息)
  10. .计次循环首 (长度, 计次)
  11. _投递消息 (窗口句柄, 258, 消息 [计次], 0)
  12. .计次循环尾 ()


  13. .版本 2
  14. .DLL命令 _投递消息, , , "PostMessageA", 公开, 向指定窗口句柄发送消息
  15. .参数 h
  16. .参数 m
  17. .参数 p
  18. .参数 p
复制代码

  1. .版本 2
  2. .子程序 文本粘贴, , 公开, 粘贴指定文本 必要时会自动激活窗口(无返回值)
  3. .参数 句柄, 整数型, 可空, 欲粘贴文本处的窗口句柄 可空为当前窗口焦点处
  4. .参数 文本内容, 文本型, 可空, 欲粘贴的文本内容 可空:清楚内容
  5. .局部变量 tStr1, 文本型
  6. .如果 (句柄 = 0)
  7. 句柄 = 取焦点句柄 ()
  8. .否则
  9. 窗口置焦点 (句柄)
  10. .如果结束
  11. tStr1 = 取剪辑板文本 ()
  12. 置剪辑板文本 (文本内容)
  13. _投递消息 (句柄, 177, 0, -1) ' 全选
  14. _投递消息 (句柄, 770, 0, 0) ' 置内容
  15. 置剪辑板文本 (tStr1)
复制代码
优势又明显出来了。文本投递与SendMessage一样的强大。
由此我们可以总结出游戏自动发言工具的制作方法:
1.取窗口句柄
2.打开对话框
3.将发言内容置入
4.发送消息
如果想要循环,就弄个时钟循环执行即可~ ~
--------------------------------------------------------------------------
辅助游戏的设计【以英雄岛为例】
英雄岛的自动化里有自动加血、自动攻击等功能。但我觉得有点不满意自动攻击。(因为有的技能必须对人使用,而自动攻击是一通乱用。浪费蓝啊~~~~)
我就设计以下思路来设计我的辅助:
1.Call
2.模拟
想想Call要找半天,我毅然选择了后者。

设计流程:
首先找到锁定怪物的方法。有的技能必须锁定怪物后使用。
伟大的游戏会留后门给你的。
英雄岛自己设计的:Tab键切换敌人。
所以模拟找怪我们就用SendMessage触发Tab键事件~~~~
那么如何执行技能呢?
向伟大的快捷键致敬。
装备英雄后会默认:1、2、3、4和Q、W、E、R为技能键。
猥琐的人生无须多言,直接来挂:
1.取窗口句柄
当用户按下自动打怪后:
1._投递消息 (窗口句柄, , #Tab键, 0)
  1. .版本 2

  2. .子程序 按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值)
  3. .参数 窗口句柄, 整数型, , 接收消息的窗口句柄
  4. .参数 键代码, 整数型, , 按键的键代码
  5. .参数 状态, 整数型, 可空, 可空:按键(按下+放开) 1 输入字符 3 #按下 4 #放开
  6. .参数 是否功能键, 逻辑型, 可空, 可空为假:普通键 真:功能键 (为功能键可用于热键技能不输入字符)
  7. .局部变量 按下, 整数型
  8. .局部变量 放开, 整数型

  9. .如果 (是否功能键)
  10. 按下 = 260
  11. 放开 = 261
  12. .否则
  13. 按下 = 256
  14. 放开 = 257
  15. .如果结束
  16. .如果真 (状态 = 1)
  17. _投递消息 (窗口句柄, 258, 键代码, 0)
  18. 返回 ()
  19. .如果真结束
  20. .如果真 (状态 ≠ 4)
  21. _投递消息 (窗口句柄, 按下, 键代码, 0)
  22. .如果真结束
  23. .如果真 (状态 ≠ 3)
  24. _投递消息 (窗口句柄, 放开, 键代码, 0)
  25. .如果真结束
  26. 返回 ()
复制代码
Tab以后就找到怪了。然后设计几个热键,让用户可以自定义技能到底释放哪几个。然后按照用户要求继续模拟按键即可。
英雄岛的血、蓝之类貌似是固定值,自己用CE扫扫就知道啦~
回复

使用道具 举报

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

本版积分规则

天马阁|C/C++辅助教程|安卓逆向安全| 论坛导航|免责申明|Archiver||网站地图
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表天马阁立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2010-2021 All Right Reserved.
快速回复 返回顶部 返回列表