我在这里记录我所有课程的学习笔记,包括一些小技巧以及源码,俗话说好记性不如烂笔头,写在这里,用于温故而知新。
如果不满足以上的要求,你可以到此为止了!
学习 Game Hacking 非常耗时,您必须一次数周/数月地练习并获得使用每项技能的经验。
LEARN HOW TO HACK FIRST, HACK ANY GAME YOU WANT LATER
1周 | 学习使用cheat engine的绝对基础知识 |
---|---|
2 – 3 周 | 学习足够的 CE 以使用它的所有功能,如何找到指针等… |
2个月 | 充分学习 C++/C# 以创建一个 hello world 并了解编码的绝对基础知识 |
3 – 6 个月 | 有足够的经验可以根据你在 Cheat Engine 中找到的东西在 C++/C# 中制作非常基本的trainer |
6 – 12 个月 | 经验丰富,无需粘贴即可进行黑客攻击,基本的自瞄和 ESP |
1 - 1.5 年 | 中级编码/逆向技能,破解无反作弊引擎的任何游戏 |
1.5 - 2 年 | 开始逆向反作弊引擎 |
Guide - How to Solve Problems & Achieve Goal
Guide - Stop Pasting - Focus on the Basics
Video Tutorial - Squally CS420 Game Hacking Course
Guide - Game Hacking FAQ - Frequently Asked Questions
Video Tutorial - Cheat Engine Tutorial Video Guide
Video Tutorial - How To Hack Any Game - Cheat Engine
Tutorial - How to Find Position Coordinates with Cheat Engine
Tutorial - How to Find View Angles with Cheat Engine
Video Tutorial - Cheat Engine How to Pointer Scan with Pointermaps
Video Tutorial - Game Hacking with Reclass Tutorial Video 1
Learn C++ with Step by Step Guide
Tutorial - Understanding Strings Unicode, TCHAR, MBCS
Tutorial - Get Module Base Address Tutorial dwGetModuleBaseAddress
Source Code - FindDMAAddy - C++ Multilevel Pointer Function
Video Tutorial - How to Hack Any Game Tutorial C++ Trainer #1 - External
Video Tutorial - How to Hack Any Game Tutorial C++ Trainer #2 - External v2
Video Tutorial - How to Hack Any Game Tutorial C++ Trainer #3 - First Internal
Video Tutorial - Simple DLL Injector Source Code
Video Tutorial - How to Debug Your Hack or Aimbot with Visual Studio
Video Tutorial - Game Hacking with Reclass Tutorial Video 2
Video Tutorial - C++ External Detour / Hooking Function Tutorial
WTF are Multi Level Pointers Tutorial - Guided Hacking
Video Tutorial - How to find Entity List Pointer in AC!
科学的方法是:
举例如下:
问题
如何动态访问 ammo 变量?
假设
或许player类里面有ammo变量,如果可以访问player对象就可以访问ammo变量
实验
找到player对象,搜索里面的ammo变量。比较和对比 health 变量和 ammo 变量的偏移量和地址以及它们的访问方式。
观察
我们打开CE,找到健康地址和弹药地址,使用“查找什么访问”来查看它们是如何使用的。我们发现对于这些变量中的每一个,偏移量都不是从相同的对象地址偏移的。另外,当我们换枪时,弹药地址会发生变化。
我们修改我们的假设
也许有一个包含 ammo 变量的武器对象,也许在玩家类中有一个指向当前武器对象的指针。
你如何形成这个假设?
假设您是开发人员,并提出自己的逻辑来管理多个武器和武器相关变量。您如何跟踪当前正在使用的武器,以便从正确的弹药变量中减少?想出几个可能有意义的不同逻辑方法,然后测试它们。这确实是我在考虑面向对象编程时会这样做的方式,我将创建动态对象并使用指针跟踪它们,并且由于武器的所有者是玩家,我会将指针放在实体对象中。
改造实验:
取 ammo 变量的地址,减去偏移量,这将产生武器对象的地址,然后我们从这里反向工程这个结构。
观察与分析
弹药所在的结构,确实是武器对象。我们在其中找到了与武器相关的其他变量。我们还注意到它位于一系列具有相同结构和类似作用的其他武器对象中。当我们将每个弹药地址追溯到当前武器的动态多级指针,然后更改此武器时,我们会注意到玩家类中的一个指针始终指向当前武器弹药。
结论
游戏通过使用指向当前武器对象的指针来动态跟踪弹药,该对象位于武器对象数组中。当您切换武器时,指针会变为指向正确的武器。该武器的弹药变量和其他武器变量通过相对偏移量从此地址访问。
要动态访问 ammo 变量,我们只需要在运行时计算这个多级指针,它将始终指向正确的 ammo 地址。
CTRL C+CTRL V 可能是很多程序员用的最多的组合键,但是复制粘贴只会让人一无所获。
所以,对于任何别人的代码,请手敲每一行,我过去的3年编程生涯给了我惨痛的经历,我沉迷复制粘贴,也因此一无所获。
在游戏黑客的学习中,我code每一行代码,在msdn查找每一个winapi,和各种函数,我认为取得了非常不错的成果,大大加深了我的理解和记忆。但是这个过程也是极端痛苦的,不管是查询资料还是输入繁多晦涩的代码这,也是为什么大家都喜欢复制粘贴的原因。
游戏黑客不适合懒惰、愚蠢或不成熟的人。
当坚持不下去的时候,想想这句话。
这真的是很棒很棒的课程!!!相信我,你一定会有所收获的。
我已经写了几篇博文来记录我的学习,Go check them!
初学者指南: 如何绕过反作弊?
如果您不是高级编码员/黑客,请不要浪费时间。专注于学习如何在没有反作弊的情况下破解游戏。
加载作弊引擎时游戏崩溃?
将 CE 设置中的调试器更改为 VEH 调试器,如果这不起作用,请阅读指南的前几段- 如何开始使用 AntiCheat Bypass
(external or internal?)内部与外部?
External外部
External Hacks 使用 WriteProcessMemory(WPM) 和 ReadProcessMemory(RPM) 与游戏进程的内存交互。为此,您需要通过使用 OpenProcess() 和您需要的进程访问权限,通常是 PROCESS_ALL_ACCESS,请求内核为您提供进程的句柄。句柄是 RPM/WPM 的必需参数。通过使用 ObjRegisterCallbacks 阻止句柄创建,内核模式反作弊可以轻松阻止外部黑客攻击。来自 DouggemHacks 的信息. RPM/WPM 很慢,因为您有 API 调用到内核的开销。您应该限制这些调用的频率并在本地存储尽可能多的信息,以提高外部黑客的性能。如果游戏没有检测 RPM 的方法,那么制作覆盖 ESP 是制作未检测到的外部 ESP 的好方法,因为您只需要检测到 RPM。
外部的优点:
在我看来,没有与内部相比,除非您只想超级快速地修补一些字节然后关闭 hack
外部的缺点:
由于开放的进程句柄,超级容易检测
更难使用,尤其是对于初学者(WPM/RPM,获取 PID,blalba)虽然很容易掌握,因为它没有潜力
潜力较小
减缓
Internal 内部
内部 hack 是通过将 DLL 注入游戏进程来创建的,当您这样做时,您可以直接访问进程的内存,这意味着快速的性能和简单性。通过使用不同的注入方法(例如手动映射),可以使注入的 DLL 变得更加狡猾。
内部的优点:
变态的性能
易于开始
潜力巨大
如果操作得当,可能非常狡猾,几乎无法检测到
内部的缺点:
很难掌握
当您不知道自己在做什么时更容易被发现
通过CE自带的教程学习CE的使用方法,了解其功能,并且实现一些简单的cheat。
我也写了两篇博文来专门记录这部分内容。Go check them!
成功从来不容易,游戏黑客是一条艰难的道路。
在各种方面上,我都喜欢hard的东西,无论是硬核或者是艰难,它能带给我们更多的成就感。
最后放一条论坛看到的小笑话,坚持不下去的时候就笑一笑吧!
Last but not least credits go to Rake’s mom for keeping me motivated
during hard times (no pun intended).