文章目录
- 笔记前言
- Introduction
- Prerequisites
- Skills you will learn
- Additional Topics
- Computer Science
- Universal Process
- Demystifying Computers
笔记前言
文章的标题根据油管自动生成进行分类,方便对应视频进行定位
笔记根据 Guided Hacking 发布的 CS420 课程完成相关记录和总结,欢迎您熟悉原视频或有相关基础讨论分享!
Introduction
课程介绍关于 GameHacking 的一切,包括上帝模式、飞行 Hex 编辑、文件编辑、穿墙。
课程会深入理论和实践,接下来将重新学习 0 和 1 如何组成游戏,课程结束的第一天将开始制作一个简单的 trainer,讨论一些前言的 Game Hacking Topic,比如反作弊系统,以及我们使用的工具的内部工作原理。
当你成为一个逆向工程师时,将讨论 Game Hacking 过程中的开放问题,你将成为解决这些问题的一份子。
Prerequisites
多数人将会告诉你要先学习 C、C++、C#,并去读一堆书,这是没有必要的,作者不懂任何编程时,只是边学边走,成功的第一预测因素只是你学习的决心,你会发现很多事情并没有像人们想象的那么复杂。视频的目标是用简单的方法给你留下深刻的印象。
作者推荐了他自制的帮助 teach game hacking and x86/x64 assembly 的游戏,名为 Squally,已上架 Steam
Skills you will learn
现在回顾一下我们需要掌握的所有技能:
- MEMORY EDITING 内存编辑是很关键的部分,涉及到传送、金钱等等
- ASSEMBLY EDITING 汇编编辑是内存编辑的更高级版本,实现起来要困难的多。举例当你需要锁定你的生命值为100,如果使用内存编辑,你只能设置一个计时器每毫秒修改一次生命值,但你的生命值没有真正锁住!我们可以禁用复制减少生命值的代码
- HEX EDITING 十六进制编辑是一个有用技能,有时内存编辑不能起到完全作用
- PACKET EDITING 数据包编辑是发送到游戏后端的信息,例如如果你想购买一个200金币的物品,你可以发送一个数据包说明你要购买的物品,把数字改成-200,服务器就会给你200金币
- BOTTING 这是最顶峰的内容,也是最具有争议的地方
Additional Topics
帮助扩大理解,但不一定对所有游戏有效的内容:
- Graphics Injection
- Resource Editing
- Browser game hacking (editing JS,Flash,Decompiling)
- JVM/CLR game hacking
- Emulated games
- Anti-cheat systems
- Memory editior implementation
Computer Science
前面的基础都建立在你了解一定的 Computer science 上,打个比方,你可以成为一名铁匠,但你也想了解冶金学,如果你要制作一把剑,你需要知道使用什么金属。如果你是个铁匠学徒你可以问你的老板用什么金属,但你如果是一个逆向工程师,你也可以在特定时期忽略计算机基础科学,但仍然很重要,我们将会结合讲解。
- 如果是单机游戏,你更需要关注这些本地数据
- 如果是网络游戏,你更需要关注一些数据包之类的信息,我们不需要去接触密码学
你将会深入了解程序如何在计算机上运行,以及如何是他们执行你希望他们执行的操作
Universal Process
主要的几个 game hacking 过程就是如下:
- Find thing to exploit or hack
- Try exploit or hack
- See if it worked
如果你要修改一个文件,你先在文件中找到想要改变的信息,然后改变他,最后启动文件确认。
Demystifying Computers
大多数黑客不会用 0 和 1 来思考,有时我们会用字节来思考整数、浮点数、字符串、指令结构、内存页,这些是程序的分子,他们使我们能够思考复杂的事情。我们将会从 0 和 1 模型转向更深入的东西。