外挂技术汇总及书籍推荐

nothx      2022-02-08     651

关键词:

本节介绍游戏安全领域一些入门必备书籍,包含开发、逆向和游戏安全基础。读者可以根据自身情况选择性阅读。

1.开发基础

游戏安全领域逆向是核心技能,但在学习逆向技术之前,必须拥有牢固的开发基础。因为编写外挂需要一定的开发基础;再来只有有一定开发基础,并对程序架构,运行原理了解,才能在逆向领域走的更深入。

对于没有开发基础的读者,这里推荐《C语言程序设计》入门,作者是C语言和UNIX系统的发明人,书比较薄,但却不失为经典。游戏安全领域主流开发语言为C/C++,在有一定C语言基础后,可以尝试阅读下《C++ Primer》。此书内容比较全面,读不完没关系  ,可以作为C++的字典书籍,有疑问时随时查阅。不过首先需要重点阅读12~15章,了解面向对象的思想;弄清楚继承、多态、虚函数的原理,由于大部分游戏核心算法都使用C++开发,这样在逆向游戏时会很有用,在逆向基础部分还会重点介绍。有了语言基础之后,就可以开始我们的安全编程之旅。

进程与线程,为游戏安全编程的基础知识,推荐读者阅读《Windows编程循序渐进》第12章,很简洁形象的对进程线程进行了描述。在此基础上可以拓展阅读下第14和15章,掌握进程间通信和线程同步的原理,尤其进程间通信在编写外挂时用的较多。若读者想深挖可继续阅读《Windows核心编程》第4和6章,此书会对进程线程就行更加详细的介绍。 

网络通信(TCP/IP通信),在分析游戏时网络通信是需要重点关注的部分。推荐读者阅读《Windows编程循序渐进》第7章,同样很形象的介绍了TCP、UDP通信并且有很好的测试用例,相信会很好的提升读者套接字编程的水平。

PE文件,不论是游戏还是外挂都是PE文件,无论是开发还是逆向PE文件格式都是核心基础知识。推荐读者阅读《加密解密(第三版)》第10章PE文件格式,此书对PE文件中的输入表、重定位等都有详细介绍,方便后续对PE文件加壳和脱壳的学习;而且用一个完整的PE文件分析工具作为实例,相信对读者PE文件的认识和Windows开发能力都会有提高。

注入,一般情况,外挂展现功能的第一步就是需要将自身完美注入到游戏进程中。注入的方式有很多,如:消息钩子、注册表、dll劫持、远程线程、APC等等,后续文章会进行详细介绍。这里推荐读者阅读《Windows核心编程》第19~22章,了解DLL注入的详细原理。

HOOK,是外挂实现功能的基本手段之一,HOOK的方式也多种多样,如:IAT HOOK,Inline HOOK,虚表HOOK,SSDT HOOK等。推荐读者阅读《Windows编程循序渐进》第19章钩子部分,学习HOOK的最基本原理,在后续实例文章中可以灵活运用。

