全面的学习 游戏外挂 编程开发 视频教程+源代码

 

有游戏分析,CALL基址分析,封包分析,外挂制作 ,逆向调试,过驱动保护等课程

课程大网如下  详情见:郁金香外挂教学网:http://bbs.yjxsoft.net

 

 

VC++外挂教程大纲(另有delphi版 大致相同)  

程安排,暂定,有可能会实时修改
开发环境:VC++6.0
分析工具主要为(OD1.1,CE5.4,CE5.5)
预计平均3天左右更新一课
www.yjxsoft.net //主站,不定期开放注册
www.yjxsoft.com //学员站,学员专用交流,永不对外开放
http://taobao.yjxsoft.com //淘宝担保交易

大家好,我是郁金香灬老师:QQ:150330575
欢迎大家参加郁金香灬技术 VC++外挂编程VIP培训班
在接下来的一段时间将由我和大家一起学习游戏外挂的分析,制作。

课程分四个大章节
初级篇,中级篇,进阶篇,高级篇
初级篇内容:编写一个完整的,简单的外挂
C++的数据类型:Byte,Word,DWORD,int,float
API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage)
CE5.4工具的使用方法
中级篇内容:调试工具的使用技巧,功能CALL的概念
调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点。
常用汇编指令与对应高级语言的转换。
游戏功能CALL概念
找第一个功能CALL
外挂框架的构建(通用)
进阶篇内容:分析游戏内部数据,分析常用功能CALL
游戏数据实践找各种功能CALL(如打怪,选怪,物品使用,技能栏之类)及相应的代码编写
高级篇内容:编写完整外挂
完成一个相对完整的外挂,实现 自动挂机,打怪,存放物品之类的功能

1 入门篇. 主要讲解CE工具使用技巧
1.1、一个最简单的外挂
1.1.1、游戏窗口数据分析(SPY++)
a、取得窗口相对坐标
b、读出游戏窗口信息GetWindowRect
c、移动鼠标指针SetCursorPos
1.1.2 用VC++写个最简单的外挂(实现游戏开局)
a、鼠拟鼠标单击mouse_event
b、鼠标指针移动还原
c、集成到startgame函数里
1.2、用CE查找棋盘数据
1.2.1、CE中的数据类型
a、数据类型:Bit,Byte,Word,Dword,float,double
b、用CE查找出坐位号;
c、保存分析数据
1.2.2、编程读出坐位号;
a、远程读取进程数据
b、打开远程进程
c、读取远程进程数据
1.2.3、用CE查出棋盘基址;
a、找棋盘数据基址
b、分析棋盘数据结构
1.2.4、读出当前棋盘数据
a、编程读出棋盘数据
b、棋盘数据显示出来
1.3、用模拟技术编制外挂
1.3.1 分析棋子与棋盘坐标关系

a、鼠标软件模拟,函数SendMessage
b、分析窗口内棋子相对坐标X,Y
c、软件模拟点击棋盘坐标x,y处的棋子
1.3.2 消掉一对棋子的算法框架
a、遍历棋盘同类型棋子配对
b、构建算法框架
1.3.3 (Check2p)大致框架(算法核心)
a、在这一对棋子间找相通路径的原理
b、(Check2p函数)框架代码
c、(CheckLine函数)检测2点是否有连通.
1.3.4 CheckLine实现
a、CheckLine函数实现
b、Check2p核心代码架构
1.3.5 Check2p完整代码实现
a、完整的Ceheck2p代码解析
b、完善CheckLine函数
1.3.6 Click2p函数实现,单消棋子功能实现
a、完成Click2p函数
b、单消一对棋子的实现
c、修改ClearPair函数
1.3.7 挂机/秒杀/
a、自动开局
b、挂机下棋
1.3.8 游戏外挂界面美化
a、添加进度条
b、界面调整
c、Slider控件属性设置
1.3.9 倒计时与棋子数(基址查找)
a、查找棋子数
b、查找倒计时
c、开局标志
1.4 编写完整外挂
1.4.1 优化自动开局函数StartGame

a、让游戏窗口高高在上
b、优化开局函数
1.4.2 去掉游戏倒计时限制
a、找到计时代码
b、动态修改游戏代码(OD使用初探)
c、去掉计时限制
1.4.3 编写完整外挂
a、功能测试
b、修改完善外挂
c、读出当前棋子数
d、秒杀实现
1.4.4 初级篇小结
a、游戏分析小结
b、编程小结

