CS420 课程笔记 P1 - 游戏逆向课程介绍

文章目录

    • 笔记前言
    • 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 过程就是如下:

  1. Find thing to exploit or hack
  2. Try exploit or hack
  3. See if it worked
    如果你要修改一个文件,你先在文件中找到想要改变的信息,然后改变他,最后启动文件确认。

Demystifying Computers

大多数黑客不会用 0 和 1 来思考,有时我们会用字节来思考整数、浮点数、字符串、指令结构、内存页,这些是程序的分子,他们使我们能够思考复杂的事情。我们将会从 0 和 1 模型转向更深入的东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地开机启动jar

1:首先有个可运行的jar包 本地以ruiyi代码为例打包 2:编写bat命令---命名为.bat即可 echo off java -jar D:\everyDay\test\RuoYi\target\RuoYi.jar 3:设置为开机自启动启动 快捷键winr----输入shell:startup---打开启动文档夹 把bat文件复…

春秋云镜 CVE-2018-16283

春秋云镜 CVE-2018-16283 WordPress Plugin Wechat Broadcast LFI 靶标介绍 WordPress Plugin Wechat Broadcast LFI 启动场景 漏洞利用 exp # Exploit Title: WordPress Plugin Wechat Broadcast 1.2.0 - Local File Inclusion # Author: Manuel Garcia Cardenas # Date:…

Spring boot 第一个程序

新建工程 选择spring-boot版本 右键创建类TestController: 代码如下: package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springf…

Empowering Long-tail Item Recommendation through Cross Decoupling Network (CDN)

Empowering Long-tail Item Recommendation through Cross Decoupling Network (CDN) 来源: KDD’2023Google Research 文章目录 Empowering Long-tail Item Recommendation through Cross Decoupling Network (CDN)长尾问题分析CDNItem Memorization and General…

非科班如何流畅转码进入计算机领域?

近年来,许多人都抱着梦想跨足计算机领域,尽管他们并非计算机科班出身。对于这个野心勃勃的群体,如何实现丝滑转码成为了一个备受瞩目的话题。本文将深入探讨这个问题,为你呈现一些实用的建议,帮助你在这个挑战充满机遇…

《存储IO路径》专题:NVME盘加载的过程

在深入了解NVMe(NVM Express)SSD(固态硬盘)在Linux系统的加载过程之前,让我们先听一个引人入胜的故事。 在未来的世界里,时间不再是线性流动的,而是呈现出多维度交织的形态。在这个世界中&…

C# 实现PictureBox从随机选择的文件夹内对图像进行随机播放

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System

是否在业务中使用大语言模型?

ChatGPT取得了巨大的成功,在短短一个月内就获得了1亿用户,并激发了企业和专业人士对如何在他们的组织中利用这一工具的兴趣和好奇心。 但LLM究竟是什么,它们如何使你的企业受益?它只是一种炒作,还是会长期存在? 在这篇文章中我…

MPI内置类型与自定义类型

内置类型 MPI_CHAR: 字符型 MPI_UNSIGNED_CHAR: 无符号字符型MPI_BYTE: 字节型MPI_SHORT: 短整型MPI_UNSIGNED_SHORT: 无符号短整型MPI_INT: 整型MPI_UNSIGNED: 无符号整型MPI_LONG: 长整型MPI_UNSIGNED_LONG: 无符号长整型MPI_FLOAT: 单精度浮点型MPI_DOUBLE: 双精度浮点型M…

python强化学习--gym安装与使用

最近开始学习强化学习,第一步肯定是要学会安装和使用pym,原本以为很简单,事实上确实很简单,但是遇到一个小问题,就是安装gym之后,在应用的过程中,游戏界面没有显示出来,了解后才知道…

原型,原型链,继承(圣杯模式)

经典模式和圣杯模式区别 经典模式和圣杯模式都是用于解决构造函数继承和原型继承的问题,但它们在实现继承的方式上有所不同。 经典模式是通过将子类的原型对象设置为父类的实例来实现继承,然后将子类的构造函数设置为子类本身。这样子类既可以继承父类…

从零开始的Hadoop学习(六)| HDFS读写流程、NN和2NN工作机制、DataNode工作机制

1. HDFS的读写流程(面试重点) 1.1 HDFS写数据流程 1.1.1 剖析文件写入 (1)客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 &#x…

springsecurity+oauth 分布式认证授权笔记总结12

一 springsecurity实现权限认证的笔记 1.1 springsecurity的作用 springsecurity两大核心功能是认证和授权,通过usernamepasswordAuthenticationFilter进行认证;通过filtersecurityintercepter进行授权。springsecurity其实多个filter过滤链进行过滤。…

Google Services Framework 谷歌服务框架的安装以及遇到的常见问题

安装谷歌三件套: 1、Google 服务框架(Google Services Framework)下载地址: https://www.apkmirror.com/apk/google-inc/google-services-framework/ 注意一定要选择与自己手机对应的安卓系统版本的服务框架。 2、Google Play Se…

Java设计模式:四、行为型模式-05:备忘录模式

文章目录 一、定义:备忘录模式二、模拟场景:备忘录模式三、改善代码:备忘录模式3.1 工程结构3.2 备忘录模式模型结构图3.3 备忘录模式定义3.3.1 配置信息类3.3.2 备忘录类3.3.3 记录者类3.3.4 管理员类 3.4 单元测试 四、总结:备忘…

超全的数据可视化大屏设计组件库 sketch格式

随着大屏可视化设计需求的发展,可视化sketch矢量素材变得越来越受欢迎,它可以为设计师提供丰富的设计元素,帮助他们更高效更快速的完成设计任务。 大屏可视化sketch数量素材是B端可视化设计师们最佳设计资源,它可以帮助设计师轻松…

React 18 在组件间共享状态

参考文章 在组件间共享状态 有时候,希望两个组件的状态始终同步更改。要实现这一点,可以将相关 state 从这两个组件上移除,并把 state 放到它们的公共父级,再通过 props 将 state 传递给这两个组件。这被称为“状态提升”&#…

Socket交互的基本流程?

TCP socket通信过程图 什么是网络编程,网络编程就是编写程序使两台连联网的计算机相互交换数据。怎么交换数据呢?操作系统提供了“套接字”(socket)的组件我们基于这个组件进行网络通信开发。tcp套接字工作流程都以“打电话”来生…

python异常

一.什么是异常 异常是一个事件,该事件会在程序执行过程中发生,会影响程序的正常运行。一般情况下,python无法正常处理一个异常,会导致程序中断。在出现异常时,为了不影响程序的正常运行,我们需要捕获异常。…

HTML+JavaScript+CSS DIY 分隔条splitter

一、需求分析 现在电脑的屏幕越来越大,为了利用好宽屏,我们在设计系统UI时喜欢在左侧放个菜单或选项面板,在右边显示与菜单或选项对应的内容,两者之间用分隔条splitter来间隔,并可以通过拖动分隔条splitter来动态调研…