Windows安全编程中还有很多技术需要在外挂编写过程用到,这里就不一一列举,有兴趣的读者可以参考(http://bbs.pediy.com/showpost.php?p=514651&postcount=2),了解句柄、模块加载流程等技术。

到此为止,基本以覆盖了外挂技术中的大部分内容。但是大部分游戏都从系统底层做了很多的防护,感兴趣的读者可以深入Windows内核体验游戏安全攻防的乐趣。驱动开发入门推荐读者阅读《Windows驱动开发技术详解》,此书比较基础,能够让读者了解驱动开发测试的基本流程。进阶可以阅读《寒江独钓——Windows内核安全编程》,里面包含大量侧重安全的驱动实例可以调试学习。若对底层非常感兴趣的读者还想继续深挖,推荐阅读《Windows内核情景分析》,基本上从源码上介绍Windows操作系统,有时间的读者可以按章序阅读,若感觉书中内容过多,可以针对前面介绍的安全技术对应的章节阅读。

2.逆向基础

有了一定开发基础后,让我们来接触逆向分析技术。大师级的游戏安全工程师对软件的逆向分析技术的理解都很深入,据说他们在编写高级语言代码的同时,心里会浮现对应的汇编代码。

若读者无法读懂基本的汇编语言,笔者推荐《汇编语言(第2版)》第2~6章,了解基本的汇编语言指令,在有C语言学习经验后,相信读者可以快速掌握汇编的基础知识。

笔者在开发基础中说过,大部分游戏的核心算法都使用C++开发,现在在掌握了C++和汇编后,是否就马上可以相结合呢?答案是否定的。从C++到汇编的转换首先就是要掌握C++反汇编的一些基本原理,然后就是读者的大量逆向实践了,来积累逆向经验。推荐读者阅读《C++反汇编与逆向分析技术揭秘》第2~13章,此书将C++的基本数据类型、启动函数、各种C++表达式、流程控制、数组指针、结构体、类、虚函数等在内存中怎样以汇编形式存在进行了详细的介绍,相信读者阅读后,再经过一定的实践可以达到看C++心中有汇编或看汇编心中有C++的境界。

动态调试,首先得熟练使用Olldbg和Windbg两个调试工具。对于Olldbg,首先推荐读者阅读《加密解密(第三版)》第2章,了解Olldbg的基本使用方法,深入进阶可以参考(http://bbs.pediy.com/showpost.php?p=514664&postcount=2),理解Olldbg一些功能的原理和插件的编写。对于Windbg,读者可以参考(http://bbs.pediy.com/showpost.php?p=514666&postcount=4)了解Windbg基本的调试技术。在熟悉了基本的调试工具后,便可以通过大量的调试实践来积累分析经验,推荐读者阅读《加密解密(第三版)》第5和13章,里面的每一小节均有一个调试用例,阅读的同时可以亲自调试一下加深印象,最后一节对常用断点设置技巧也总结的很精辟;13章讲解调试过程中基本的脱壳技术,如今外挂和游戏都加有各种壳,通过阅读此章了解常见的壳和基本原理很有必要。若读者觉得调试用例太少,可以参考(http://bbs.pediy.com/showthread.php?t=73634),里面对脱壳技术、破解技术和软件保护进行了分类,拥有更多的分析实例满足读者的需求。现在的外挂为了生存,基本都会加高强度的壳来保护自身不被游戏安全工程师或同行竞争者攻破,对这方面有深厚兴趣的读者可以参考(http://bbs.pediy.com/showthread.php?t=66575),这是看雪论坛上的一个壳技术的一个专题,值得仔细研究。

静态分析,首先得熟练使用IDA静态分析工具。IDA相对与Olldbg操作复杂一些,推荐读者阅读《IDA权威指南》第4~9章,了解使用IDA的基本操作和IDA的特性。在使用IDA分析游戏时,可能需要很多重复性操作,阅读《IDA权威指南》第15章掌握基于IDA的脚本编写是个不错的选择。

逆向分析技术具有很强的综合性和实践性,掌握这项技术需要耐心和毅力。还有许多特定逆向分析方法不能一一介绍,读者可以参考(http://bbs.pediy.com/showpost.php?p=514669&postcount=6),了解不同语言对应的分析方法。

至此读者已经可以掌握调试的基本技术,若有读者想深入探索基于系统的调试技术,《软件调试》是一个很好的选择。由于游戏本身非常复杂,漏洞是无法避免的,有些外挂就有可能基于游戏的漏洞,因此,对于想深入研究漏洞的读者这里推荐《0day安全 软件漏洞分析技术(第二版)》,了解漏洞的基本原理和shellcode的编写方法。

3.游戏安全基础

如果只有开发和逆向基础还不能完全算进入游戏安全领域,在基本技术之上,读者还需要对游戏的黑色产业链有一定了解。推荐读者阅读《网络游戏安全揭密》第1~4章,熟悉整个游戏生态中存在哪些角色,这些角色之间的关系;有哪些利益点,利益的转换方式等。

相信在学习了推荐的这些书籍后,读者不论是对游戏安全的了解,还是开发逆向的基础能力都会有不少提升;对后续游戏安全相关文章的学习会更游刃有余。

 

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

计算机视觉入门及资料汇总

目录:(未完,持续更新)零、好的博客汇总:一、计算机视觉论文及代码汇总:二、特征提取算法汇总:三、深度学习与计算机视觉汇总:四、C和C++入门汇总:五、数据集汇总:  零、好的博客汇总:(1)jsxyhelu:https... 查看详情

知识图谱业务落地技术推荐之国内知识图谱平台汇总(竞品)[阿里腾讯华为等

各位可以参考国内知识图谱平台产品进行对技术链路搭建和产品参考提供借鉴。 查看详情

知识图谱业务落地技术推荐之图数据库汇总

0.图数据库排名链接:https://db-engines.com/en/ranking/graph+dbms0.1简要分析(各种图数据库属性)Neo4j(主流)历史悠久且 查看详情

目标检测相关论文和代码资源汇总(代码片段)

目标检测相关论文和代码资源汇总文章目录目标检测相关论文和代码资源汇总2014~2019模型汇总(红色为推荐必读篇):Performancetable性能表2014论文及代码2015论文及代码2016论文及代码2017论文及代码2018论文及代码20... 查看详情

hciedatacom考试-mac地址基础及漂移技术汇总

本文由WOLFLAB网络实验室,杨广成老师带队进行整理​MAC地址1.MAC基础★★★★(1)定义:MAC(MediaAccessControl)地址用来定义网络设备的位置。(2)组成:MAC地址由48比特长、12位的16进制数字组成,其中从左到右开始,0到23bit是厂... 查看详情

各大互联网公司架构演进之路汇总

...800阅读时间:2分钟大型网站架构演化历程大型网站架构技术一览支付宝和蚂蚁花呗的技术架构及实践支付宝的高可用与容灾架构演进余额宝技术架构及演进淘宝数据魔方技术架构解析淘宝技术发展历程和架构经验分享淘宝架构... 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

前言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算... 查看详情

各大厂c++linux后端开发岗位要求汇总及技术学习路线

岗位要求汇总下面这些岗位要求,是我浏览了大量岗位进行的一个总结,这些技能要求基本都是一线互联网大厂的要求,同样这些技能也是最基础的技能,需要我们掌握~C++后台高级工程师(腾讯)岗... 查看详情

前端技术学习路线及技术汇总

下面是简单整理的一些前端的学习路线:第一阶段:HTML+CSS:HTML主要就是网页编辑。包括HTML进阶、CSS进阶、div+css布局、HTML+css整站开发。Javascript语言:JavaScript是web前端中最重要的知识,包括Js基础教程、js内置对象常用方法、... 查看详情

《跳一跳》当天开挂!游戏外挂咋能这么猛?

比起《绝地求生》外挂满天飞来说,其实关于游戏外挂的笑话很多,但也很残酷。经常和朋友们开的一个玩笑是,你家的游戏,是上线后第几天出现了外挂。有时朋友的回答是,上线当天就有了,可我总觉得人家的外挂早准备好... 查看详情

知识图谱业务落地技术推荐之图神经网络算法库&图计算框架汇总

1.PyTorchGeometric:https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.htmlPyG是一个基于PyTorch的用于处理不规则数据(比如图)的库,或者说是一个用于在图等数据上快速实现表征学习的框架。它的运行速度很快,训练模型速度可... 查看详情

开源书籍汇总

这篇博客汇总所有开源的书籍开源电子书集合@github.comInterpretableMachineLearning-AGuideforMakingBlackBoxModelsExplainable 查看详情

推荐系统[三]:粗排算法常用模型汇总(集合选择和精准预估),技术发展历史(向量內积,wide&deep等模型)以及前沿技术

1.前言:召回排序流程策略算法简介推荐可分为以下四个流程,分别是召回、粗排、精排以及重排:召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在... 查看详情

帧同步(lockstep)该如何反外挂

...有很多人担心起来,客户端会跑全部逻辑帧同步该如何反外挂,和状态同步有什么区别呢?首先我们来分析一下手游的风险和外挂的分类,这里推荐腾讯游戏安全中心的文章, 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

前言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算... 查看详情

java技术知识点汇总

...向百度编程,基本能解决大部分的问题。然而,技术用的熟练,时间久了却容易遗忘背后的技术思想,倒成了妥妥的搬运工了。所以,偶尔针对用的技术,发几个灵魂拷问,也是很有必要的!汇总... 查看详情

5g核心网技术基础自学系列|汇总

...大家分享,侵权即删,谢谢支持!1.5G核心网技术基础自学系列|5GC架构概述_COCOgsta的博客-CSDN博客2.5G核心网技术基础自学系列|5G核心网的两种观点_COCOgsta的博客-CSDN博客3.5G核心网技术基础自学系列|基于服务的架构_COCOg... 查看详情

新书推荐“十三五”国家重点出版规划项目《网络安全技术及应用》第3版出版发行

650)this.width=650;"src="https://img.baidu.com/hi/jx2/j_0047.gif"alt="j_0047.gif"style="padding:0px;margin:0px;vertical-align:top;border:none;"/>【新书推荐】“十三五”国家重点出版规划项目《网络安全技术及应用》第3版出版发行  新书特色 查看详情