
网络游戏辅助教程C++版.pdf
188页课程分四个大章节初级篇,中级篇,进阶篇,高级篇初级篇内容:编写一个完整的,简单的外挂C+的数据类型:By t e,Wo r d,DWO R D,i n t,f l o a tAP I函数的调m o u s e _ e v e n t,Ge t Wi n d o w R e c t,S e t Cu r s o r P o s,F i n d Wi n d o w,S e n d M e s s a g e)CE5.4工具的使用方法中级篇内容:调试工具的使用技巧,功能CAL L的概念调试工具0D1.1的使用技巧(如硬件断点,条件断点,内存断点常用汇编指令与对应高级语言的转换游戏功能CAL L概念找第一个功能CAL L外挂框架的构建(通用)进阶篇内容:分析游戏内部数据,分析常用功能CAL L游戏数据实践找各种功能CAL L (如打怪,选怪,物品使用,技能栏之类)及相应的代码编写高级篇内容:编写完整外挂完成一个相对完整的外挂,实现自动挂机,打怪,存放物品之类的功能1入门篇.1.1、一个最简单的外挂1.1.1、游戏窗口数据分析(S P Y+)-10a、取得窗口相对坐标b、读出游戏窗口信息Ge t Wi n d o w R e c tc、移动鼠标指针S e t Cu r s o r P o s1.1.2用V C+写个最简单的外挂(实现游戏开局)-12a、鼠拟鼠标单击m o u s e _ e v e n tb、鼠标指针移动还原c、集成到s t a r t g a m e函数里1.2、用CE查找棋盘数据-141.2.1、CE中的数据类型a、数据类型:Bi t,By t e,Wo r d,Dw o r d,f l o a t,d o u b l eb、用CE查找出坐位号;c、保存分析数据1.2.2、编程读出坐位号;-15a、远程读取进程数据b、打开远程进程c、读取远程进程数据1.2.3、用CE杳出棋盘基址;-16a、找棋盘数据基址b、分析棋盘数据结构1.2.4、读出当前棋盘数据-17a、编程读出棋盘数据b、棋盘数据显示出来1.3,用模拟技术编制外挂 一 181.3.1分析棋子与棋盘坐标关系a、鼠标软件模拟,函数S e n d M e s s a g eb、分析窗口内棋子相对坐标X,Yc、软件模拟点击棋盘坐标x,y 处的棋子1.3.2 消掉对棋子的算法 框 架-20a、遍历棋盘同类型棋子配对b、构建算法框架1.3.3(Ch e c k 2p)大致框架(算法核心)-21a、在这一对棋子间找相通路径的原理b、(Ch e c k 2P 函数)框架代码c、(Ch e c k L i n e 函数)检测2点是否仃连通.1.3.4 Ch e c k L i n e 实现 23a、Ch e c k L i n e 函数实现b、Ch e c k 2P 核心代码架构1.3.5 Ch e c k 2P 完整代码实现-25a、完整的Ce h e c k 2P 代码解析b、完善Ch e c k L i n e 函数1.3.6 Cl i c k 2P 函数实现,单消棋子功能实现-33a、完成Cl i c k 2P 函数b、单消一对棋子的实现c、修改Cl e a r P a i r 函数1.3.7 挂机/秒杀/-35a、自动开局b、挂机下棋1.3.8 游戏外挂界面美化-38a、添加进度条b、界面调整c、S l i d e r 控件属性设置1.3.9 倒计时与棋子数(基址查找)-40a、查找棋子数b、查找倒计时c、开局标志1.4编写完整外挂-401.4.1优化自动开局函数S t a r t G a m ea、让游戏窗口高高在上b、优化开局函数1.4.2去掉游戏倒计时限制-42a、找到计时代码b、动态修改游戏代码(0 D 使用初探)c、去掉计时限制1.4.3 编写完整外挂-44a、功能测试b、修改完善外挂c、读出当前棋子数d、秒杀实现1.4.4 初级篇小结-46a、游戏分析小结b、编程小结2中级篇 以XX3 D游戏为例2.1、分析前的准备.C A L L简介:-492.1.1、C A L L的 概 念(远程调用C A L L)a、写个调用示例(假想游戏客户端)b、用0 D找C A L L,初探(用0 D找出我们自己写的C A L L)c、代码注入器,远程C A L L调用2.1.2、远程C A L L调用代码实现-5 1a、C r ea t eR em o t eT h r ea d A P I函数b、无参数的远程C A L L调 用(代码实现)2.1.3、调试工具0 D简介(人物角色)血值,魔力值,坐标偏移;5 3a、C E找出当前血值偏移b、0 D分析出魔力值,坐标偏移c、导出游戏关键代码2.1.4、游戏基址概念;-5 4a、基址+偏移概念b、读写内存函数参数简介c、编程实现读出(血值,魔力值)2.1.5、常用汇编指令详解-5 6a、M o v指令的几种形式b、汇编指与高级语言的转换c、p u s h指令2.1.6、内联汇编编程实例-5 8a、加法a ddb、减法s u bc、纯汇编调用函数C A L L (参数的传递)d、堆栈平衡2.2、技能栏使用-游戏分析利器OD(Ol l y D b g)2.2.1、吃金创药C A L L-5 9a、C E工具使用技巧b、0 D断点F 2c、分析C A L L的参数d、代码注入器测试C A L L2.2.2、编写自己的C A L L测试代码6 1a、远程分配内存空间V i r t u a l A H o c Exb、向游戏进程注入自己代码c、远程调用 吃金创药2.3、D L L 外挂框架构建2.3.1、D L L 动态链接库构建,与 调 用-6 2a、建立M F C 动态链接库dl lb、EXE程序中调用D L L 函数2.3.2、A P I 与回调函数6 4a、键盘勾子回调函数k ey P r o cb、安装函数S et u p F u nc、注入D L L 至游戏进程空间2.3.3、D L L 中构建窗口-6 6a、D L L 中插入窗口资源b、在游戏内创建D L L 窗口c、D L L 内C A L L 代码书写(以吃红药为例)2.4、选怪功能实现2.4.1、找怪物列表基址-6 8a、选定怪I Db、怪物数组基址c、怪物数组大小2.4.2、分析怪对象属性-7 0a、怪对象I Db、怪与玩家距离c、怪物死亡状态2.4.3、遍历怪物列表-71a、选怪关键代码b、定位一个怪对象c、选怪功能实现2.4.4、选怪功能优化-73a、0 D分析选怪功能对应代码b、写测试代码让选定怪物血条正确显示c、集成选怪函数到S e l M on O2.5、用0 D分析游戏功能C AL L.X X X X X X 为例:主要是找C AL L2.5.1、普通攻击C AL L 关键代码分析75a、更新游戏选怪基址b、分析攻击C AL L 关键代码c、汇编指令与应高级语言对照翻译d、编程测试2.5.2、挂机打怪功能-751、更新选怪C AL L 地址2、优化代码结构3、自动选怪代码编写4、自动打怪代码编写5、代码测试2.5.3、物品背包数组基址+偏 移 分 析(C E+O D)-79a、确定突破口b、回溯基址c、用0 D验证d、推导出基址+偏移公式2.5.4、使用指定物品 U se G ood s(i n t i n d e x=0);-80a、算法原理b、返回物品在背包中的下标i n t G e t G ood sI n d e x (c h ar*n am e);c、use G ood s(G e t G ood sI n d e x (金创药(小)”);2.5.5、T ab C t r l控件的使用(V C+基础好的可跳过)-84a、m _ t ab.I n se r t l t e mb m _ t ab.G e t C ur S e l ()c、C r e at e(I DD_ P AG l.G e t Dl g l t e m(I DC J,AB)2.5.6、T ab C t r l控件BU G修证(V C+基础好的可跳过)-85a、修证乱码b、修证对齐c、局部美化(位置大小调整)2.5.7、捡物功能分析实现-86a、捡物功能C AL L分析b、捡物C AL L参数分析c、找出所有动作C AL L (打坐/普攻/捡物/交易/组队/走跑切换.)d、测试及封装到p i c k g ood s()函数2.5.8:F 1-F 1 0技能数组分析-88a、F l-F l 0技能栏数组(基址+偏移)b、F 1-F 1 0功能调用核心代码分析2.5.9、F 1-F 1 0功能C AL L-90a、找出真的功能C AL Lb、F l-F l 0功能C AL L参数分析c F l-F l 0功能C AL L测试(集成功能至G am e P r oc.h)3、进阶篇主要讲功能C AL L的参数分析汇编浮点指令/浮点运行/浮点数整数转换/汇编里的指针3.1.1 喊话功能C AL L地址-93a、找喊话内容地址b、分析出关键C AL Lc、测试关键C AL L3.1.2、喊话功能V C+实现-94a、分析喊话C AL L参数基址+偏移b、汇编指令l e ac、字串操作R E P N Z/R E P N E与S C ASd、V+代码实现3.2.1、走路相关数据分析(为分析走路/寻路C AL L做准备)97a、查找当前角色坐标(x h y)b、查找目的地坐标(x h y)偏移+基址c、找出相关C A L L3.2.2、走路功能C A L L 及相关分析-9 8a、隐藏的pus h 指令b、测试走路C A L Lc、确定功能C A L L 及参数3.2.3、对找到的几个疑是C A L L 进行测试-1 0 0a、分析出疑是C A L L 相关参数b、对找到的C A L L 进行逐一测试c、确定真正的走路C A L L3.2.4、人物走跑站状态开关分析-1 0 2a、走路C A L L 状态开关分析b、分析状态开关基址+偏移c、分析走路目的地址相关基址+偏移3.2.5、利用分析数据 实现走路/寻路-1 0 4a、走路功能代码实现b、测试c、封装到w a l k(x,y)d、瞬移(穿墙)3.3、怪物过滤3.3.1、怪物列表关键代码分析-1 0 5a、怪物列表(分析原理)b、回溯怪物列表基址+偏移c、取得怪物对象的公式3.3.2、怪物属性分析-1 0 7a、怪物名b、怪物血量c、怪物I Dd、怪物与玩家距离e、提取特征码3.3.3、怪物过滤的编写代码-1 0 8a、读出怪物列表b、过滤掉指定怪物c、选定特定怪物d、过滤打怪测试e、选中最近怪物3.4、物品过滤3.4.1、物品属性分析-1 1 1a、物品I Db、物品对象c、物品属性分析3.4.2、物品过滤(编程读出物品列表数据)-1 1 2a、读出物品列表b、条件判断是否捡物(距离,物品名)c、显示出提示信息3.4.3、捡物过滤-1 1 3a、分析捡物深层C A L Lb、P i c k I D(物品I D);c、捡物过滤d、捡物范围控制3.4.4、游戏多开实现-1 1 6a、游戏防止多开的原理b、找出本游戏多开的方法c、测试验证3.5、组队相关3.5.1、选定指定角色-1 1 8a、多开BU G 修证b、分析玩家属性c、遍历玩家列表d、选定指定玩家角色原理e、i n t S e l P l a y E r (pc h a r 玩家名);3.5.2、计算玩家间的距离(已知坐标)-1 2 0a、坐标系内的点1 与点2b、2 点间的距离计算公式c、准备知识d、pl a n R a n g e(i n t pl,i n t p2)函数构建3.5.3、组队功能1 2 3a、更新组队动作C A L Lb、选定指定玩家c、邀请指定玩家加入队伍i n t I n v i te (c h a r*pl a y N a m e);3.5.4、离队功能-1 2 4a、分析离队动作b、逆向分析离队代码c、初识封包d、R e p s 。
