概述
逆向工程初学者学习资料
以下是根据个人推荐的学习资料编制的列表,以帮助人们学习如何对视频游戏进行逆向工程。
我希望它能帮助其他人花更多的时间学习,减少搜索的时间。此处收集的大部分资源将侧重于在 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
最后
以上就是优美紫菜为你收集整理的游戏安全初学者学习资料逆向工程初学者学习资料推荐学习顺序逆向所需的软件选择正确的工具必读的初级资料必看的 YouTube 频道其他真正有用的资料有用的站点您想了解的常用关键字的全部内容,希望文章能够帮你解决游戏安全初学者学习资料逆向工程初学者学习资料推荐学习顺序逆向所需的软件选择正确的工具必读的初级资料必看的 YouTube 频道其他真正有用的资料有用的站点您想了解的常用关键字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复