CS420 课程笔记 P6 - 游戏逆向中的虚拟内存

这篇具有很好参考价值的文章主要介绍了CS420 课程笔记 P6 - 游戏逆向中的虚拟内存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Intro

在上个视频中,我们知道有些地址在你重进游戏时就会无效,有的有时有效,我们需要了解称为虚拟内存的东西

记住这些信息:当你双击打开 Squally.exe 游戏时,系统会复制一份并放到内存中!

当程序运行时,首先给一组虚拟内存,此时系统内存的分配是:

  • 0~2GB 之间某个地方作为开始,存放 copied exe
  • 2~8GB 从某个位置开始到结束都是系统使用 memory reserved for system use

那么 copied exe 到系统占用的开始部分,都是空余内存 free momory

一般来说,当系统是 32-bit 或者打开的是 32-bit program 时,游戏可以使用大约 2GB 的内存,而 64位 比这大得多,我们先关注 32位 的游戏,当游戏运行时,我们拥有了复制的 exe 文件,并且有大量的 free memory

在 copied exe 中,我们有两部分:

  • Data
  • Code
    重要的是 Code 可以创建新的数据 new Data,当 Squally.exe 启动后,他可能会加载用户界面,加载世界,世界又会加载玩家,怪物,这是一整棵树,涉及的数据和类型非常多。需要注意的是,所有这些对象都只是数据,除了 exe 之外!

Virtual memory

那么在这个程序申请的 2GB 内存中,除了 copied exe,还有许多 allocated objects,上面初始化的用户界面,数据,玩家,怪物都是 allocated object,当回到主菜单时他们就会被 Delete 或者 Dispose,初始化这些数据的时候位置几乎是随机的,所以我们重新打开游戏他们很有可能就会转移到其他的位置

几乎所有事情都是动态的,除了 copied exe 中的数据!

Example!

上面的内容是抽象难以理解的,接下来我们将给出一个例子,把 Squally.exe 游戏拖到 HxD 中,这里我找了一个其他的软件,但大体一致,我们会发现里面还是有很多可以读懂的东西,我们理论上可以在 CE 中读取到这些相同的信息!

CS420 课程笔记 P6 - 游戏逆向中的虚拟内存,逆向工程,笔记,windows
使用 CE 附加到打开的 exe,然后点击 Memory view 进入内存视图

CS420 课程笔记 P6 - 游戏逆向中的虚拟内存,逆向工程,笔记,windows
CE 有一个很酷的技巧,可以右键然后点击 Goto Address,然后输入你的软件名,比如这里是 PvZ_Toolkit_v1.20.3.exe,他就会帮你找到这个 copied exe 所加载在的地址

CS420 课程笔记 P6 - 游戏逆向中的虚拟内存,逆向工程,笔记,windows
此时你也会发现,这里的数据和 HxD 中所见到的数据几乎是完全一样的!

CS420 课程笔记 P6 - 游戏逆向中的虚拟内存,逆向工程,笔记,windows

Static example

现在你了解了从磁盘复制到虚拟内存的清晰实例,现在让我们做一些有趣的事情

程序员可以将某些信息标记为静态,比如玩家的血量和生命值,通常作为程序员新手都会把生命值之类的信息作为静态存储,举个例子,User Interface 需要访问玩家血量,此时如果玩家是动态创建的,往往通信难度就提高了,所以很多程序员都会用静态的方法来做

然而,怪物的生命值是几乎不能用静态属性来做的,下一节我们将会介绍指针来解决非静态的内容文章来源地址https://www.toymoban.com/news/detail-694967.html

到了这里,关于CS420 课程笔记 P6 - 游戏逆向中的虚拟内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

    GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibili GAMES104官方账号 - 知乎 课程主页 课程小引擎Piccolo 课件: GAMES104_Lecture10_Physics System_Basic Concepts.pdf GAMES104_Lecture11_Physics System_Applications.pdf 物理引擎的用途: 碰撞检测 解决碰撞、其它约束限制 更新所有物体的世界坐标(w

    2024年01月17日
    浏览(50)
  • 云计算与大数据课程笔记(九)之虚拟化技术(下)

    内存复用技术是操作系统中用来高效管理和优化内存资源的一组策略。这些技术旨在提高内存利用率,减少物理内存的需求,并确保系统运行时的高性能。 内存共享技术 允许多个进程访问同一块内存区域 ,这有助于减少相同数据的多份拷贝,从而节省内存资源。内存共享可

    2024年04月16日
    浏览(50)
  • 坚持#第420天~阿里云轻量服务器内存受AliYunDunMonito影响占用解决方法

    阿里云轻量服务器内存受AliYunDunMonito影响占用解决方法,亲测有效: Mobax好卡啊,那就直接在阿里云后台操作即可,阿里云后台也可以上传文件。 Navicat mysql好卡啊,那就直接在阿里云后台最上面帮助的右边有个数据库,直接使用网页版的即可。 卡的原因是自己的网络不好,

    2024年02月06日
    浏览(44)
  • 操作系统笔记--虚拟内存的使用

            在计算机系统中,当多道程序同时运行时可能会出现内存不足的情况,一般可通过以下技术进行解决: 覆盖技术 :         当程序太大超出内存容量时,可以采用手动覆盖的技术,只把需要的指令和数据保存在内存当中; 交换技术 :         当程序太大超出内

    2023年04月21日
    浏览(33)
  • 【C++系列P6】C/C++的内存管理(超细超有料!YY打包票!)

    前言 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 ,主要内容含 目录 一.C/C++的内存管理 1.C/C++的内存分布规则 一.易错点:数组存储字符串和指针指向字符串,解引用后所在的位置不同(含例题) 2.C/C++的内存管理方式 一.使用new和delete操作

    2024年02月08日
    浏览(39)
  • ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

    根据上周的计划,我简单制作了两套基于ORACLE Primavera P6 最新发布的 23.12 版本预构建了虚拟机环境,里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机,请先与Oracle Primavera销售代表取得联系,以获取所需的应用程序授

    2024年02月03日
    浏览(38)
  • 《深入理解Java虚拟机》读书笔记:内存分配策略

    Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事

    2024年02月13日
    浏览(56)
  • 《深入理解Java虚拟机》读书笔记:Java内存区域

    Java内存区域包含程序计数器、虚拟机栈、本地方法栈、Java堆、方法区五个区域。 运行时数据区分类   Java内存区域   程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的信号指示器。 字节码解释器工作时就是通过改变这个计数

    2024年02月14日
    浏览(51)
  • 《深入理解Java虚拟机》读书笔记:内存分配与回收策略

    Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事

    2024年02月13日
    浏览(42)
  • ChatGPT在智能虚拟剧情和游戏对话中的应用如何?

    ChatGPT在智能虚拟剧情和游戏对话中的应用正逐渐引领着娱乐产业的创新浪潮。作为一种先进的自然语言处理技术,ChatGPT能够模拟人类对话、生成逼真的对白,为虚拟剧情和游戏中的角色赋予更多深度和个性。本文将详细探讨ChatGPT在智能虚拟剧情和游戏对话中的应用情景。

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包