设为首页收藏本站

鑫郁飞网络技术-郁金香灬外挂技术

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

郁金香 外挂开发(实战)郁金香 终身VIP 尊贵特权郁金香 VIP学员办理任鸟飞2015外挂教程
◆招传奇霸业辅助作者◆论坛VIP会员账号郁金香游戏外挂制作 终极教程   ◆招传奇霸业辅助作者◆
查看: 85025|回复: 90

网授(从零开始 写外挂,含C,C++,汇编,外挂,过保护等)

  [复制链接]
发表于 2013-6-6 19:45:18 | 显示全部楼层 |阅读模式
需要的 请联系QQ 150330575
郁金香网授培训无需基础(内含C++汇编逆向挂过保护等内容)
网授培训班2188元价格有可能随教程更新而浮动(收.取.不.退)
(以下内容,如果有歧义的地方,本店具有最终解释权)
  http://yjxsoft.taobao.com 办理学员
http://item.taobao.com/item.htm? ... ;amp;id=37655539888  点此办理学员
大纲整理修整细化中...
不断修整扩展中...//确定最终大纲后会去掉此行
内容:实际学习中,内容及内容安排顺序略有变更及扩展,最终解释权归郁金香灬老师
大纲整理修整细化中...
一、C语言基础部分(115课)
视频教程更新进度...
视频教程更新进度...
001-VS2008安装.7z
002-课创建C程序.7z
003-剖析一个简单的程序.7z
004-printf函数的参数和控制符.7z
006-详解整型变量.7z
007-整型变量和常量.7z
008-浮点数和浮点数变量.7z
009-类型间的转换.7z
010-字符类型char.7z
011-赋值操作符和数学函数.7z
012-条件判断和逻辑运算符.7z
013-条件语句if和获取键盘输入.7z
014-逻辑运算符和else-if.7z
015-switch语句.7z
016-goto语句.7z
017-for循环语句.7z
018-while循环.7z
019-dowhile循环.7z
020-循环的嵌套.7z
021-再谈for循环执行流程.7z
022-循环中Break和continue.7z
023-强行中止多层循环.7z
024-数组及应用.7z
025-多维数组的初始化和遍历.7z
026-char数组和字符串文本.7z
027-字串链接.7z
028-字串比较.7z
029-字串查找搜索.7z
030-字符串转换.7z
031-指针.7z
032-指针运算与数组.7z
033-常量指针.7z
034-用指针访问多维数组.7z
035-动态数组,指针与动态分配内存.7z
036-以多维数组的形式访问动态内存.7z
037-分配内存及释放内存.7z
038-实践编写计算器1.7z
039-计算器2从字串里提取数字.7z
040-计算器3分离出运算符.7z
041-计算器4计算结果.7z
042-计算器5计算结果加减运算.7z
043-变量作用域和生存周期.7z
044-函数和参数值传递.7z
045-用指针作参数和返回值的函数.7z
046-函数指针和函数指针数组.7z
047-静态变量.7z
048-在函数间共享变量.7z
049-递归.7z
050-参数数量可变的函数.7z
051-main函数及命令行参数获取.7z
052-结束程序的几种方式.7z
053-时间函数及结构化数据.7z
054-自定义数据结构及运用.7z
055-数据结构与双向链表.7z
056-单向链表的建立与遍历.7z
057-双向链表的建立与遍历.7z
058-循环的双向链表及调试监视数据.7z
059-双链表中搜索结点.7z
060-双链表中删除结点.7z
061-认识二叉树.7z
062-构建二叉树.7z
063-遍历二叉树.7z
064-有序二叉树应用.7z
065-共享内存-联合(union).7z
066-定义自己的数据类型typedef.7z
067-定义函数指针类型typedef.7z
068-文件的概念.7z
069-文件的打开关闭.7z
070-文件的读写操作.7z
071-在文件中读写字符串.7z
072格式化文件输入输出.7z
073-文件重命名与删除.7z
074-标准流和流的重定向.7z
075-错误信息和错误处理.7z
076-读写二进制文件.7z
077-文件位置相关操作fgetpos和fsetpos.7z
078-文件位置相关操作ftell和fseek.7z
079-文件共享打开_fsopen.7z
080预处理操作#define与extern.7z
081#define高级应用-多重替换.7z
082-条件编译.7z
083-绘制方框.7z
084-绘制菜单.7z
085-动态菜单.7z
086-游戏设计思路.7z
087-设计棋盘.7z
088-设计棋子.7z
089-棋子下落动画实现.7z
090-用光标控制移动.7z
091-越界检测.7z
092更新棋子数据至棋盘.7z
093底部碰撞检测.7z
094-左右碰撞检测.7z
095-多线程临界区.7z
096-自动下落的棋子.7z
097-多线程同步问题.7z
098-速度优化与随机棋子.7z
099-方块顺时针旋转.7z
100旋转冲突解决.7z
101-记分和消掉一行.7z
102-完善记分.7z
103-暂停.7z
104-游戏难度控制.7z
105-越界BUG修复.7z
106-添加声音效果.7z
107-集成音乐到EXE里边.7z
108-完善游戏A.7z
109-完善游戏B.7z
110-游戏结束检测.7z
111-重新开局.7z
112-添加棋子缓存功能.7z
113-C语言章节小结.7z
114-优化旋转算法.7z
115-新旋转算法越界检测.7z
二、2012网授C++详解目录
001-C语言与C++区别
002-C++控制台程序
003-动态内存分配new和delete
004-引用
005-初始化函数形参
006-异常抛出与捕获及处理
007-函数重载
008-函数模板
009-初识类
010-类成员函数
011-带参数的构造函数
012-访问类的私有成员
013-默认复制构造函数
014-类的友元函数
015-this指针
016-类的const对象
017-类对象数组
018-类静态成员
019-类对象指针
020-类对象引用与复制构造函数
021-类的析构函数
022-书写一个新类
023-为什么要自写复制构造函数
024-赋值出错分析
025-重载赋值运算符=
026-重载大于运算符
027-重载大于运算符实现完整的比较
028-重载自增运算符++
029-C++的字符串类
030-类模板
031基类与子类
032-三种继承方式下的访问
033-友元类与继承访问级别
034-虚函数概念
035-抽像类
036-嵌套类
037-类类型间的转换
038-多继承与虚基类
039-Windows编程概念
040-控件事件及消息映射
041-构建界面
042-使用EDIT控件
043-添加控件变量
044-计算器输入功能实现
045-CString,string,char字符串间的转换
046-计算器-MFC编程
047-MFC计算器-加法运算
048-MFC计算器-完善加法运算
049-MFC计算器-实现四则运算
050-MFC计算器-清零和添加取模运算
051-添加菜单资源
052-为菜单项添加事件代码
053-剪贴板操作-复制功能
054-剪贴板操作-粘贴功能
055-CHAR和WCHAR类型的相互转换
056-让剪贴板支持Unicode格式
057-光标位置及选中
058-限制输入功能
059-扩展CEdit类
060-弹出菜单
061-完善弹出菜单的复制功能
062-窗口置顶及菜单复选
063-复选框的运用
064-添加新的窗口资源
065-单选按钮使用
066-组合框CComboBox
067-列表框CListBox
068-CSliderCtrl(滑块)控件
069-CSpinButtonCtrl数字调节控件
070-CProgressCtrl进度条控件
071-自定义MFC程序启动窗口
072-CTabCtl选项卡控件SysTabControl32
073-给选项卡控件添加属性页
074-CListCtrl列表视图控件,SysListView32
075-添加显示图标CListCtrl与CImageList
076-查找文件,提取文件图标
077-打开外部文件ShellExecute
078-ClistCtl报表格式
079-CHotKeyCtrl控件与注册热键
080-CStatic类与Picturecontrol控件
081-CFileDailog与动态显示图片
082-CTreeCtrl控件(TreeControl)
083-用CtreeCtr遍历目录,删除无效资源
084-播放AVI动画,CAnimateCtrl控件
085-IP地址控件,CIPAddressCtrl
086-动态创建控件
087-动态控件CWnd.CreateEx,Spy++工具
088-为动态控件绑定事件方法一
089-为动态控件绑定事件方法二
090-MFC定时器(Timer)相关
091-API定时器(成员函数作回调函数,初识汇
092-进程的诞生与死亡
093-线程的诞生与死亡
094-进程优先级
095-线程优先级
096-多线程编程及时间片占用测试,自定义消息
097-多线程,GDI绘图,DC,HDC,CDC
098-多线程绘图,WM_PAINT消息
099-多线程,进程亲缘性,线程亲缘性,画笔CPen
100-GDI类与CDC类,Cpen
101-GDI子类画刷CBrush及样式
102-位图(CBitmap类)与画刷
103-GDI子类CFont(字体类)
104-GDI子类CRgn(区域类)
105-CRgn创建多边形区域CreatePolygonRgn
106-CRgn创建多个多边形区域CreatePolyPolygonRgn
107-合并多个区域CombineRgn
108-异形窗口的创建(区域类运用)
109-仿游戏登录窗口(CRgn运用)
110-RGN区域信息存取(CRgn运用)
111-CFile类,文件存取Rgn信息
112-套接字编程(TCP,IP)Client,Server
113-套接字编程(绑定端口,监听)
114-套接字编程客户端(连接,收发数据)
115-多客户服端数据收发
116-MFC里的套接字类CSocket
117-用CSocket编写服务端程序
118-CSocket完善服务端程序
119-CSocket编写客户端程序
120-完善套接字程序
121-套接字编程(UDP篇)
122-套接字客户端(UDP)
123-Csocket套接字(UDP篇)
124-静态链接库
125-动态链接库(dll)+
126-动态载入DLL,动态定位导出符号+
127-MFC动态链接库(dll)+
128-显示dll中的窗口+
129-(注入Dll)键盘勾子SetWindowHookEx+......
1入门篇(穿插讲C/C++基础编程,简单的游戏数据分析,程序算法设计).
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.4CheckLine实现
a、CheckLine函数实现
b、Check2p核心代码架构
1.3.5Check2p完整代码实现
a、完整的Ceheck2p代码解析
b、完善CheckLine函数
1.3.6Click2p函数实现,单消棋子功能实现
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、CreateRemoteThreadAPI函数
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)
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(intindex=0);
a、算法原理
b、返回物品在背包中的下标intGetGoodsIndex(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、intSelPlayEr(pchar玩家名);
3.5.2、计算玩家间的距离(已知坐标)
a、坐标系内的点1与点2
b、2点间的距离计算公式
c、准备知识
d、planRange(intp1,intp2)函数构建
3.5.3、组队功能
a、更新组队动作CALL
b、选定指定玩家
c、邀请指定玩家加入队伍intInvite(char*playName);
3.5.4、离队功能
a、分析离队动作
b、逆向分析离队代码
c、初识封包
d、Repstos[edi]
e、内存中的数据与byte,int的对应关系
f、封装离队函数voidexitTeam();
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、构建函数intFindIndex(char*name);
FindIndex//用来查询指定物品名name在背包中的位置
2、垃圾物品清单
3、遍历出售所有垃圾物品SellGoods
4、移植函数到Gameproc.h
3.6.5、打开NPC购物/售物对话框
1、打开NPC对话
2、打开NPC(买进/卖出)窗口
3、封装到intOpenNpc_buysell();测试
3.6.6、购物功能封包分析
1、封包回溯,找未加密的封包
2、确家关键CALL
3、分析封包
4、数量分析
5、出售物品类型分析
6、功能测试
3.7、摆摊.开店
3.7.1开店封包分析
a、店名分析
b、封包参数分析
c、为TAB选项卡2添加内容
d、不同CPP之间共享函数及变量的方法
d、写申请开店代码测试
3.7.2开店封包(挂店物品分析)
a、分析封包
b、封包出售物品的格式分析
c、写代码测试

4、高级篇
4.0、编写相对完整的外挂
4.0.1、窗口界面整理
a、常规选项卡
b、保护选项卡
c、捡物选项卡
d、喊话选项卡
4.0.2、常规选项卡-自动打怪函数构建
a、关联变量
b、选怪函数优化
c、共享变量extern
d、算法设计
e、功能测试
4.0.3、保护选项卡-自动补红补蓝函数构建
a、402中的BUG修整
b、算法设计
c、编写代码
d、功能测试
4.0.4、捡物选项卡-自动捡物函数构建
a、算法设计
b、编写代码
c、功能测试
4.0.5、喊话选项卡-自动喊话设置
a、喊话功能算法设计
b、编写代码
c、功能测试
4.1、游戏更新后的外挂更新
4.2、脚本功能
4.3、获取账号与密码的实现
4.3.1_D版
001通用性盗号
a、键盘勾子实现。
b、拦截键盘信息。
c、取得大致的密码(精确度90%左右,视密码复杂度而定)
002、精确盗号实现
a、针对指定的游戏分析.
b、用户模式下的inlinehook
c、取得准确的账号密码
4.3.2_C版

五、补更内容
5.1、遍历怪物列表2.4.3补更
a、用OD调试游戏中的DLL异常
b、VC异常处理
c、C/C++异常处理





1.1DDK及VC6.0/7.0/9.0的安装
1.1.1安装VC++6.0-1课
1.1.2安装VS2003-VC++7.0-2课
1.1.2安装VS2008-VC++9.0-3课
1.1.3安装VC助手-4课
1.1.5安装DDK-5课
1.2驱动开发VC环境安装配置
1.2.1VC6环境编译驱动-6课
A、VC6驱动编译配置
B、VC6集成环境下编译驱动
1.2.2VS2003环境编译驱动-7课
A、VC7驱动编译配置
B、VC7集成环境下编译驱动
1.2.3VS2008环境编译驱动-8课
A、VC9驱动编译配置
B、VC9集成环境下编译驱动
1.3NT式驱动
1.3.1编写一个名为DDK_HelloWorld简单的驱动-9课
A、VC6集成环境下书写代码
驱动入口函数DriverEntry
入口函数参数DriverObject和RegistryPath
B、书写SOURCES文件
C、书写makefile文件
D、用DDK-Build环境编译
1.3.2为DDK_HelloWorld添加卸载例程-10课
A、输出调试信息-KdPrint
B、认识PDRIVER_OBJECT结构
C、注册驱动卸载例程
D、卸载例程回调函数构建
E、查看驱动调试信息
1.3.3用工具过驱动保护(确定学习方向)-11课
A、用户层至内核的隐秘通道
B、浅谈过保护原理
C、实战过XX游戏驱动保护,让OD,CE正常附加调试
D、小结
1.3.4为DDK_HelloWorld添加设备例程-12课
A、相关内核API介绍
B、重要数据结构驱动对象DRIVER_OBJECT
C、重要数据结构设备对象DEVICE_OBJECT
D、添加创建设备的例程
E、用工具查看驱动及驱动设备
1.3.5VM+windbg安装13课
A、安装VM虚拟机
B、在VM里安装操作系统
C、安装windbg
D、windbg和VM的相关配置
E、启用windbg双机调试
1.3.6实战用windbg调试自己驱动DDK_HelloWorld-14课
A、用户层调试和内核调试区别
B、如何下断跟踪
C、F10步过和F11步进
D、查看寄存器相关信息
E、源代码调试与机器码调试
1.3.7DDK_HelloWorld卸载例程细化-15课
A、再看DEVICE_OBJECT结构
B、删除符号链接
C、删除设备
D、测试卸载例程
1.3.8为DDK_HelloWorld添加默认派遣例程-16课
A、初识IRP
B、一个简单的IRP处理函数
C、IRP.IoStatus结构
D、IoCompleteRequest函数
1.4编写自己的驱动过游戏保护(以11课分析为例)
1.4.1需要具备的理论知识-17课
A、了解SSDT结构
B、由SSDT索引号获取当前函数地址
C、如何获取索引号
D、获取起源地址-判断SSDT是否被HOOK
E、如何向内核地址写入自己代码
1.4.2读出SSDT表当前函数地址-18课
A、引用KeServiceDescriptorTable表
B、通过ServiceTableBase+偏移读出当前函数地址
C、用windbg测试读取的值
1.4.3读出原函数地址-19课
A、集成上一课代码至GetNt_CurAddr函数
B、MmGetSystemRoutineAddress
C、书写GetNt_OldAddr函数
D、测试结果
1.4.4JMP地址转换公式推导-20课
A、JMP地址转换公式推导
B、计算实际地址函数RealJmp_Addr
C、测试
1.5绕过SSDT驱动保护-21课
A、去掉页面保护
B、写入InLineHOOK代码
C、用OD附加测试效果
D、反HOOK代码
1.6NT式驱动的安装-22课
A、OpenSCManager
B、CreateService
C、OpenService
D、StartService
E、CloseServiceHandle
F、集成到loadNTDriver函数
1.7NT式驱动的卸载-23课
A、卸载驱动流程
B、内核函数DeleteService
C、内核函数ControlService
D、构建UnLoadSys函数
E、测试并查看调试信息
1.8驱动代码中C和C++代码区别-24课
A、函数调用约定
B、C和C++编译方式
C、用C++方式编译驱动
D、C代码升级至C++
E、优化21课的代码
1.9、再谈VC环境配置-25课
A、编译选项C/C++ProjectOption
B、链接选项LinkProjectOption
C、测试所编译驱动
二、中级篇
2.1、手动加载NT式驱动(非工具)-26课
A、注册表
B、手动运行驱动
C、手动停止驱动
2.2、应用程序与驱动交互访问(缓冲模式)
2.2.1、数据交换原理-27课
A、用户层传入数据
B、驱动层接收数据
C、驱动层回传数据级用户层
2.2.2、实战EXE和SYS通信-28课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
2.3、应用程序与驱动交互访问(直接模式)-29课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、预编译指令#pragma#ifndef#endif
2.4、应用程序与驱动交互访问(其它模式)-30课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、驱动中的异常处理
2.5、再谈SSDTHOOK驱动保护原理-31课
A、初识内核进程相关结构
B、内核函数PsGetCurrentProcess
C、进程保护原理
D、实例测试
2.6、自写驱动保护XX进程-32课
A、HOOKSSDT
B、构建自己的内核函数
C、构建Hook和UnHook函数
D、修改EXE和SYS对应源代码(实现所谓保护)
E、测试效果
2.7、驱动中的内存管理-33课
A、物理内存
B、虚拟内存
C、Ring0地址和Ring3地址
D、驱动程序和进程的关系
E、分页和非分页内存
F、分配内核内存
2.8、内存管理相关内核API-34课
A、RtlCopyMemory,RtlCopyBytes和RtlMoveMemory
C、RtlZeroMemory和RtlFillMemory
D、RtlEqualMemory
E、ExAllocatePool和ExFreePool
F、重载new和delete操作符
2.9.1在认识链表结构exe部分-35课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表的遍历
2.9.2在驱动中使用链表sys部分-36课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表数据的删除
E、链表的遍历
2.A.1驱动下的异常处理-37课
A、返回状态值
B、检查内存的可用性
C、异常处理try-except
D、异常处理try-finally
E、断言
2.A.2内核模式下的字串操作-38课
A、ASCII字符串和UNICODE字符串
B、ANSI_STRING字符串和UNICODE_STRING字符串
C、字符串的初始化与销毁
D、字符串复制,比较,(大小写,整数和字串)相互转换
E、ANSI_STRING字符串和UNICODE_STRING字符串相互转换
2.A.3内核模式下的文件操作-39课
A、文件的创建
B、文件的打开
C、获取和修改文件属性
D、写文件和读文件
三、进阶篇(进程保护,RootKit)
3.1应用层勾子
3.1.1IAT表-40课
A、初识IAT
B、IAT表相关结构
C、读出IAT项
D、编写代码测试分析
E、HOOKIAT
F、测试分析
3.1.2应用层勾子InLineHOOK-41课
A、InLineHOOK原理分析
B、InLineHOOK代码编写
C、InLineHOOK代码测试
3.2内核勾子
3.2.2ShadowSSDT-42课
A、ShadowSSDT表基址
B、ShadowSSDT表结构
C、ShadowSSDTHOOK
3.2.3绕过所有用户层HOOK-43课
A、分析API函数原理
B、自写API函数
C、SYSENTER指令
D、硬编码_emit
E、模拟FindWindow函数
3.2.4驱动InLineHOOK实例-44课
A、分析等HOOK函数参数
B、选取HOOK地址
C、构建HOOK代码
D、实现HOOK
E、测试效果
3.2.5认识IDT表-45课
A、反断点的一些原理
B、认识IDT表
C、IDT表相关结构
D、读出IDT表-sidt指令
E、测试
3.2.6IDTHOOK-46课
A、实例演示
B、替换IDT处理函数
D、IDTHOOK代码书写
D、测试效果
四、高级篇--驱动逆向(实例分析)
4.1XX游戏驱动保护分析(实例A)
4.1.1、XX游戏驱动保护分析(实例A)-47课
A、保护情况分析
B、猜测相关原理
C、过保护让CE能查找到数据的相关分析
D、过保护让CE能修改数据的相关分析
4.1.2、XX游戏过保护分析(实例B)-48课
A、分析游戏进程保护
B、分析游戏数据读取保护
C、分析游戏数据写入保护
4.2、XX游戏驱动保护代码书写
4.2.1XX游戏驱动保护代码书写-49课
A、定位特征码函数FindCode_Address构建
B、定位NtOpenThread
C、定位NtOpenProcess
D、定位NtReadVirtualMemory
E、定位NtWriteVirtualMemory
F、CALL与JMP指令的区别
G、构建相应的替换函数
4.2.2XX游戏驱动保护代码书写-50课
A、恢复NtOpenThread
B、恢复NtOpenProcess函数
C、恢复NtReadVirtualMemory让CE可读
D、恢复NtWriteVirtualMemory让CE可写
E、Ret指令详解
F、Hook代码编写并测试

1.1DDK及VC6.0/7.0/9.0的安装
1.1.1安装VC++6.0-1课
1.1.2安装VS2003-VC++7.0-2课
1.1.2安装VS2008-VC++9.0-3课
1.1.3安装VC助手-4课
1.1.5安装DDK-5课
1.2驱动开发VC环境安装配置
1.2.1VC6环境编译驱动-6课
A、VC6驱动编译配置
B、VC6集成环境下编译驱动
1.2.2VS2003环境编译驱动-7课
A、VC7驱动编译配置
B、VC7集成环境下编译驱动
1.2.3VS2008环境编译驱动-8课
A、VC9驱动编译配置
B、VC9集成环境下编译驱动
1.3NT式驱动
1.3.1编写一个名为DDK_HelloWorld简单的驱动-9课
A、VC6集成环境下书写代码
驱动入口函数DriverEntry
入口函数参数DriverObject和RegistryPath
B、书写SOURCES文件
C、书写makefile文件
D、用DDK-Build环境编译
1.3.2为DDK_HelloWorld添加卸载例程-10课
A、输出调试信息-KdPrint
B、认识PDRIVER_OBJECT结构
C、注册驱动卸载例程
D、卸载例程回调函数构建
E、查看驱动调试信息
1.3.3用工具过驱动保护(确定学习方向)-11课
A、用户层至内核的隐秘通道
B、浅谈过保护原理
C、实战过XX游戏驱动保护,让OD,CE正常附加调试
D、小结
1.3.4为DDK_HelloWorld添加设备例程-12课
A、相关内核API介绍
B、重要数据结构驱动对象DRIVER_OBJECT
C、重要数据结构设备对象DEVICE_OBJECT
D、添加创建设备的例程
E、用工具查看驱动及驱动设备
1.3.5VM+windbg安装13课
A、安装VM虚拟机
B、在VM里安装操作系统
C、安装windbg
D、windbg和VM的相关配置
E、启用windbg双机调试
1.3.6实战用windbg调试自己驱动DDK_HelloWorld-14课
A、用户层调试和内核调试区别
B、如何下断跟踪
C、F10步过和F11步进
D、查看寄存器相关信息
E、源代码调试与机器码调试
1.3.7DDK_HelloWorld卸载例程细化-15课
A、再看DEVICE_OBJECT结构
B、删除符号链接
C、删除设备
D、测试卸载例程
1.3.8为DDK_HelloWorld添加默认派遣例程-16课
A、初识IRP
B、一个简单的IRP处理函数
C、IRP.IoStatus结构
D、IoCompleteRequest函数
1.4编写自己的驱动过游戏保护(以11课分析为例)
1.4.1需要具备的理论知识-17课
A、了解SSDT结构
B、由SSDT索引号获取当前函数地址
C、如何获取索引号
D、获取起源地址-判断SSDT是否被HOOK
E、如何向内核地址写入自己代码
1.4.2读出SSDT表当前函数地址-18课
A、引用KeServiceDescriptorTable表
B、通过ServiceTableBase+偏移读出当前函数地址
C、用windbg测试读取的值
1.4.3读出原函数地址-19课
A、集成上一课代码至GetNt_CurAddr函数
B、MmGetSystemRoutineAddress
C、书写GetNt_OldAddr函数
D、测试结果
1.4.4JMP地址转换公式推导-20课
A、JMP地址转换公式推导
B、计算实际地址函数RealJmp_Addr
C、测试
1.5绕过SSDT驱动保护-21课
A、去掉页面保护
B、写入InLineHOOK代码
C、用OD附加测试效果
D、反HOOK代码
1.6NT式驱动的安装-22课
A、OpenSCManager
B、CreateService
C、OpenService
D、StartService
E、CloseServiceHandle
F、集成到loadNTDriver函数
1.7NT式驱动的卸载-23课
A、卸载驱动流程
B、内核函数DeleteService
C、内核函数ControlService
D、构建UnLoadSys函数
E、测试并查看调试信息
1.8驱动代码中C和C++代码区别-24课
A、函数调用约定
B、C和C++编译方式
C、用C++方式编译驱动
D、C代码升级至C++
E、优化21课的代码
1.9、再谈VC环境配置-25课
A、编译选项C/C++ProjectOption
B、链接选项LinkProjectOption
C、测试所编译驱动
二、中级篇
2.1、手动加载NT式驱动(非工具)-26课
A、注册表
B、手动运行驱动
C、手动停止驱动
2.2、应用程序与驱动交互访问(缓冲模式)
2.2.1、数据交换原理-27课
A、用户层传入数据
B、驱动层接收数据
C、驱动层回传数据级用户层
2.2.2、实战EXE和SYS通信-28课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
2.3、应用程序与驱动交互访问(直接模式)-29课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、预编译指令#pragma#ifndef#endif
2.4、应用程序与驱动交互访问(其它模式)-30课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、驱动中的异常处理
2.5、再谈SSDTHOOK驱动保护原理-31课
A、初识内核进程相关结构
B、内核函数PsGetCurrentProcess
C、进程保护原理
D、实例测试
2.6、自写驱动保护XX进程-32课
A、HOOKSSDT
B、构建自己的内核函数
C、构建Hook和UnHook函数
D、修改EXE和SYS对应源代码(实现所谓保护)
E、测试效果
2.7、驱动中的内存管理-33课
A、物理内存
B、虚拟内存
C、Ring0地址和Ring3地址
D、驱动程序和进程的关系
E、分页和非分页内存
F、分配内核内存
2.8、内存管理相关内核API-34课
A、RtlCopyMemory,RtlCopyBytes和RtlMoveMemory
C、RtlZeroMemory和RtlFillMemory
D、RtlEqualMemory
E、ExAllocatePool和ExFreePool
F、重载new和delete操作符
2.9.1在认识链表结构exe部分-35课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表的遍历
2.9.2在驱动中使用链表sys部分-36课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表数据的删除
E、链表的遍历
2.A.1驱动下的异常处理-37课
A、返回状态值
B、检查内存的可用性
C、异常处理try-except
D、异常处理try-finally
E、断言
2.A.2内核模式下的字串操作-38课
A、ASCII字符串和UNICODE字符串
B、ANSI_STRING字符串和UNICODE_STRING字符串
C、字符串的初始化与销毁
D、字符串复制,比较,(大小写,整数和字串)相互转换
E、ANSI_STRING字符串和UNICODE_STRING字符串相互转换
2.A.3内核模式下的文件操作-39课
A、文件的创建
B、文件的打开
C、获取和修改文件属性
D、写文件和读文件
三、进阶篇(进程保护,RootKit)
3.1应用层勾子
3.1.1IAT表-40课
A、初识IAT
B、IAT表相关结构
C、读出IAT项
D、编写代码测试分析
E、HOOKIAT
F、测试分析
3.1.2应用层勾子InLineHOOK-41课
A、InLineHOOK原理分析
B、InLineHOOK代码编写
C、InLineHOOK代码测试
3.2内核勾子
3.2.2ShadowSSDT-42课
A、ShadowSSDT表基址
B、ShadowSSDT表结构
C、ShadowSSDTHOOK
3.2.3绕过所有用户层HOOK-43课
A、分析API函数原理
B、自写API函数
C、SYSENTER指令
D、硬编码_emit
E、模拟FindWindow函数
3.2.4驱动InLineHOOK实例-44课
A、分析等HOOK函数参数
B、选取HOOK地址
C、构建HOOK代码
D、实现HOOK
E、测试效果
3.2.5认识IDT表-45课
A、反断点的一些原理
B、认识IDT表
C、IDT表相关结构
D、读出IDT表-sidt指令
E、测试
3.2.6IDTHOOK-46课
A、实例演示
B、替换IDT处理函数
D、IDTHOOK代码书写
D、测试效果
四、高级篇--驱动逆向(实例分析)
4.1XX游戏驱动保护分析(实例A)
4.1.1、XX游戏驱动保护分析(实例A)-47课
A、保护情况分析
B、猜测相关原理
C、过保护让CE能查找到数据的相关分析
D、过保护让CE能修改数据的相关分析
4.1.2、XX游戏过保护分析(实例B)-48课
A、分析游戏进程保护
B、分析游戏数据读取保护
C、分析游戏数据写入保护
4.2、XX游戏驱动保护代码书写
4.2.1XX游戏驱动保护代码书写-49课
A、定位特征码函数FindCode_Address构建
B、定位NtOpenThread
C、定位NtOpenProcess
D、定位NtReadVirtualMemory
E、定位NtWriteVirtualMemory
F、CALL与JMP指令的区别
G、构建相应的替换函数
4.2.2XX游戏驱动保护代码书写-50课
A、恢复NtOpenThread
B、恢复NtOpenProcess函数
C、恢复NtReadVirtualMemory让CE可读
D、恢复NtWriteVirtualMemory让CE可写
E、Ret指令详解
F、Hook代码编写并测试

驱动保护
1.1DDK及VC6.0/7.0/9.0的安装
1.1.1安装VC++6.0-1课
1.1.2安装VS2003-VC++7.0-2课
1.1.2安装VS2008-VC++9.0-3课
1.1.3安装VC助手-4课
1.1.5安装DDK-5课
1.2驱动开发VC环境安装配置
1.2.1VC6环境编译驱动-6课
A、VC6驱动编译配置
B、VC6集成环境下编译驱动
1.2.2VS2003环境编译驱动-7课
A、VC7驱动编译配置
B、VC7集成环境下编译驱动
1.2.3VS2008环境编译驱动-8课
A、VC9驱动编译配置
B、VC9集成环境下编译驱动
1.3NT式驱动
1.3.1编写一个名为DDK_HelloWorld简单的驱动-9课
A、VC6集成环境下书写代码
驱动入口函数DriverEntry
入口函数参数DriverObject和RegistryPath
B、书写SOURCES文件
C、书写makefile文件
D、用DDK-Build环境编译
1.3.2为DDK_HelloWorld添加卸载例程-10课
A、输出调试信息-KdPrint
B、认识PDRIVER_OBJECT结构
C、注册驱动卸载例程
D、卸载例程回调函数构建
E、查看驱动调试信息
1.3.3用工具过驱动保护(确定学习方向)-11课
A、用户层至内核的隐秘通道
B、浅谈过保护原理
C、实战过XX游戏驱动保护,让OD,CE正常附加调试
D、小结
1.3.4为DDK_HelloWorld添加设备例程-12课
A、相关内核API介绍
B、重要数据结构驱动对象DRIVER_OBJECT
C、重要数据结构设备对象DEVICE_OBJECT
D、添加创建设备的例程
E、用工具查看驱动及驱动设备
1.3.5VM+windbg安装13课
A、安装VM虚拟机
B、在VM里安装操作系统
C、安装windbg
D、windbg和VM的相关配置
E、启用windbg双机调试
1.3.6实战用windbg调试自己驱动DDK_HelloWorld-14课
A、用户层调试和内核调试区别
B、如何下断跟踪
C、F10步过和F11步进
D、查看寄存器相关信息
E、源代码调试与机器码调试
1.3.7DDK_HelloWorld卸载例程细化-15课
A、再看DEVICE_OBJECT结构
B、删除符号链接
C、删除设备
D、测试卸载例程
1.3.8为DDK_HelloWorld添加默认派遣例程-16课
A、初识IRP
B、一个简单的IRP处理函数
C、IRP.IoStatus结构
D、IoCompleteRequest函数
1.4编写自己的驱动过游戏保护(以11课分析为例)
1.4.1需要具备的理论知识-17课
A、了解SSDT结构
B、由SSDT索引号获取当前函数地址
C、如何获取索引号
D、获取起源地址-判断SSDT是否被HOOK
E、如何向内核地址写入自己代码
1.4.2读出SSDT表当前函数地址-18课
A、引用KeServiceDescriptorTable表
B、通过ServiceTableBase+偏移读出当前函数地址
C、用windbg测试读取的值
1.4.3读出原函数地址-19课
A、集成上一课代码至GetNt_CurAddr函数
B、MmGetSystemRoutineAddress
C、书写GetNt_OldAddr函数
D、测试结果
1.4.4JMP地址转换公式推导-20课
A、JMP地址转换公式推导
B、计算实际地址函数RealJmp_Addr
C、测试
1.5绕过SSDT驱动保护-21课
A、去掉页面保护
B、写入InLineHOOK代码
C、用OD附加测试效果
D、反HOOK代码
1.6NT式驱动的安装-22课
A、OpenSCManager
B、CreateService
C、OpenService
D、StartService
E、CloseServiceHandle
F、集成到loadNTDriver函数
1.7NT式驱动的卸载-23课
A、卸载驱动流程
B、内核函数DeleteService
C、内核函数ControlService
D、构建UnLoadSys函数
E、测试并查看调试信息
1.8驱动代码中C和C++代码区别-24课
A、函数调用约定
B、C和C++编译方式
C、用C++方式编译驱动
D、C代码升级至C++
E、优化21课的代码
1.9、再谈VC环境配置-25课
A、编译选项C/C++ProjectOption
B、链接选项LinkProjectOption
C、测试所编译驱动
二、中级篇
2.1、手动加载NT式驱动(非工具)-26课
A、注册表
B、手动运行驱动
C、手动停止驱动
2.2、应用程序与驱动交互访问(缓冲模式)
2.2.1、数据交换原理-27课
A、用户层传入数据
B、驱动层接收数据
C、驱动层回传数据级用户层
2.2.2、实战EXE和SYS通信-28课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
2.3、应用程序与驱动交互访问(直接模式)-29课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、预编译指令#pragma#ifndef#endif
2.4、应用程序与驱动交互访问(其它模式)-30课
A、用户层传入数据EXE部分代码
B、驱动层接收数据并处理SYS部分代码
C、驱动层返回数据至用户层
D、用户层获得处理结果
E、驱动中的异常处理
2.5、再谈SSDTHOOK驱动保护原理-31课
A、初识内核进程相关结构
B、内核函数PsGetCurrentProcess
C、进程保护原理
D、实例测试
2.6、自写驱动保护XX进程-32课
A、HOOKSSDT
B、构建自己的内核函数
C、构建Hook和UnHook函数
D、修改EXE和SYS对应源代码(实现所谓保护)
E、测试效果
2.7、驱动中的内存管理-33课
A、物理内存
B、虚拟内存
C、Ring0地址和Ring3地址
D、驱动程序和进程的关系
E、分页和非分页内存
F、分配内核内存
2.8、内存管理相关内核API-34课
A、RtlCopyMemory,RtlCopyBytes和RtlMoveMemory
C、RtlZeroMemory和RtlFillMemory
D、RtlEqualMemory
E、ExAllocatePool和ExFreePool
F、重载new和delete操作符
2.9.1在认识链表结构exe部分-35课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表的遍历
2.9.2在驱动中使用链表sys部分-36课
A、链表结构
B、链表的初始化
C、在链表中插入数据(结点)
D、链表数据的删除
E、链表的遍历
2.A.1驱动下的异常处理-37课
A、返回状态值
B、检查内存的可用性
C、异常处理try-except
D、异常处理try-finally
E、断言
2.A.2内核模式下的字串操作-38课
A、ASCII字符串和UNICODE字符串
B、ANSI_STRING字符串和UNICODE_STRING字符串
C、字符串的初始化与销毁
D、字符串复制,比较,(大小写,整数和字串)相互转换
E、ANSI_STRING字符串和UNICODE_STRING字符串相互转换
2.A.3内核模式下的文件操作-39课
A、文件的创建
B、文件的打开
C、获取和修改文件属性
D、写文件和读文件
三、进阶篇(进程保护,RootKit)
3.1应用层勾子
3.1.1IAT表-40课
A、初识IAT
B、IAT表相关结构
C、读出IAT项
D、编写代码测试分析
E、HOOKIAT
F、测试分析
3.1.2应用层勾子InLineHOOK-41课
A、InLineHOOK原理分析
B、InLineHOOK代码编写
C、InLineHOOK代码测试
3.2内核勾子
3.2.2ShadowSSDT-42课
A、ShadowSSDT表基址
B、ShadowSSDT表结构
C、ShadowSSDTHOOK
3.2.3绕过所有用户层HOOK-43课
A、分析API函数原理
B、自写API函数
C、SYSENTER指令
D、硬编码_emit
E、模拟FindWindow函数
3.2.4驱动InLineHOOK实例-44课
A、分析等HOOK函数参数
B、选取HOOK地址
C、构建HOOK代码
D、实现HOOK
E、测试效果
3.2.5认识IDT表-45课
A、反断点的一些原理
B、认识IDT表
C、IDT表相关结构
D、读出IDT表-sidt指令
E、测试
3.2.6IDTHOOK-46课
A、实例演示
B、替换IDT处理函数
D、IDTHOOK代码书写
D、测试效果
四、高级篇--驱动逆向(实例分析)
4.1XX游戏驱动保护分析(实例A)
4.1.1、XX游戏驱动保护分析(实例A)-47课
A、保护情况分析
B、猜测相关原理
C、过保护让CE能查找到数据的相关分析
D、过保护让CE能修改数据的相关分析
4.1.2、XX游戏过保护分析(实例B)-48课
A、分析游戏进程保护
B、分析游戏数据读取保护
C、分析游戏数据写入保护
4.2、XX游戏驱动保护代码书写
4.2.1XX游戏驱动保护代码书写-49课
A、定位特征码函数FindCode_Address构建
B、定位NtOpenThread
C、定位NtOpenProcess
D、定位NtReadVirtualMemory
E、定位NtWriteVirtualMemory
F、CALL与JMP指令的区别
G、构建相应的替换函数
4.2.2XX游戏驱动保护代码书写-50课
A、恢复NtOpenThread
B、恢复NtOpenProcess函数
C、恢复NtReadVirtualMemory让CE可读
D、恢复NtWriteVirtualMemory让CE可写
E、Ret指令详解
F、Hook代码编写并测试

4.2.3一个函数,绕过所有检测 51课
   A、自写内核函数
   B、测试
郁金香外挂教程,学习中...
回复

使用道具 举报

发表于 2013-6-27 15:48:17 | 显示全部楼层


郁金香外挂教程,学习中...
回复 支持 1 反对 0

使用道具 举报

发表于 2013-6-7 22:14:05 | 显示全部楼层
老大又开始更新教程了啊,欢迎,支持~

我帮你在我的论坛挂广告
www.hifyl.com
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-9 11:41:27 | 显示全部楼层
我勒个擦 各种牛!谢谢撸主无私奉献!
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-11 16:04:19 | 显示全部楼层
厉害好多啊
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-11 21:23:57 | 显示全部楼层
教程在哪?顶顶的
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-11 23:55:03 | 显示全部楼层
挽尊楼主好人你们懂的
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-12 21:40:44 | 显示全部楼层
厉害好多啊
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-18 10:34:40 | 显示全部楼层
教程在哪?顶顶的
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2013-6-25 20:21:32 | 显示全部楼层
大师,我好想要它好想学!
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|鑫郁飞网络技术-郁金香灬老师 ( 苏ICP备10059359号   

GMT+8, 2017-12-18 07:34 , Processed in 0.491172 second(s), 23 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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