




已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)mmorpg反外挂技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
m m o r p g 反外挂技术的研究 计算机软件与理论 硕士生:吴晓晴 指导教师:龙冬阳教授 摘要 外挂是网络游戏特别是删o r p 6 中最大的安全性问题,外挂泛滥严重影响了 网络游戏的正常运营,针对目前删o r p g 中外挂屡禁不止的现象,研究反外挂技 术已经是刻不容缓。 本文研究了删o r p g 中各种外挂的原理和实现方式,提出了一系列反外挂措 施。重点放在网络游戏封包加密上,通过比较几种常用的对称分组密码算法,提 出了一种基于r c 5 与动态伪随机序列的封包加密算法,用动态伪随机序列的生成 方式来改变初始会话密钥,再将该会话密钥和r c 5 分组密码算法对封包进行加密 解密。另外还讨论了在此基础上的密钥管理,提出了一种简单并可修复的密钥分 配方案。 动态r c 5 封包加密算法克服了相同明文产生相同密文的缺点,同时利用r c 5 算法的快速安全的特性,打破了网络游戏一贯只用简单异或进行加密的传统,防 止了外挂的产生。同时,此算法通过编程测试,验证了时间上完全在游戏的承受 范围之内,因此是一种可行的反外挂方案。 关键词:眦o r p g ,外挂,r c 5 ,动态伪随机 t h er e s e a r c ho fa n t i c h e a tt e c h n o l o g yi nm m o r p g s o f t w a r ea n dt h e o r e t i c a lc o m p u t e rs c i e n c e n a m e :w ux i a o q i n g s u p e r v i s o r :l o n gd o n g y a n g a b s 。i r a c 。i c h e a t i n gi st h eg r e a t e s ts e c u r i t yp r o b l e mi no n l i n eg a m e se s p e c i a l l yi nm m o r p q f l o o d i n go fc h e a tb r e a k st h en o r m a lr u n n i n go fa no n l i n eg a m e b e c a u s eo ft h e f a i l u r e st op r o h i b i tc h e a t sr e p e a t e d l y , i t sv e r yu r g e n tt or e s e a r c ho nt h ea n t i c h e a t t e c h n o l o g y t h i sp a p e rd i s c u s s e st h ep r i n c i p l ea n dr e a l i z a t i o no fv a r i o u sc h e a t si nm m o r p g p u t s f o r w a r das e r i e so fa n t i c h e a t s t e p s a n dp u tt h e e m p h a s i so nt h ep a c k e t c r y p t o g r a p h y c o m p a r e dw i t hs e v e r a lp o p u l a rs y m m e t r i cb l o c kc r y p t o g r a p h i e s ,t h i s p a p e rd i s c u s s e sac r y p t o g r a p h ya l g o r i t h mb a s e do nr c 5a n da d y n a m i c p s e u d o r a n d o ms e r i a l ,u s et h em e t h o do fp r o d u c i n gt h ed y n a m i cp s e u d o r a n d o m s e r i a lt oc h a n g et h ec r y p t o g r a p h i ck e y ,a n dt h e nu s er c 5 一e c bt oe n c r y p ta n dd e c r y p t p a c k e t s i na d d i t i o n ,t h i sp a p e rp u t sf o r w a r das i m p l ea n dr e p a i r a b l ep r o j e c to f k e y d i s t r i b u t i o n t h i sd y n a m i cr c 5a l g o r i t h mc a nc o n q u e rt h ed i s a d v a n t a g eo ft h a tt h es a m e p l a i n t e x tm a k et h es a m ec i p h e r t e x t ,a n du t i l i z e st h ea d v a n t a g eo fr c 5 ss a f e t ya n d q u i c k n e s s ,b r e a k st h et r a d i t i o no fs i m p l ei n e q u i v a l e n c ep a c k e tc r y p t o g r a p h y , s oi tc a n s t o pc h e a t ss u c c e s s f u l l y b yt h ep r o g r a m m i n gr e s u l t ,t h et h e s i sa p p r o v e st h a tt i m e s p e n do nc r y p t o g r a p h yd on o ta f f e c tt h ep l a ys p e e d ,s ot h i si saf e a s i b l ea n t i c h e a t t e c h n o l o g y k e yw o r d s :m m o r p g 、c h e a t 、r c 5 、d y n a m i cp s e u d o r a n d o m i i 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 1 1 引言 第1 章绪论 网络游戏是目前i t 业内比较“火”的赢利业务,在网络经济如此不景气的 今天,网络游戏以它全新的网络概念、丰富的人文互动色彩、时尚的数字娱乐概 念等引起了人们的关注,网络游戏产业呈现出强劲的势头。据新闻出版总署主办, 游戏工作委员会与国际数据公司( i d c ) 共同承办的 2 0 0 4 年中国游戏产业报告 公布的数据,中国网络游戏市场规模在2 0 0 4 年为2 4 7 亿元人民币,比2 0 0 3 年 增长4 7 9 。预计2 0 0 9 年中国网络游戏出版市场销售收入将达到1 0 9 6 亿元2 0 0 4 年到2 0 0 9 年的年复合增长率为3 4 7 。其中,收费网络游戏又以m m o r p g ( m a s s i v e l ym u l t i p l a y e ro n l i n er o l e p l a y i n gg a m e s 2 ,即大型多人在线角色扮演 游戏) 占绝大多数。 与网络游戏的火热相对比,却是网络游戏安全的惨淡现状。一直以来,网络 游戏的安全性是国内数千万玩家和网络游戏运营商的一块心病。目前醉心于网络 游戏的玩家9 0 以上都遭遇过盗号者的侵害,外挂、木马、私服已经成为网络 游戏的公敌,甚至已经严重影响游戏厂商的运营 3 。 国内的外挂现象尤为严重,外挂泛滥给网络游戏产业带来了极大的困扰,蒙 受损失的游戏商和游戏运营商们旗帜鲜明地反对外挂。虽然游戏运营商大多采用 对使用外挂的玩家d 进行封号、删号等的处罚,但外挂仍然屡禁不止,很多外 挂使用者封号之后又继续使用外挂挂机练级,形成一个恶性循环。所以阻止外挂 的最终任务还是要在技术上下功夫,因此提出反外挂技术刻不容缓。 本文针对m m o r p g ,从研究外挂原理出发,提出了一系列反外挂的技术方 案,环环紧扣,从最大程度上减少外挂发生的可能性。重点提出了一种基于r c 5 与动态伪随机序列的封包加密算法,用初始会话密钥通过伪随机算法生成新的加 密密钥,再利用r c 5 分组密码的算法将封包加密。动态伪随机序列的算法简单 易实现,经过它作用之后,加密密钥每次不同,这样可以避免同样的明文加密成 同样的密文,增强了安全性。另外提出了一种易于实现的密钥分配方案,用初始 中山大学硕十学位论文 m m o r p g 反外挂技术的研究 密钥加密会话密钥通知客户端的方法来进行密钥的分配,这是一种可修复的密钥 分配方案。 1 2 本课题研究的意义 网络游戏吸引人的一个地方就是它的虚拟社会性,众多玩家在这个虚拟的社 会里合作、竞争,在公平的环境和共同的规则下游戏,将真切的感情带入这个虚 拟社会,外挂的出现却严重破坏了游戏的公平性。网络游戏中,外挂泛指一切作 弊程序,几乎成为“破坏游戏规则”的代名词。由于外挂的强大功能,使得网络 游戏的游戏规则和价值观几乎完全被颠覆。特别在中国市场,大大小小的网络游 戏都出现过外挂,从休闲网络游戏、棋牌对战类网络游戏到大型网络游戏,外挂 剥夺了玩家在公平游戏中的乐趣,使得大多数玩家要么选择使用外挂,要么选择 离开游戏,从而加速了游戏的灭亡,因此运营商不得不把大量精力花在对付外挂 上 4 。 在现时国内的收费网络游戏市场中,游戏类型可大致分为多人角色扮演的大 型网路游戏( m m o r p g ) 、休闲益智类和棋牌类的网络小游戏。其中玩家最多的 就是前者,因此外挂也主要存在于前者。 研究m m o r p g 中反外挂技术的意义在于: 一、外挂是网络游戏尤其是m m o r p g 中最严重,使用最普遍,影响最广泛 的安全性问题。它破坏了游戏的公平性,缩短了网络游戏的生存时间,成为玩家 心头之痛,在带给游戏生产商和运营商巨大的经济损失的同时,也影响了他们的 声誉,玩家对代理商失望,必然会影响到玩家对该代理商所代理其他游戏的信任 度,造成连锁反应。尽管运营商对外挂使用者采取封号、删号的措施,但被封号 的玩家仍然从头再来,因此外挂屡禁不止。 二、外挂在国内的使用现象尤为严重,以至于国外很多游戏对中国i p 采取 封杀的态度,禁止中国i p 登陆 5 。在国内广大游戏爱好者扼腕叹息的时候,有 没有想过造成这种状况的原因其实恰恰是玩家自己。虽然这从一方面表现出国内 的黑客水平之高,但外挂毕竟是违法的,而国内外挂的泛滥也说明了部分玩家的 道德问题,影响了中国玩家在国际上的声誉。如果游戏本身能少一点b u g ,在技 2 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 术上能尽量降低外挂的可用性,用外挂的人少了,玩家也会自觉抵制起来。同时, 应该完善有关的法律法规,对生产外挂、使用外挂的人给予一定的实际惩罚( 相 对于在游戏中的删除i d ) 。这样才能真正杜绝外挂,还网络游戏世界一片干净, 也才能改善国内玩家在国外游戏市场上的印象。 三、外挂有收费外挂和免费外挂两种,其中收费外挂以其强大的功能和与游 戏保持同步更新的优势吸引了很多惯用外挂的玩家。收费外挂主要通过网上银行 卡进行转帐,因为不是正常渠道,所以有风险。而且这样使得巨大的资金收入无 法纳税。国家在这一块法律上处于真空,数以千万计的税收付之东流 6 。 四、从密码学的角度研究网络游戏的外挂问题是一个很关键的课题,封包的 加密算法的安全能保证网络游戏很大程度上的安全 7 。同时,由于国内在这方 面的文献资料极其缺乏,而问题又相当迫切,因此本文的撰写很有意义。 1 3 研究现状 国外的网络游戏比国内发展的早,外挂出现的也早,但在国外都有明确立法 规定使用外挂是违法行为。在韩国,“使用外挂为违法行为”是明确的法律;韩 国有专门的网络警察,外挂制作或使用者一旦被举报将很快被抓获,并受到罚款 的处罚,如果情节严重则有可能遭到更严厉的处罚。在欧美,由于信用制度比较 发达,注册游戏需要用信用卡账号,如果使用违禁外挂,该信用卡号将被记录, 并将无法进行任何网络游戏 4 】。 外挂种类繁多,征对不同的外挂有不同的反外挂措施。在 7 】中,p r i t c h a r d 将外挂定义为6 种类型( r e f l e xa u g m e n t a t i o n ,a u t h o r i t a t i v ec l i e n t s ,i n f o r m a t i o n e x p o s u r e ,c o m p r o m i s e ds e r v e r s ,b u g sa n dd e s i g nl o o p h o l e s ,e n v i r o n m e n t a l w e a k n e s s e s ) ,但可惜他提到的只是f p s ( f i r s tp e r s o ns h o o m rg a m e ,第一视角射 击类游戏) 和r t s ( r e a lt i m es t r a t e g yg a m e ,实时策略游戏) 中可能出现的一些外 挂,提出了一些诸如加密封包、采用实时状态验证码和c r c ( 循环冗余码校验) 进行验证、采用同步机制等的反外挂对策。在【8 】中,j e f f y a h 研究了更多网络游 戏外挂问题,并开始建立一个对网络游戏外挂的分类法以及寻找相应的对策。他 提出了采用数字签名、设置安全协议等方法来对付外挂。在【9 】中,j e f f y a n 用网 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 络桥牌为例,分别从单人作弊和合作作弊角度讨论其中存在的安全问题,提出了 一些发现作弊和阻止作弊的方法。在d o 中,n a t h a n i e le b a u g h m a n 和b r i a nn e l l l e v i n e 分别从客户服务器模式和分布式( 又称点对点) 模式两种不同的网络游 戏架构来讨论反外挂的问题,提出了一种a s y n c h r o n o u ss y n c h r o n i z a t i o n 协议,这 种协议着重于在玩家与玩家之间的交互上保证交互的公平性,防止有玩家用作弊 程序得到一些其他玩家没有的特权从而对其他玩家造成损害。但是并不只是这种 玩家与玩家的交互可能会产生外挂,事实上在m m o r p g 中,更多的外挂是建立 在玩家自身得到一些“超人”的能力以及用机器来代替人操纵电脑的基础上,欺 骗的是服务器而不是要对其他玩家产生直接影响。 国内在反外挂的研究上处于起步阶段,由于每款特定游戏使用的外挂程序都 不一样,实际的反外挂也只能征对特定游戏来进行。目前国内一些大型网络游戏 运营商通过与金山、瑞星、江民等生产专业网络安全产品的公司合作,来达到开 发反外挂技术的目的。2 0 0 3 年1 2 月4 目,以研发防毒软件著称的瑞星公司在北 京召开网络游戏安全防盗研讨会,就其新近研发的网络游戏防盗号、反外挂等技 术,与到会各大游戏厂商进行了探讨,并宣布将把网络游戏纳入其信息安全服务 业务内 1 1 。同年1 2 月9 日,金山公司正式对外宣布,其网络游戏反外挂技术 已取得重大突破,经过长时间研发的网络游戏防外挂系统一一金山游盾经过游戏 厂商实践,已经可以作为防范外挂的有效工具正式对外推出 3 。 1 4 存在的问题 由于m m o r p g 一般采用c s 模型,客户端在玩家机器上,这就表示客户端 是不安全的,在【7 】中,p f i t c h a r d 指出“y o u r g a m e ,a l o n g w i t h e v e r y t h i n g o nt h ec h e a t e r sc o m p u t e r ,i sn o ts e c u r e t h ef i l e sa r en o t s e c u r e m e m o r yi sn o ts e c u r e s e r v i c e sa n dd r i v e r sa r en o t s e c u r e ”因此有人断言,没有1 0 0 的反外挂措施。但是我们能尽力让它难以 实现。其实这也是安全领域的一个共识:没有百分之百的安全。 那么首先要考虑的就是怎样保护客户端的安全,这里我提出了静态反跟踪和 动态反跟踪技术。然后,在尽可能地保证客户端的安全的前提下,对游戏封包采 4 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 取加密措施。由于网络游戏的实时性,我考虑尽可能简单却又较难破解的r c 5 分组密码算法,同时为了克服它对于相同明文会产生相同密文的缺陷,提出了用 一种生成动态伪随机序列的方法来动态更改密钥,增加了安全性。另外,提出了 一种简单而又可修复的密钥分配方案。 本文是对m m o r p g 提出一熬套反外挂的技术手段,并且重点是用密码学方 法对封包进行加密。加密算法经过编程测试,证明了该算法所耗时间非常短,对 游戏不会造成什么影响。因此该算法能够适用于多数m m o r p g 。 1 5 论文的结构 为了将信息安全与网络游戏这一特定领域相结合,研究网络游戏反外挂技 术,本论文从发现问题一分析问题一解决问题,系统地做了下面的研究工作。 1 研究外挂的原理和产生过程。 2 学习w i n d o w s 编程,研究反内存跟踪、反调试等技术。 3 利用密码学知识,试验加密算法和密钥分配算法的可行性。着重介绍这 部分内容。 本论文主要由五章组成。 第一章:即本章,主要介绍了网络游戏安全性问题,本课题的研究意义,目 前国内外的研究状况以及存在的问题,最后介绍了本论文的写作结构。 第二章:对网络游戏的外挂进行剖析阐述。包括它的定义、分类、原理、实 现等。 第三章:介绍了在外挂分类的基础上对几种不同的外挂的一些反外挂技术, 包括反挂机外挂、反脱机( 系统) 外挂、反封包外挂等。 第四章:本文的重点。讲述基于r c 5 与动态伪随机序列的动态r c 5 封包加密 算法,分析了它的优缺点,并讨论了密钥分配方案。 第五章:论文总结,和对本课题领域的展望。 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 第2 章m m o r p g 中外挂技术探讨 2 1m m o r p g 简介 网络游戏按其性质分为角色扮演类( m m o r p g ) 、第一视角射击类( f p s ) 、 即时战略类( r t s ) 、棋牌类、休闲动作类、益智趣味类、体育竞技类、模拟经 营类等。其中前三种为大型网络游戏,广受国内外玩家的喜爱。 m m o r p g 作为网络游戏的主流,自然有它独特的魅力。 1 m m o r p g ,即m a s s i v e l ym u l t i p l a y e ro n l i n er o l e p l a y i n gg a m e s ,大型多 人在线角色扮演游戏,也可以说成是r p g 游戏的网络版。它遵循r p g 游戏的特 点,以游戏人物为最基本的组成细胞,以人物等级、装备、技能等的发展为路线, 以任务为情节。同时又有作为线上游戏的不同于单机r p g 的地方,如人物属性 点的自由加点,玩家之间的互动( 组队或p k 等) ,没有最终的任务( 也就是说 没有结束的时候) ,以游戏的不断开发( 新地图、新技能、新职业) 来吸引玩家。 2 m m o r p g 拥有完整的社会、经济体系。建立在等级基础上的人物实力, 要求长时间的积累经验进行角色培养,在m m o r p g 中交流互动,对装备、荣誉 和其他目标的追求对玩家拥有巨大魅力,对玩家的粘合力极强。 3 m m o r p g 的众多虚拟人物背后是一个个真实的玩家,个性相异的玩家 组成了一个“真实”的网上社会,玩家和玩家打交道:一起练级、交易、p k 、 聊天,遇到新鲜的人,有新鲜的故事。往往游戏中羁绊住玩家的是玩家与玩家之 间的感情。在游戏中有爱,有恨,有喜,有悲;有不共戴天的仇家,有生死与共 的朋友、心心相印的爱人、情深意重的兄弟。在游戏中的归属感、成就感都是吸 引、保留玩家的因素。 2 2 外挂的定义与分类 什么是外挂 1 2 ? 目前并没有一个统一的定义。在英文里,用的是“t h e a t ” 6 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 一词,表明了外挂的目的就是欺骗、作弊等。在计算机中,外挂一般是指一个程 序通过某种事件触发而得以挂接到另外一个程序的空间里( 常用的触发事件有键 箍触发,鼠标触发,消息触发等) ,挂接的目的通常是想改变被挂接程序的运行 方式。现在的游戏外挂就是将外挂程序挂接到游戏程序当中,协助玩家自动产生 游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现各种功能的增 强。可以说,外挂就是位于网络游戏主程序之外,直接作用于网络游戏主程序, 从而自动产生游戏动作、修改游戏网络数据包而到达自动练级、获取“超人”的 能力等的功能。 2 2 1 外挂的起源与发展 早在单机版游戏时代,就有了修改游戏的工具一一游戏修改器,如金山游侠、 f p e ( f i x p e o p | e e x p e r t ,整人专家) ,都是直接作用于内存中的游戏属性值。它们 可以在游戏中追踪锁定游戏主人公的各项能力数值。这样玩家在游戏中可以达到 主角不掉血、不耗费魔法、不消耗金钱等目的,从而降低了游戏的难度,使得玩 家更容易通关。 t 9 9 6 年,文字网络游戏m u d 风行 1 3 ,虽然没有图形声效的辅佐,文字 m u d 当年仍然风靡了诺大的一群玩家,而这些玩家想必对z m u d 并不陌生。 z m u d 原本是一个网络文本信息工具,相当于微软的t e l n e t ,不过z m u d 得天 独厚的设定,最终使其成为文字m u d 的不二软件 1 4 1 。而在z m u d 中有一个 t i g g e r 设置,即宏命令设置,可以由软件自行编辑执行一系列复杂的输入输出命 令。而文字m u d 所有操作均由文字命令操作,所以t i g g e r 宏命令编辑语句,被 当时的玩家亲切的称为“机器人”。 这个“机器人”,就是中国大陆网络游戏界外 挂的雏形 1 5 。 1 9 9 8 年,世界级图形网络游戏巨著“网络创世纪( u o ) ”面世。一时间全世 界都为之疯狂。聪明的大陆u o 爱好者们弄到了u o 架站的服务器端,自己建立 了大陆玩家们自己的u o 站。这个时期,出现了“u o l o o p ”这样的重复执行技能命 令的软件,这也是大陆玩家们第一次接触到的图形网络游戏外挂 1 6 】。 1 9 9 9 年,日本网络游戏巨著“石器时代”进入中国。其可爱的造型、初心 巾山大学硕士学位论文 m m o r p g 反外挂技术的研究 的人物事件设定,很快风靡了台湾香港大陆,两岸三地都为之倾倒。可以说一句 不算夸张的话,石器时代带动了中国网络游戏的新纪元。 电就是在这个时间,真正意义上的外挂,正式粉墨登场了。 始作俑者是日本一个程序员爱好集团,该集团成员分析了石器时代客户端的 源代码,直接破解了数据库,在反馈回服务器端的程序上实现了封包的可能。这 个小程序起先是在该集团内部论坛上流行,后来某个好事的会员将它发布到了公 共沦坛,于是也就造成了1 9 9 9 年底日本石器时代的大混乱。在日本流行的外挂 通过网路流传到了台湾,迅速引起了台湾玩家的注目。其中,“彩虹”是台湾石 器时代外挂的缔造者,至今还有人半开玩笑的称他为“石器外挂之父”。彩虹分析 了日本已经失效的石器时代外挂,结合台湾石器时代的源程序,做出了真正意义 上的完美封包外挂。当石器时代进入中国大陆,聪明的中国程序员很快也开发出 完全不逊色于自己同胞的大陆石器时代外挂,其代表为天使部落和阿背、万宇 i t 5 】。 至此,外挂已经完全成为中国网络游戏如形似影的附骨之蛆,尤其是在 m m o r p g 中。不需要刻意地去练级,不需要辛辛苦苦地生产物品贩卖,不需要 劳劳碌碌地采集矿物,巨额金钱、极品装备,都唾手可得。以互动为根基的网络 游戏,因为有了外挂而不需要合作、交流,从而失去了网络游戏的意义,加速了 游戏的灭亡。 2 2 2 外挂的分类 一、根据有没有修改游戏数据可以将外挂分为两类: 一类是将游戏中大量繁琐和无聊的攻击动作使用外挂自动完成,以帮助玩家 轻松打败攻击对象并可以快速地增加玩家的经验值。例如“按键精灵”。 另一类是外挂程序产生欺骗性的网络游戏封包,并将这些封包发送到网络游 戏服务器,利用这些虚假信息欺骗服务器进行游戏数值的修改,达到修改角色能 力数值的目的。 有人指出按键精灵类动作模拟外挂并不能算作外挂,因为它对游戏的公平性 并没有造成太大的影响。但按照外挂的定义,一切非官方的游戏补丁而对游戏产 中山丈学硕士学位论文 m m o r p g 反外挂技术的研究 生作用的程序和脚本都应算作外挂。 二、根据外挂工作时对哪部分起作用,可以将外挂分为以下4 类 1 7 】: 1 挂机外挂 又称内挂,这种外挂是指用机器代替玩家去自动完成练级、拾取物品、买卖 物品等,所谓挂机,就是指玩家不用亲自参与游戏,只需设定好一些参数,例如 在哪个范围打怪、捡取或买卖什么样的物品等,然后进入游戏呼出外挂,就可以 等着看人物角色又升高了多少等级,打出了多少宝石或是好装备了。 2 脱机外挂 建立在完全或是很大程度上弄透了游戏客户端的基础上,不需要客户端支持 ( 外挂本身集成了游戏客户端的功能) ,不需要玩家操作,自动运行。它是客户 端与挂机外挂的一体化,要代替客户端与服务器端进行通信,这种外挂的设计难 度比较大,使用寿命也比较长。 3 系统外挂 主要通过操作系统提供的平台进行操作,作用于内存、游戏客户端代码,它 充分利用系统提供的各种功能,来动态修改游戏数据或者提供相应的响应。典型 的有加速外挂、自动加血、自动加魔法值等。 4 封包外挂 主要是数据修改,又可分为合法封包外挂和非法封包外挂。合法封包指没有 违背游戏封包逻辑的封包。例如游戏中一个技能的攻击力通常由人物的属性点和 武器的攻击力通过一定的公式计算出一个范围内的值,只要不超过最大值就被认 为是合法的,因此修改封包能使每次的攻击都达到最大值。又例如引怪,能将攻 击的动作作用于并不在角色身边或屏幕范围内的怪物身上,如果不超过服务器定 义的角色与怪物之间距离( 有的甚至可能没有判断距离) ,只要知道怪物的代码 和攻击的代码,生成一些看上去合法的封包就可以欺骗服务器端了。非法封包是 指违背游戏封包逻辑,如刷钱,复制,瞬间移动等。封包外挂的前提是对封包的 协议和加密算法进行分析。 这种分类法以外挂的作用点来分类,比较科学。下面将分别详细阐述这四种 外挂的原理。 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 2 3 外挂技术 2 3 1 挂机外挂中的动作模拟技术 这种外挂的目的是自动打怪、自动走路等,前提是针对游戏的场景中的攻击 对象的位置和分布情况进行分析,以实现外挂自动进行攻击以及位置移动。主要 包括键盘模拟技术和鼠标模拟技术 t 8 】。 1 鼠标模拟技术 现在的游戏几乎全是用鼠标来改变角色的位景和方向的了,鼠标的左键和右 键也是动作的执行确定方式。玩家仅用一个小小的鼠标,就可以使角色畅游天下。 而实现在没有玩家参与下的自动行走就是靠几个w i n d o w sa p i 函数,这些a p i 函数为: ( 1 ) 模拟鼠标动作a p i 函数m o u s e _ e v e n t 0 1 9 ,它可以实现模拟鼠标按下和 放开等动作。 v o i dm o u s e e v e n t ( d w o r d d w f l a g s 鼠标动作标识 d w o r dd x ,鼠标水平方向位置 d w o r d d y ,鼠标垂盲方向位置 d w o r dd w d a t a ,鼠标轮子转动的数量 d w o r d d w e x t r a l n f o 一个关联鼠标动作辅加信息 ) ; 其中,d w f l a g s 表示了各种各样的鼠标动作和点击活动,它的常用取值如下: m o u s e e v e n t f _ m o v e 表示模拟鼠标移动事件 m o u s e e v e n t f _ l e f t d o w n 表示模拟按下鼠标左键 m o u s e e v e n t f l e f t u p 表示模拟放开鼠标左键 m o u s e e v e n t f _ r i g h t d o w n 表示模拟按下鼠标右键 m o u s e e v e n t f _ r i g h t u p 表示模拟放开鼠标右键 m o u s e e v e n t f _ m i d d l e d o w n 表示模拟按下鼠标中键 m o u s e e v e n t f _ m i d d l e u p 表示模拟放开鼠标中键 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 ( 2 ) 没置和获取当前鼠标位置的a p i 函数。获取当前鼠标位置使用 g e t c u r s o r p o s 0 数 1 9 1 ,设置当前鼠标位置使用s e t c u r s o r p o s 0 数 1 9 1 。 b o o lg e t c u r s o r p o s f l p p o i n tl p p o i n t 1 返同鼠标的当前位置 ) ; b o o ls e t c u r s o r p o s ( i n tx ,鼠标的水平方向位置 i n ty ,鼠标的垂直方向位置 ) ; 通常游戏角色的行走都是通过鼠标移动至目的地,然后按一下鼠标的按钮就 可以了。下面我们使用上面介绍的a p i 函数来模拟角色行走过程。 c p o i n to l d p o i n t ,n e w p o i n t ; g e t c u r s o r p o s ( & o l d p o i n t ) ;,保存当前鼠标位置 n e w p o i n t x = o l d p o i n t x + 4 0 :向右移动4 0 n e w p o i n t y = o l d p o i n t y + 1 0 ;向上移动l o s e t c u r s o r p o s ( n e w p o i n t x ,n e w p o i n t y ) ;,设置目的地位置 m o u s e e v e n t ( m o u s e e v e n t f _ r i g h t d o w n ,0 ,0 ,0 ,0 ) ;模拟按下鼠标右键 m o u s e _ e v e n t ( m o u s e e v e n t f _ r i g h t u p , 0 ,0 ,0 ,0 ) ;模拟放开鼠标右键 2 键盘模拟技术 键盘操作在游戏中也是必不可少,很多攻击都设立了快捷键。为了完成这些 攻击,外挂程序需要使用键盘模拟技术。像鼠标模拟技术一样,w i n d o w s a p i 也 提供了一系列a p i 函数来完成对键盘的模拟。 模拟键盘动作a p i 函数k e y d b _ e v e n t 0 1 9 ,它可以模拟对键盘上的某个或某 些键进行按下或放开的动作。 v o i dk e y b d _ e v e n t ( b y t eb v k ,虚拟键值 b y t eb s c a n ,硬件扫描码 d w o r d d w f l a g s ,动作标识 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 d w o r dd w e x t r a i n f o 与键盘动作关联的辅加信息 ) ; 其中,b v k 表示虚拟键值,其实它是一个b y t e 类型值的宏,其取值范围为 1 - 2 5 4 。b s c a n 表示当键盘上某键被按下和放开时,键盘系统硬件产生的扫描码, 我们可以用m a p v i r t u a l k e y o i 函数在虚拟键值与扫描码之间进行转换。d w f l a g s 表 示各种各样的键盘动作,它有两种取值:k e y e v e n t f e x t e n d e d k e y 和 k e y e v e n t f k e y u p 。 下面我们使用一段代码实现在游戏中按下s h i f t + d 快捷键对攻击对象进行攻 击。 k e y b d _ e v e n t ( v k _ s h i f t , m a p v i r t u a l k e y ( v k _ s h i f t , 0 ) ,0 ,0 ) :按下s h i f t 键。 k e y b d _ e v e n t ( 0 x 4 4 ,m a p v i r t u a l k e y ( 0 x 4 4 ,o ) ,0 ,o ) ;按下d 键。 k e y b d _ e v e n t ( 0 x 4 4 ,m a p v i r t u a l k e y ( 0 x 4 4 ,o ) ,k e y e v e n t f k e y u e 0 ) ;放开d 键。 k e y b d _ e v e n t ( v k _ s h i f t , m a p v i r t u a l k e y ( v k s h 正t o ) ,k e y e v e n t fk e y u p ,0 ) ;放开s h i f t 键。 要想外挂能工作于游戏之上,在实现了动作模拟之后还需要将外挂与游戏的 场景窗口联系起来或者使用一个激活键。当使用激活键进行关联时,需要使用 h o o k 技术开发一个全局键盘钩子,我们留到2 3 4 再阐述。 2 3 2 脱机外挂中的客户端分析技术 m m o r p g 多是c l i e n t s e r v e r 模式,客户端在玩家机器上,这就不可避免地 会被分析。同时,游戏运行要在内存中产生数据,这也给了破解者跟踪调试的可 能,虽然内存中的数据不是角色的等级等属性,但游戏的动作以及一些命令会动 态存在于内存中。脱机外挂通过对游戏客户端的分析,模拟客户端使得玩家可以 脱离客户端而游戏。这里的分析技术主要是脱壳、反编译。 1 脱壳 在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程 序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务, 中l u 大学硕七学位论文m m o r p g 反外挂技术的研究 就像自然界中动植物用来保护自己的“壳”一样。运行加壳程序时,用户执行 的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解 压缩,并把控制权交还给解开后的真正的程序,由于切工作都是在内存中运行, 用户根本不知道也不需要知道其运行过程。而脱壳就是把在内存中真正还原的程 序抓取下来,修正后变成可执行的文件 2 0 。 脱壳可分自动脱壳和手动脱壳。 自动脱壳适用于一些用已知的压缩工具( p a c k e r s ) 压缩的壳,这些压缩 工具是指专门压缩w i n d o w s 下的p e ( p o r t a b l ee x e c u t a b l e ) 格式e x e 或d l l 文件 的工具,压缩的e x e 是自解压执行文件。常用的压缩工具有:a s p a c k ,u p x , p e t i t e ,p e p a c k ,p k l i t e 3 2 ,w w p a c k 3 2 ,n e o l i t e ,s h r i n k e r 等。一般某种压 缩工具的壳,都会有相应的脱壳工具( u n p a c k e r s ) ,例如a s p a c ki i n p a c k e r 是 用于脱a s p a c k 的压缩p e 文件,u n p e p a c k 用于脱p e p a c k 的壳,还有一些能脱 多种壳的“万能”脱壳工具,如p r o c d u m p 3 2 。另外还有一些侦测文件类型工具, 用来判断是否加壳或加了何种壳,如f i l e i n f o ,g e t t y p ,t y p 。 手动脱壳就是不借助自动脱壳工具,而是用动态调试工具s o f t i c e 或 t r w 2 0 0 0 来脱壳。这里先解释几个概念 2 0 : ( 1 ) p e 文件:m i c r o s o f t 设计了一种新的文件格式p o r t a b l ee x e c u t a b l ef i l e f o r m a t ( 目 p e 格式) ,该格式应用于所有基于w i n 3 2 的系统:w i n d o w s n t 、w i n d o w s 2 0 0 0 、w i n 3 2 s 及w i n d o w s9 5 9 8 。 ( 2 ) 基址( i m a g e b a s e ) :是指装入到内存中的e x e 或d l l 程序的开始地 址它是w i n 3 2 中的一个重要概念。 ( 3 ) 相对虚拟地址( r e l a t i v ev i r u a la d d r e s s ,简称r v a ) :某个项相对于文 件映象地址的偏移。例如:装载程序将一个p e 文件装入到虚拟地址空间中,从 1 0 0 0 0 h 开始的内存中,如果p e 中某个表在映像中的起始地址是1 0 4 6 4 h ,那么该 表的r v a 就是4 6 4 h 。相对虚拟地址( r v a ) = 虚拟地址( v a ) 一基址( i m a g e b a s e ) 。 ( 4 ) 八口点( e n t r yp o i n t ) :程序在完成了对原程序的还原后,开始跳转 到刚还原的程序执行,此时的地址就是入口点的值。 手动脱壳的步骤为: ( 1 ) 确定壳的种类 巾山大学硕士学位论文 m m o r p g 反外挂技术的研究 可用前面提到的侦测文件类型工具f i l e i n f o 、g e t t y p 、t y p 等来看是何种壳。 ( 2 ) 入口点确定 绝大多数p e 加壳程序在被加密的程序中加上一个或多个段。所以看到一 个跨段的j m p 就有可能是了。如:u p x 用了一次跨段的j m p ,a s p a c k 用了两 次跨段的j m p 。这种判断一般是跟踪分析程序而找到入口点,需要经验的累积。 如果是用t r 、v 2 0 0 0 可用命令p n e w s e c ,它可让t r w 2 0 0 0 中断到入口点上。 ( p n e w s e c :运行直到进入一个p e 程序内存的新的s e c t i o n 时产生断点。) 另 外也可用d i n g b o y 的冲击波2 0 0 0 ,它能轻易的找到任何加密壳的入口点 2 0 1 。 ( 3 ) 转储( d u m p ) 程序 找到入口点后,可以用一些工具将内存中的数据抓到文件里。t r w 2 0 0 0 中 用w 命令,s o f i i c e 可以用配套的i c e d u m p 的d u m p 命令。 ( 4 ) 修复输入表( i m p o r tt a b l e ) d u m p 之后可能会损坏输入表,因此脱壳后的程序可能不能运行,这时就要 修复输入表。如果是用t r w 2 0 0 0 可用命令m a k e p e ,从内存中整理出一个指令名 称的p e 格式的e x e 文件,当前的e i p 寄存器将成为新的程序入口,它重新生成 文件的输入表,因而生成的p e 文件可运行任何平台和微机上。另外一个命令是 p e d u m p ,它是将p e 文件的内存映像直接映像到指定的文件里,这样生成的文件 只能在本机运行,不能在其它系统平台或微机运行。也可以使用专r j 的重建输入 表工具如i m p o r tr e c o n s t r u c t o r 。 2 静态反汇编 文件分析是静态分析程序的第一步,上面所说的脱壳其实就是针对文件分 析的一个结果一加了壳一一而做的工作,此外,文件分析还能看出它是用什么 语言写的。第二步就是反汇编,可以使用w 3 2 d a s m 这种强大的反汇编工具。 以“奇迹m u ”为例,对它客户端的执行文件m a i n e x e 反汇编: ( 1 ) 运行w 3 2 d a s m ,打开文件反汇编m a i n e x e ,结果如图2 - 1 所示。 1 4 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 图2 - 1 对“奇迹m u ”静态反汇编的截图 ( 2 ) 转到代码开始( 如图2 2 ) 图2 - 2 转到代码开始的截图 这里代码的开始处是反汇编代码列表清单汇编指令的开始,而不是代码运行的起 点,程序运行的起点称为程序入e 1 点( p r o g r a me n t r yp o i n t ) 。图上,左边是机器 指令,右边则是汇编程序。 ( 3 ) 转到程序入口点( 如图2 - 3 ) 中山大学硕十学位论文 m m o r f g 反外挂技术的研究 图2 - 3 转到程序入口点的截图 ( 4 ) 串式数据参考 在串式数据参考中点击你感兴趣的出错提示信息,这里我以版本验证为例 选择了v e r s i o nd i s m a t c h j o i ns e r v e r ( 如图2 4 ) 。 1 6 中山大学硕士学位论文 m m o r p g 反外挂技术的研究 图2 - 4 串式数据参考的截图 双击后来到相关代码处,再分析源代码( 如图2 5 ) 。 图2 - 5 回到相关代码处分析源代码的截图 分析后可知图上0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国可移动的模块化结构行业市场全景分析及前景机遇研判报告
- 2025年中国可编程照明行业市场全景分析及前景机遇研判报告
- 2025年中国抗衰老眼霜行业市场全景分析及前景机遇研判报告
- 氨纶抽条密丝绒项目投资可行性研究分析报告(2024-2030版)
- 口腔健康与肌肤护理
- syb培训动画课件
- 2025年 什邡市市级机关遴选考试笔试试题附答案
- 2025-2030年中国产销化工油漆类行业深度研究分析报告
- 护具系列项目可行性研究报告
- 2025年 北京市海淀区学院路小学招聘考试笔试试题附答案
- 工图机械制图试卷专题11综合型组合体三视图求法习题
- 新版建设工程工程量清单计价标准解读
- 初中数学专题讲座课件
- 【MOOC】人像摄影-中国传媒大学 中国大学慕课MOOC答案
- 【MOOC】计算机组成原理-电子科技大学 中国大学慕课MOOC答案
- 【MOOC】电路分析AⅡ-西南交通大学 中国大学慕课MOOC答案
- 小学生数学逻辑推理题100道及答案解析
- 基本气象要素
- 食品安全规章制度模板打印
- 2024年永平县小升初全真数学模拟预测卷含解析
- 2002版《水利工程施工机械台时费定额》
评论
0/150
提交评论