逆向工程初学者学习资料

以下是根据个人推荐的学习资料编制的列表,以帮助人们学习如何对视频游戏进行逆向工程。
我希望它能帮助其他人花更多的时间学习,减少搜索的时间。

此处收集的大部分资源将侧重于在 Microsoft Windows 操作系统上使用 x86 汇编而不是 x64 来逆向PC 游戏,因为它更容易学习。

逆向工程视频游戏通常与“游戏黑客”相关,它们来来去去,所以如果某些学习材料来自此类网站/来源,请不要感到惊讶。

推荐学习顺序

  1. 了解如何在 Google 上高效搜索,您的所有答案和资源都可以在互联网上找到
  2. 学习使用 Cheat Engine
  3. 了解十六进制和二进制编号系统,以及一般的计算机内存
  4. 学习 x86 汇编
  5. 学习 C++
  6. 学习使用 IDA/Ghidra
  7. 学习游戏编程的基础知识
  8. 了解 Win32 API 的基础知识
  9. 了解 Windows 操作系统的内部工作原理,也就是 Windows 内部结构
  10. 练习,练习,练习……

逆向所需的软件

不建议在有反作弊系统的多人游戏时运行任何这些工具(尤其是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

游戏安全初学者学习资料相关推荐

  1. 学习资料 | TI毫米波雷达学习网站汇总(雷达初学者必须要知道)

    本文编辑:@调皮连续波,保持关注调皮哥,获得更多学习内容和建议! 大家好,我是调皮哥!依稀还记得当初自己学习毫米波雷达的时候,走了很多弯路,导致自己浪费了很多时间,学了毫米波雷达很久都没有入门.现在回 ...

  2. 初学者---Android 学习资料

    转自: 1.hanhailong/AndroidStudyResources https://github.com/hanhailong/AndroidStudyResources 2.Android ...

  3. 给初学者的精品学习资料,记得及时下载

    想学习的童鞋福利来啦,是什么请看下面的内容 学习C.C++,java等相关的童鞋注意啦,你们还在为找资料而犯愁吗?资料太多又担心看不完,小编特意整理出来一些精品的学习资料,现在把它们分享出来,有需要的 ...

  4. 忠告初学者学习Linux系统的8点建议

    忠告初学者学习Linux系统的8点建议 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到 ...

  5. 教程 | 一文读懂自学机器学习的误区和陷阱(附学习资料)

    来源:机器学习与统计学 本文约6296字,建议阅读10分钟. 本文为你指出一些自学的误区,推荐学习资料,提供客观可行的学习表并给出进阶学习的建议. 后台回复"20190426"获取 ...

  6. 限时删!一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)

    AI 显然是最近几年非常火的一个新技术方向,从几年前大家认识到 AI 的能力,到现在产业里已经在普遍的探讨 AI 如何落地了. 计算机视觉目前在很多领域都已经实现了商业应用,从现实市场规模角度,目前人 ...

  7. 【干货】机器学习经典书PRML 最新 Python 3 代码实现,附最全 PRML 笔记视频学习资料...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 将 Bishop 大神的 PRML 称为机器学习圣经一点也不为过,该书系统地介绍了 ...

  8. python课程推荐-推荐几个优质的 Python 学习资料(良心推荐,非广告)

    首先需要和大家说明一下...最近一两个月我都没怎么更新文章,一是因为发生的事情比较多,时间不是很够(四月份去北京找了实习,五月份回到学校做毕设),二是因为我比较懒 � 没有坚持一两周写一篇,在此和大家 ...

  9. python自学书籍顺序-【经验分享】自学Python的学习顺序!附学习资料

    自学Python要按照什么样的学习顺序?首先要有一个详尽的学习大纲,对于学习Python的各种知识点要安排的详略得当,做到由易到难,循序渐进,才能长久的坚持学下去.除了基础的理论知识,项目实战也是自学 ...

最新文章

  1. 常用的设计模式汇总,超详细!
  2. JavaScript异步调用的发展历程
  3. 如何再发行 SAPI 5.1 核心组件
  4. 上海2021年高考成绩排位查询,2021年上海各高中高考成绩排名及放榜最新消息
  5. 原生js实现一个tab栏的标签操作
  6. 解决margin-top塌陷问题的六种方法
  7. linux到windows的ssh,ssh如何使用pxsh从linux到windows
  8. 如何在 Ubuntu 中安装和删除软件
  9. python模块 - re模块使用示例
  10. winload.exe 数字签名无法验证解决方法
  11. 刷脸支付会逐步取代扫码成为主流支付方式
  12. 软件测试教程从入门到精通
  13. 小米手机助手linux,小米手机助手怎么用?小米手机助手教程
  14. 沟通CTBS助真科电子跨平台接入
  15. JavaWeb后端开发框架SSM+前端框架Layui简介
  16. 那个单位用计算机系统冷却,消防知识100题
  17. 无人驾驶学习笔记-NDT 配准
  18. log4j2远程执行漏洞原理以及解决方案
  19. php文件上传漏洞攻击与防御
  20. Android之APP跳转到权限设置界面适配华为、小米、vivo等

热门文章

  1. OSPF 之 LSA限制
  2. C++ 之 for 循环 | C++11 for 循环 | 内存 Destory 示例
  3. 怎么Collections.sort()方法进行List排序
  4. android 短信打开APP功能及注意事项
  5. DEAP Example: One Max Problem
  6. jdk安装,提示错误1335
  7. webpack优化系列七:首屏加载优化
  8. 华为链路聚合(路由器和交换机)
  9. 微信云函数的使用步骤
  10. 《算法图解》读书笔记—像小说一样有趣的算法入门书