逆向工程视频游戏的初学者学习材料
这是基于个人推荐的学习材料的编译列表,可帮助人们学习如何逆转工程视频游戏的过程。
我希望这将帮助他人花更多的时间学习,而搜索时间更少。
此处的大多数收集资源将集中于在Microsoft Windows操作系统上扭转PC游戏,并在X64上考虑X86组件,因为它更容易学习。
逆转工程视频游戏通常与“游戏黑客”有关,它们来来去去,所以如果某些学习材料来自此类网站/来源,请不要感到惊讶。
建议学习的命令
- 了解如何在Google上有效搜索,您的所有答案和资源都在互联网上找到
- 学习使用作弊引擎
- 了解十六进制和二进制编号系统,以及一般的计算机内存
- 学习X86组件
- 学习C ++
- 学习使用IDA/GHIDRA
- 学习游戏编程的基础知识
- 学习Win32 API的基础知识
- 了解Windows操作系统的内部工作,又称Windows内部设备
- 练习,练习,练习...
逆转所需的软件
不建议在玩具有防治系统的多人游戏时运行这些工具(尤其是作弊引擎),除非您知道自己在做什么。
首先要熟悉作弊引擎,以及IDA或Ghidra。
内存扫描仪:
拆卸器 /分解器 /辩论者:
- IDA(免费软件版)
- 吉德拉
- x64dbg
- DNSPY(C#应用程序的分解器,调试器和编辑器)
流程工具:
- ProcessHacker(监视过程和系统资源)
- ProcessMonitor(监视实时文件系统,注册表和过程/线程活动)
- API监视器(监视器和控制API调用)
PE工具:
- Explorer Suite(PE编辑器)
- 检测到它很容易(文件类型和包装器标识符)
- tridnet(文件标识符)
网络工具:
其他:
- HXD编辑器(基本十六进制编辑器)
- IMHEX(高级十六进制编辑器)
- reclass.net(内存中的反向工程数据结构)
选择正确的工具
在开始游戏之前,您必须了解您的目标,因此收集一些信息很重要,例如:
- 它使用了哪些软件技术
- 它已经开发了哪种编程语言和编译器
- 它是否有任何反向反转或反篡改技术
- 它是在任何流行的第三方游戏引擎(Unity,Unreal Engine,Source Engine等)上运行的
共享相同发动机的游戏通常具有非常相似且经常性的代码库,您可以利用自己的优势。对于第三方游戏引擎(例如虚幻引擎或Unity),在线有许多自定义工具可以减轻反向工程的过程。
与C/C ++相比,使用高级解释/中间编程语言(例如C#或Java)编码的游戏通常更容易反向工程,因为元数据未丢失,因为它们未汇编为低级机器代码。
对于基于团结的游戏(以及使用.NET框架开发的任何其他游戏),请使用DNSpy代替IDA/GHIDRA。
我们主要将专注于逆转在C ++中编码的游戏,因为它仍然是视频游戏编程中的黄金标准。
用C ++制作的游戏示例:
- 反击
- 大盗窃自动V
- Fortnite
- 魔兽世界
- 汤姆·克兰西(Tom Clancy)的彩虹六攻城
- 辐射4
- 边境
- 火箭联盟
- 命运2
- 方舟:生存进化
用C#制作的游戏示例:
- Genshin影响
- 击败萨伯
- 锈
- 炉石
- 亚纳图卡
- Rimworld
- 空心骑士
- 杯头
- 克服它
- 降雨的风险2
必读初学者级别的材料
指导游戏逆转:
- 游戏黑客学院
- 从编码到黑客:实用(外部)游戏黑客入侵的简介指南
向X86组装的指南:
- 什么是汇编语言? -Javidx9
- X86组件中的速效课程用于反向工程师 - Sensepost
向艾达的指南:
基本游戏编程概念:
- 游戏编程算法和技术-Sanjay Madhav(本文共有7页,阅读至第5-6页)
- 了解游戏主循环-Rodrigo Monteiro
图书:
- 逆转和游戏黑客:
- 游戏黑客:开发用于在线游戏的自动机器人 - 尼克·卡诺(Nick Cano)
- 实用恶意软件分析:剖析恶意软件的动手指南-Michael Sikorski和Andrew Honig
- 游戏编程:
- Windows Game编程大师的技巧,第二版(2002) - 安德烈·拉莫特(Andre Lamothe)
- 游戏编码完整,第四版(2012)-Mike McShaffry
谷歌:
- 如何有效地搜索互联网 - 网络工具公司
- Google备忘单
- 最终的Google搜索操作员作弊表-Helvis smoteks
必须观看YouTube频道
- 指导黑客YouTube频道进行逆向工程和游戏黑客教程
- 斯蒂芬·查普曼(Stephen Chapman)的作弊引擎教程YouTube频道
其他真正有用的材料
一路上有用的网站
- Google(认真地使用,很多时间,一直在
- Microsoft官方文档(包括有关MSVC,DirectX,Win32 API等的文档)
- Godbolt(对于验证编译器生成的C ++代码非常有用)
您一般要学习的关键字
- 内存扫描
- 内存编辑
- 内存补丁
- 图案扫描
- x86组件
- X64组件
- 过程调试
- 拆卸代码
- 分解代码
- 功能钩
- API钩
- 绕道功能
- DLL注入
- 内部作弊
- 外部作弊
- 线程
- Windows PE格式
- Win32 API
- Windows内部设备
- 反欺骗
- 反逆转
- 抗tamper
- 软件包装工
- 软件解开包装