游戏安全初学者学习资料
逆向工程初学者学习资料
以下是根据个人推荐的学习资料编制的列表,以帮助人们学习如何对视频游戏进行逆向工程。
我希望它能帮助其他人花更多的时间学习,减少搜索的时间。此处收集的大部分资源将侧重于在 Microsoft Windows 操作系统上使用 x86 汇编而不是 x64 来逆向PC 游戏,因为它更容易学习。
逆向工程视频游戏通常与“游戏黑客”相关,它们来来去去,所以如果某些学习材料来自此类网站/来源,请不要感到惊讶。
推荐学习顺序
- 了解如何在 Google 上高效搜索,您的所有答案和资源都可以在互联网上找到
- 学习使用 Cheat Engine
- 了解十六进制和二进制编号系统,以及一般的计算机内存
- 学习 x86 汇编
- 学习 C++
- 学习使用 IDA/Ghidra
- 学习游戏编程的基础知识
- 了解 Win32 API 的基础知识
- 了解 Windows 操作系统的内部工作原理,也就是 Windows 内部结构
- 练习,练习,练习……
逆向所需的软件
不建议在有反作弊系统的多人游戏时运行任何这些工具(尤其是Cheat Engine),除非您知道自己在做什么。
首先,熟悉 Cheat Engine 以及 IDA 或 Ghidra。
内存扫描:
- Cheat Engine
反汇编器/反编译器/调试器:
- IDA (freeware edition)
- Ghidra
- x64dbg
- dnSpy (decompiler, debugger, and editor for C# applications)
进程工具:
- ProcessHacker (monitor process and system resources)
- ProcessMonitor (monitor real-time file system, registry and process/thread activity)
- API Monitor (monitor and control API calls)
PE 工具:
- Explorer Suite (PE editor)
- Detect It Easy (file type and packer identifier)
- TrIDNet (file identifier)
网络工具:
- Wireshark
- mitmproxy
- Fiddler
其他:
- HxD editor (hex editor)
- ReClass.NET (reverse-engineering data structures in memory)
选择正确的工具
在开始分析游戏之前,您必须了解您的目标,因此收集一些信息非常重要,例如:
- 它使用了哪些软件技术
- 它是用什么编程语言和编译器开发的
- 是否有任何防逆向或防篡改技术
- 是否在任何流行的第三方游戏引擎(Unity、Unreal Engine、Source Engine 等)上运行?
共享相同引擎的游戏通常具有非常相似且重复出现的代码库,您可以利用它们来发挥自己的优势。对于 Unreal Engine 或 Unity 等第三方游戏引擎,网上有很多自定义工具可以简化逆向工程的过程。
与 C/C++ 相比,使用 C# 或 Java 等高级解释/中间编程语言编码的游戏通常更容易进行逆向工程,因为元数据不会丢失,因为它们不会被编译成低级机器代码。
对于基于 Unity 的游戏(以及使用 .Net Framework 开发的任何其他游戏),请使用 dnSpy 而不是 IDA/Ghidra。
我们将主要逆向分析用 C++ 编码的游戏,因为C++编程语言仍然是视频游戏编程的首选。
用 C++ 制作的游戏示例:
- Counter-Strike
- Grand Theft Auto V
- Fortnite
- World of Warcraft
- Tom Clancy's Rainbow Six Siege
- Fallout 4
- Borderlands
- Rocket League
- Destiny 2
- ARK: Survival Evolved
用 C# 制作的游戏示例:
- Genshin Impact
- Beat Saber
- Rust
- Hearthstone
- Subnautica
- RimWorld
- Hollow Knight
- Cuphead
- Getting Over It
- Risk of Rain 2
必读的初级资料
游戏逆向指南:
- GHB1 - Start Here Beginner Guide to Game Hacking
- GHB2 - Beginners Guide To Reverse Engineering
- From coding to hacking: An introduction guide to practical (external) game hacking
x86 汇编指南:
- What Is Assembly Language? - javidx9
- A Crash Course in x86 Assembly for Reverse Engineers - SensePost
IDA指南:
- IDA Pro Beginner Guide
基础的游戏概念:
- Game Programming Algorithms and Techniques - Sanjay Madhav (This article has 7 pages in total, read up to page 5-6)
- Understanding the Game Main Loop - Rodrigo Monteiro
书籍:
- 逆向和游戏黑客:
- Game Hacking: Developing Autonomous Bots for Online Games - Nick Cano
- Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software - Michael Sikorski and Andrew Honig
- 游戏编程:
- Tricks of the Windows Game Programming Gurus, Second Edition (2002) - Andre Lamothe
- Game Coding Complete, Fourth Edition (2012) - Mike McShaffry
Google:
- How to Search the Internet Effectively - WebTools Company
- GOOGLE CHEAT SHEET
- The Ultimate Google Search Operators Cheatsheet - Helvis Smoteks
必看的 YouTube 频道
- Guided Hacking YouTube channel for reverse engineering and game hacking tutorials
- Stephen Chapman's YouTube channel for Cheat Engine tutorials
其他真正有用的资料
更多x86汇编学习资料:
- x86 Assembly Language Applicable To Reverse Engineering: The Basics – Part 1
- X86 Assembly Language, Part 2
- Lena151 Assembly Tutorials (might be outdated, but it is still recommended a lot):
- LearnThenTeach YouTube channel
- Tuts 4 You - Collection 2011
其他有用的工具和工具指南:
- 9 Best Reverse Engineering Tools for 2021
- Steamless
- RenderDoc
- NirSoft Programmer Tools
- NirSoft Network Tools
- NirSoft System Tools
实用逆向工程和游戏黑客资料:
- GHB3 - Intermediate Guide to Game Hacking
- How to make an MMO Bot - MMORPG Bot Automation
- Game Hacking: Hack, Slash, Loot
- DOOM95 | Making an aimbot
- User Mode Rootkits: IAT and Inline Hooking
- [C/C++] Reverse Engineering Tutorial for newbies
- Reverse Engineering and Function Calling by Address
- Internal vs. External Hacks - What's the difference?
- Reverse Engineering Online Games - Dragomon Hunter
- [Tutorial] Packet Hacking and Reversing MMO
- Run-time directx hooking using code injection and vtable
- How to implement pattern-scanning to obtain offsets dynamically
- C++:How to patch Bytes using PatternScan (AOB) + Explanation / Snippet
位标志和位掩码:
- Bit manipulation with bitwise operators and bit masks
书籍和报纸:
- 逆向和游戏黑客:
- Practical Video Game Bots: Automating Game Processes using C++, Python, and AutoIt - Ilya Shpigor
- Reversing: Secrets of Reverse Engineering - Eldad Eilam
- X86 Disassembly - Wikibooks.org
- Learning Malware Analysis: Explore the concepts, tools, and techniques to analyze and investigate Windows malware - Monnappa K A
- 游戏编程:
- Game Programming Algorithms and Techniques: A Platform-Agnostic Approach - Sanjay Madhav
- Game Programming Patterns - Robert Nystrom
- Windows 和 Win32 API 编程:
- Programming Windows: The Definitive Guide To The Win32 Api - Charles Petzold
- Windows Kernel Programming - Pavel Yosifovich
- Windows Internals - Pavel Yosifovich, Alex Ionescu, Mark E. Russinovich, David A. Solomon
- 绕过反调试、反逆向和防篡改技术:
- The Ultimate Anti-Reversing Reference - Peter Ferrie
- The Art of Unpacking - Mark Vincent Yason
用于逆向工程视频游戏的工具、教程、资源等精选列表:
- UnKnoWnCheaTs Game Hacking Wiki
- The Ultimate Game Hacking Resource
- The Ultimate Online Game Hacking Resource
- A Study Path for Game Programmer
有用的站点
- Google (seriously, use it, a lot, all the time)
- Official Microsoft documentation (includes documentations on MSVC, DirectX, Win32 API, etc.)
- Godbolt (Extremely useful to verify compiler generated C++ code)
您想了解的常用关键字
- Memory scanning
- Memory editing
- Memory patching
- Pattern scanning
- x86 assembly
- x64 assembly
- Process debugging
- Disassembling code
- Decompiling code
- Function hooking
- API hooking
- Detouring functions
- Dll injection
- Internal cheats
- External cheats
- Threads
- Windows PE format
- Win32 API
- Windows internals
- Anti-debugging
- Anti-reversing
- Anti-tamper
- Software packers
- Software unpacking
游戏安全初学者学习资料相关推荐
- 学习资料 | TI毫米波雷达学习网站汇总(雷达初学者必须要知道)
本文编辑:@调皮连续波,保持关注调皮哥,获得更多学习内容和建议! 大家好,我是调皮哥!依稀还记得当初自己学习毫米波雷达的时候,走了很多弯路,导致自己浪费了很多时间,学了毫米波雷达很久都没有入门.现在回 ...
- 初学者---Android 学习资料
转自: 1.hanhailong/AndroidStudyResources https://github.com/hanhailong/AndroidStudyResources 2.Android ...
- 给初学者的精品学习资料,记得及时下载
想学习的童鞋福利来啦,是什么请看下面的内容 学习C.C++,java等相关的童鞋注意啦,你们还在为找资料而犯愁吗?资料太多又担心看不完,小编特意整理出来一些精品的学习资料,现在把它们分享出来,有需要的 ...
- 忠告初学者学习Linux系统的8点建议
忠告初学者学习Linux系统的8点建议 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到 ...
- 教程 | 一文读懂自学机器学习的误区和陷阱(附学习资料)
来源:机器学习与统计学 本文约6296字,建议阅读10分钟. 本文为你指出一些自学的误区,推荐学习资料,提供客观可行的学习表并给出进阶学习的建议. 后台回复"20190426"获取 ...
- 限时删!一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)
AI 显然是最近几年非常火的一个新技术方向,从几年前大家认识到 AI 的能力,到现在产业里已经在普遍的探讨 AI 如何落地了. 计算机视觉目前在很多领域都已经实现了商业应用,从现实市场规模角度,目前人 ...
- 【干货】机器学习经典书PRML 最新 Python 3 代码实现,附最全 PRML 笔记视频学习资料...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 将 Bishop 大神的 PRML 称为机器学习圣经一点也不为过,该书系统地介绍了 ...
- python课程推荐-推荐几个优质的 Python 学习资料(良心推荐,非广告)
首先需要和大家说明一下...最近一两个月我都没怎么更新文章,一是因为发生的事情比较多,时间不是很够(四月份去北京找了实习,五月份回到学校做毕设),二是因为我比较懒 � 没有坚持一两周写一篇,在此和大家 ...
- python自学书籍顺序-【经验分享】自学Python的学习顺序!附学习资料
自学Python要按照什么样的学习顺序?首先要有一个详尽的学习大纲,对于学习Python的各种知识点要安排的详略得当,做到由易到难,循序渐进,才能长久的坚持学下去.除了基础的理论知识,项目实战也是自学 ...
最新文章
- 常用的设计模式汇总,超详细!
- JavaScript异步调用的发展历程
- 如何再发行 SAPI 5.1 核心组件
- 上海2021年高考成绩排位查询,2021年上海各高中高考成绩排名及放榜最新消息
- 原生js实现一个tab栏的标签操作
- 解决margin-top塌陷问题的六种方法
- linux到windows的ssh,ssh如何使用pxsh从linux到windows
- 如何在 Ubuntu 中安装和删除软件
- python模块 - re模块使用示例
- winload.exe 数字签名无法验证解决方法
- 刷脸支付会逐步取代扫码成为主流支付方式
- 软件测试教程从入门到精通
- 小米手机助手linux,小米手机助手怎么用?小米手机助手教程
- 沟通CTBS助真科电子跨平台接入
- JavaWeb后端开发框架SSM+前端框架Layui简介
- 那个单位用计算机系统冷却,消防知识100题
- 无人驾驶学习笔记-NDT 配准
- log4j2远程执行漏洞原理以及解决方案
- php文件上传漏洞攻击与防御
- Android之APP跳转到权限设置界面适配华为、小米、vivo等