
六、反游戏保护与现代游戏保护系统 A.AGP 的历史与游戏保护的结构与原理 在进入正式课程内容前,先来讲讲 AGP 也就是 AntiGameProtect 这个工具的历史。 大约在2007年的年中,当时因为 inca 的 gameguard 驱动与 的产品产生了激烈的 不可调节性 ,然后 引入了一个小型和谐该 的模块,这就是 AGP 0.1版本。但是 再引入该模块后 了一系列的 ,该模块被一些 分子用来保护游戏 程序, 而 inca 不得不升级其驱动,针对性的对 的模块进行处理,inca 的升级导致 这边模 块的升级,然后成为一种体力对抗,在这种前提与状态下,AGP 0.1 0.2 0.3按版本号升级 了,到了0.75的时候,开发员工不堪重负,决定暂停针对性对抗升级方案,而采用一种通用 的解决问题的方法,这就导致到了AGP 正式1.0的诞生,而 放下了 ,但是把AGP 1.0 开源在各种群里,通过这种方式 np 对 产品的打击。 这里就不得不说一下,2007年时的游戏保护的设计结构。 游戏保护设计者想法是: 用户的程序--系统 API--系统内核--游戏保护的钩子--系统内核 通过这么一层钩子限定程序对游戏的 能力。在那个 游戏保护的驱动通常是 要收到特定的通信码后才开始挂钩的。 于是可以猜想到 AGP0.1的原理: 拦截游戏保护挂钩的通信码直接灭杀保护。而后面游 戏保护的升级都是在对通信码加密,随机化这些工作上的。于是后面 AGP 模块升级时,做 了恢复钩子的操作,然后游戏保护升级出线程检测钩子(多重检测钩子存在性)是否存在。 于是就这样一路到了 AGP 1.0 ,AGP 1.0的原理就是自己实现需要的API,比如内存 API,进程 API ,文件 API ,通信API 等等,但是没有实现全部的 API,只是实现了少 数的 API,毕竟 只是用来做安全检测用的。 但是由于 windows 的 api 数量之多,内核接口兼容性之复杂,在 内部不断需求新 的 api 实现被加入模块后,开发与维护成本急速上升,在2008年1月末 的技术组决定 设计一种新的方案来处理问题——也就是 AGP 2.0的架构,从单纯的实现个别API 变成重 新加载 API 和内核模块来实现 产品对系统的绝对控制力。 AGP 2.0设计结构: 产品--api-- 自己的ntdll.dll-- 的驱动--执行干净的内核代码。 到这一步之后, 产品的需求完全满足了,之后 AGP 的 就和 技术组没有直 接关系了。到这一步已经绕过游戏保护基本架构对其他 限制的设计架构,也就是从架构 级上彻底的完美的解决了游戏保护的拦截(也包括了高级 Rootkit)。 由于有时候为了保护游戏账户安全,有很多对游戏 木马的调试需求, 在实际过 程中发现游戏保护会导致 的逆向分析人员无法愉快的工作——也就是不能处理样本已 经在游戏中运行的情况, 这让当时无力跟游戏 沟通的 很烦恼,于是一个新的 内部产品被提出在技术组里,就是开发一款通用性调试工具。也就是AGP 3.0版本的原型体。 在分析 AGP 3.0的原型体设计前,首先要了解游戏保护是怎么保护游戏不被调试的。游 戏保护在反调试方面主要是: (1)检测调试:检测调试对象是否存在;双机调试是否开启。 (2)修改关键调试数据(也就是破坏调试机制):DbgPort 清0 ;对象权限修改;线程 标记修改;锁定调试互斥。 (3)对调试异常进行回调过滤:IDT 挂钩;内核异常回调。 AGP 3.0的原型体,只针对其中的 DbgPort 清0 ;线程标记修改;调试对象检测;对象 权限修改;锁定调试互斥 这几个点进行了独特的设计。 AGP 3.0使用自己的一套对象句柄管理方案,这样可以轻松绕过 对象权限修改和调试 对象检测的限定(同时也绕过了后来的 HProtect 的 object hijacking (对象劫持)技术)。 这套方案,其实很简单就是自己创建一套 ObjectType 来实现对象工作(这一方法后来也用 于 的文件操作模块)。而后对使用这些对象的接口和函数进行重写(这里感谢 WRK1.1 和 WRK1.2的代码给了技术组很大的启发),在重新的过程中,直接避免了线程标记,互斥 锁定,dbgport 清0的问题,从而轻松实现了绕过游戏保护对游戏的调试的防止机制,去实 现调试功能。也就是说 AGP 3.0从原理上对过往的游戏保护进行了彻底的 。AGP 3.0原 型体之后的几次 针对了 IDT挂钩与异常回调,采取了使用最简易的VT 模型去处理解决, 主要是硬件条件所限制。 大部分的游戏保护的结构: 基本结构:其他程序--驱动拦截--内核--游戏 特殊的功能:(1)隐藏进程 (2)修改调试数据 (3)注入 DLL (只有很特殊的 才会注入 DLL)。 B.绕过游戏保护的基本原则与基本原理 游戏保护的基本结构是必须依靠和依赖一种东西,这种东西就是各种形态的挂钩,而这 些挂钩都是内核上进行的。如果有一个新的内核,不管是怎么来的,可以是自己加载文件来 的内核,这个内核肯定没有被游戏保护所修改过,那么这样的一个内核肯定可以绕过游戏保 护的基本结构了。当然如果有一种内核,游戏保护不敢去修改,不会去修改,是不是就更好 了,那这就是64位系统的好处了。(PS:这里思考如何让指定的程序执行的内核代码是重新 加载过的干净的内核代码) 在绕过游戏保护的基础结构后,就面对一个问题了,游戏保护对游戏进程可能做了隐藏。 那么这样子该怎么办?还可能修改了调试数据,导致不能调试,调试出现重启等等。那么这 样子又该怎么办? 对于隐藏进程,其实是很容易被发现的,因为游戏保护出于稳定
2、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问加。
3、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
4、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
内容suchp新a3技术培训培训hp m433,436 service training.pdf
物理试卷广东省上进联考2025-2026学年领航高中联盟高三一轮复习阶段检测(10.9-10.10).docx
物理试卷河南省天一大联考2025-2026学年(上)高三天一小高考(一)(10.21-10.22).docx
2024年镇江市高等专科学校单招职业技能测试题库及答案(各地真题).docx
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者