2 中级篇 以XX3D游戏为例
2.1、分析前的准备..CALL简介:
2.1.1、CALL的概念(远程调用CALL)

a、写个调用示例(假想游戏客户端)
b、用OD找CALL,初探(用OD找出我们自己写的CALL)
c、代码注入器,远程CALL调用
2.1.2、远程CALL调用代码实现(远程注入代码)(远程插入线程)
a、CreateRemoteThread API函数
b、无参数的远程CALL调用(代码实现)
2.1.3、调试工具OD简介(人物角色)血值,魔力值,坐标偏移
a、CE找出当前血值偏移
b、OD 分析出魔力值,坐标偏移
c、导出游戏关键代码
2.1.4、游戏基址概念;
a、基址+偏移 概念
b、读写内存函数 参数简介
c、编程实现读出(血值,魔力值)
2.1.5、常用汇编指令详解
a、Mov指令的几种形式
b、汇编指与高级语言的转换
c、push指令
2.1.6、内联汇编编程实例
a、加法add
b、减法sub
c、纯汇编调用函数CALL(参数的传递)
d、堆栈平衡

2.2、技能栏使用-游戏分析利器OD(OllyDbg) 讲解OD调试分析 技巧
2.2.1、吃金创药CALL

a、CE工具使用技巧
b、OD断点F2
c、分析CALL的参数
d、代码注入器测试CALL
2.2.2、编写自己的CALL测试代码
a、远程分配内存空间VirtualAllocEx
b、向游戏进程注入自己代码
c、远程调用《吃金创药》
2.3、DLL外挂框架构建
2.3.1、DLL动态链接库构建,与调用

a、建立MFC动态链接库dll
b、EXE程序中调用DLL函数
2.3.2、API与回调函数
a、键盘勾子回调函数keyProc
b、安装函数SetupFun
c、注入DLL至游戏进程空间
2.3.3、DLL中构建窗口
a、DLL中插入窗口资源
b、在游戏内创建DLL窗口
c、DLL内CALL代码书写(以吃红药为例)
2.4、选怪功能实现
2.4.1、找怪物列表基址
a、选定怪ID
b、怪物数组基址
c、怪物数组大小
2.4.2、分析怪对象属性
a、怪对象ID
b、怪与玩家距离
c、怪物死亡状态
2.4.3、遍历怪物列表
a、选怪关键代码
b、定位一个怪对象
c、选怪功能实现
2.4.4、选怪功能优化
a、OD分析选怪功能对应代码
b、写测试代码让选定怪物血条正确显示
c、集成选怪函数到SelMon()
2.5、用OD分析游戏功能CALL.《XXXXXX》为例:主要是找CALL
2.5.1、普通攻击CALL关键代码分析
a、更新游戏选怪基址
b、分析攻击CALL关键代码
c、汇编指令与应高级语言对照翻译
d、编程测试
2.5.2、挂机打怪功能
1、更新选怪CALL地址
2、优化代码结构
3、自动选怪代码编写
4、自动打怪代码编写
5、代码测试
2.5.3、物品背包数组基址+偏移分析(CE+OD)
a、确定突破口
b、回溯基址
c、用OD验证
d、推导出基址+偏移公式
2.5.4 、使用指定物品 UseGoods(int index=0);
a、算法原理
b、返回物品在背包中的下标 int GetGoodsIndex(char* name);
c、useGoods(GetGoodsIndex("金创药(小)");
2.5.5、TabCtrl控件的使用(VC++基础好的可跳过)
a、m_tab.InsertItem
b、m_tab.GetCurSel()
c、Create(IDD_PAG1,GetDlgItem(IDC_TAB))
2.5.6、TabCtrl控件BUG修证(VC++基础好的可跳过)
a、修证乱码
b、修证对齐
c、局部美化(位置大小调整)
2.5.7、捡物功能分析实现
a、捡物功能CALL分析
b、捡物CALL参数分析
c、找出所有动作CALL(打坐/普攻/捡物/交易/组队/走跑切换....)
d、测试及封装到pickgoods()函数
2.5.8: F1-F10技能数组分析
a、F1-F10技能栏数组(基址+偏移)
b、F1-F10功能调用核心代码分析
2.5.9、F1-F10功能CALL
a、找出真的功能CALL
b、F1-F10功能CALL参数分析
c、F1-F10功能CALL测试(集成功能至GameProc.h)

3、进阶篇
主要讲功能CALL的参数分析
各种常用汇编指令/浮点指令/浮点数整数转换/汇编里的指针


3.1.1、喊话功能CALL地址
a、找喊话内容地址
b、分析出关键CALL
c、测试关键CALL
3.1.2、喊话功能VC++实现
a、分析喊话CALL参数基址+偏移
b、汇编指令lea
c、字串操作REPNZ/REPNE与SCAS
d、V++代码实现
3.2.1、走路相关数据分析(为分析走路/寻路CALL做准备)
a、查找当前角色坐标(xhy)
b、查找目的地坐标(xhy)偏移+基址
c、找出相关CALL
3.2.2、走路功能CALL及相关分析
a、隐藏的push指令
b、测试走路CALL
c、确定功能CALL及参数
3.2.3、对找到的几个疑是CALL进行测试
a、分析出疑是CALL相关参数
b、对找到的CALL进行逐一测试
c、确定真正的走路CALL
3.2.4、人物走跑站状态开关分析
a、走路CALL 状态开关分析
b、分析状态开关 基址+偏移
c、分析走路目的地址相关基址+偏移
3.2.5、利用分析数据 实现走路/寻路
a、走路功能代码实现
b、测试
c、封装到walk(x,y)
d、瞬移(穿墙)
3.3、 怪物过滤
3.3.1、怪物列表关键代码分析

a、怪物列表(分析原理)
b、回溯怪物列表基址+偏移
c、取得怪物对象的公式
3.3.2、怪物属性分析
a、怪物名
b、怪物血量
c、怪物ID
d、怪物与玩家距离
e、提取特征码
3.3.3、怪物过滤的编写代码
a、读出怪物列表
b、过滤掉指定怪物
c、选定特定怪物
d、过滤打怪测试
e、选中最近怪物
3.4、 物品过滤
3.4.1、物品属性分析

a、物品ID
b、物品对象
c、物品属性分析
3.4.2、物品过滤(编程读出物品列表数据)
a、读出物品列表
b、条件判断是否捡物(距离,物品名)
c、显示出提示信息
3.4.3、捡物过滤
a、分析捡物深层CALL
b、PickID(物品ID);
c、捡物过滤
d、捡物范围控制
3.4.4、游戏多开实现
a、游戏防止多开的原理
b、找出本游戏多开的方法
c、测试验证

3.5、 组队相关
3.5.1、 选定指定角色

a、多开BUG修证
b、分析玩家属性
c、遍历玩家列表
d、选定指定玩家角色原理
e、int SelPlayEr(pchar 玩家名);
3.5.2、计算玩家间的距离(已知坐标)
a、坐标系内的点1与点2
b、2点间的距离计算公式
c、准备知识
d、planRange(int p1,int p2)函数构建
3.5.3、 组队功能
a、更新组队动作CALL
b、选定指定玩家
c、邀请指定玩家加入队伍int Invite(char* playName);
3.5.4、 离队功能
a、分析离队动作
b、逆向分析离队代码
c、初识封包
d、Rep stos [edi]
e、内存中的数据与 byte,int的对应关系
f、封装离队函数void exitTeam();
3.6、售物/购物(封包的世界)
3.6.1、售物功能封包分析
1、封包回溯,找未加密的封包
2、确家关键CALL
3、分析封包(物品数量,类型,位置)
4、功能测试SellGoods函数构建
3.6.2 售物封包参数来源分析
1、数量分析
2、出售物品类型分析
3、出售物品在背包里的格数
4、各种数据的来源
3.6.3、编程实现出售背包指定物品
1、遍历背包指定物品
2、出售背包第一格物品
3、出售背包第N格物品
3.6.4、完善售物功能
1、构建函数int FindIndex(char* name);
FindIndex//用来查询指定物品名name在背包中的位置
2、垃圾物品清单
3、遍历出售所有垃圾物品SellGoods
4、移植函数到Gameproc.h
3.6.5、打开NPC购物/售物对话框
1、打开NPC对话
2、打开NPC(买进/卖出)窗口
3、封装到int OpenNpc_buysell();测试
3.6.6、购物功能封包分析
1、封包回溯,找未加密的封包
2、确家关键CALL
3、分析封包
4、数量分析
5、出售物品类型分析
6、功能测试


3.7、 摆摊.开店
a、开店CALL参数分析
b、写代码测试

4、高级篇
4.0、编写相对完整的外挂
4.1、游戏更新后的外挂更新
4.2、脚本功能
4.3、盗号的实现

 

封包分析

1.明文发包CALL的找法以及分析
2.明文收包CALL的找法以及分析
3.调用明文发包call进行工作lol
4.调用明文收包call进行工作lol
5.分析各个服务器连接地址以及端口
6.分析原始封包1 登陆上
7.分析原始封包1 登陆中
8.分析原始封包1 登陆下
9.自写socket 进行纯发包操作的学习
10.自写socket 进行纯发包操作的学习
11.分析原始封包2 攻击
12.分析原始封包3 移动
13.聊天包的分析
14.某游戏资源解压分析1
15.某游戏资源解压分析2
16.某游戏资源解压分析3
17.组队包分析
18.NPC对话包分析
19.地图的分析
20.寻路算法的应用
21.答题验证的分析
22.LUA脚本的实现
23.外挂本身验证的实现
24.针对某成熟脱机挂代码进行分析,并取其精华
25.针对某成熟脱机挂代码进行分析,并取其精华2

 

逆向分析课程

1.VC6 和Vs2008 反汇编代码分析和区别查看
2.针对反汇编代码指令的简单学习1
3.针对反汇编代码指令的简单学习2
4.针对反汇编代码指令的简单学习3
5.分析VC代码生成的流程,讲解符号和pdb文件的用处
6.动态调试加静态反汇编的技巧
6-1(IDA的讲解需要两课)
7.C语句的反汇编代码还原1
8.C语句的反汇编代码还原2
9.C语句的反汇编代码还原3
10.C++反汇编代码还原1
12.C++反汇编代码还原2
13.C++反汇编代码还原3
14.算法的分析1
15.算法的分析2
16.某热门游戏外挂驱动反汇编代码分析以及还原(针对6-8个外挂进行分析)
17.某下载者代码分析还原
18.某CrackMe算法代码还原
19.压缩壳核心代码分析
20.压缩壳核心代码分析2
21.加密壳核心代码分析
22.加密壳核心代码分析2
23.浅析VMP代码
24.人肉分析VMP代码
25.人肉分析VMP代码2
26.分析网络验证代码
27.分析外挂网络验证核心算法
28.分析外挂网络验证核心算法2
29.分析外挂网络验证核心算法3
30.分析外挂网络验证核心算法4
31.分析ollydbg 1.1
32.分析ollydbg 1.1 (2)
33.分析ollydbg 1.1 (3)
34.分析ollydbg 1.1 (4)
35.课程总结

 

驱动编程+bypass游戏保护

1.DDK的build (easy sys)
2.写一个helloddk 
3.helloddk的头文件部分的结构分析
4.操作系统的基本概念以及API得流程
5.驱动各个文件的分析
6.编写驱动加载工具
7.windbg +debugview的使用
7-1 单机+VM调试驱动的方法
8.KMD驱动的基本结构
9.驱动的内存结构,分页和非分页
10.断言
11.字符串操作
12.文件读写操作
13.注册表操作
14.IRP派遣历程 
15.io控制代码的编写 与ring3程序通信的关键
16.IRQL等级的分析
17.多线程 互斥体
18.自选锁的学习和实际应用
19.ring0中的定时器
20.分层驱动的概念
21.直接I/O端口操作 winio.sys传说中的驱动模拟键盘
22.磁盘过滤驱动的编写,键盘过滤的编写(GameMon.dxx使用的)
23.内核函数的使用
 
猥琐篇
1.反汇编引擎的选择
lde xde 
2.切入ring0的几种方法
3.SSDT HOOK
4.inline hook
5.idt hook
6.object hook
7.shadow ssdt hook
8.杀游戏进程的方法
9.进程隐藏
10.文件隐藏
11.某 ark驱动代码分析
12.某 ark驱动代码分析2
13.自写一个山寨ark
14.某游戏反键盘模拟的分析
15.多开检测的分析
16.代码完整性的分析
17.txxxx.sys黑盒分析
18.shxxx反调试分析
19.apoxxx.sys保护系统分析
20.perfectxxx.sys保护系统分析
21.x-trap 保护系统分析
20.hackxxxx保护系统分析
21.Npxxxxxx保护系统分析

 

 

郁金香外挂教学网:http://bbs.yjxsoft.net

你可能感兴趣的:(全面的学习 游戏外挂 编程开发 视频教程+源代码)