【CE】Mac下的CE教程Tutorial:进阶篇(第9关:共享的代码)

news2024/11/13 3:47:59

▒ 目录 ▒

    • 🛫 导读
      • 开发环境
    • 1️⃣ 第9关:共享的代码
      • 翻译
      • 操作
    • 🛬 文章小结
    • 📖 参考资料

🛫 导读

开发环境

版本号描述
文章日期2023-03-
操作系统MacOS Big Sur 11.5
Cheat Engine7.4.3

1️⃣ 第9关:共享的代码

在这里插入图片描述

翻译

Step 9: Shared code: (PW=31337157)
This step will explain how to deal with code that is used for other object of the same type

Often when you've found health of a unit or your own player, you will find that if you remove the code, it affects enemies as well.
In these cases you must find out how to distinguish between your and the enemies objects.
Sometimes this is as easy as checking the first 4 bytes (Function pointer table) which often point to a unique location for the player, and sometimes it's a team number, or a pointer to a pointer to a pointer to a pointer to a pointer to a playername. It all depends on the complexity of the game, and your luck

The easiest method is finding what addresses the code you found writes to and then use the dissect data feature to compare against two structures. (Your unit(s)/player and the enemies) And then see if you can find out a way to distinguish between them.
When you have found out how to distinguish between you and the computer you can inject an assembler script that checks for the condition and then either do not execute the code or do something else. (One hit kills for example)
Alternatively, you can also use this to build a so called "Array of byte" string which you can use to search which will result in a list of all your or the enemies players
In this tutorial I have implemented the most amazing game you will ever play.
It has 4 players. 2 Players belong to your team, and 2 Players belong to the computer. 
Your task is to find the code that writes the health and make it so you win the game WITHOUT freezing your health
To continue, press "Restart game and autoplay" to test that your code is correct

Tip: Health is a float
Tip2: There are multiple solutions

9关:共享的代码
这一步将解释如何处理使用相同类型对象的代码。

当你发现单位或你自己的玩家的健康时,如果你删除代码,它也影响敌人。
在这种情况下,您必须找出如何区分您和敌人对象的代码。

有时,这很容易检查前4个字节(函数指针表),这通常指向玩家的唯一位置,有时它是团队号码,或指向玩家名称的指针的指针。这一切都取决于游戏的复杂性以及您的运气。

最简单的方法是找到你找到的代码写入的地址,然后使用解剖数据功能比较两个结构。(你的单位/玩家和敌人),然后看看你是否可以找到一种方法来区分它们。

当你找到如何区分你和计算机时,你可以注入一个汇编脚本,检查条件,然后选择不执行代码或做其他事情。(一击杀死等例子)

另一种方法是使用这个来构建一个所谓的“字节数组”字符串,你可以使用它来搜索,这将导致您或敌人玩家的列表。

在这个教程中,我实现了你将曾经玩的最令人惊叹的游戏。
它有4个玩家。2个玩家属于您的团队,2个玩家属于计算机。

您的任务是找到代码写入健康,使您赢得游戏而不冻结您的健康。
要继续,按“重新启动游戏和自动播放”来测试您的代码是否正确。

提示1:健康是浮点数
提示2:有多种解决方案

操作

  1. 定位4个健康值的地址。
    单浮点、精确值,多次扫描,定位4个玩家的健康值地址。
    在这里插入图片描述
  1. 分析4个健康值访问代码。
    分别攻击4个玩家,查看什么地址访问了这4个健康值。
    在这里插入图片描述
  1. 分析4个对象的标识(用于区分我方和敌方)
    3.1 在《Memory Viewer》窗口中,选择《工具 -> Dissect data/structures》菜单
    在这里插入图片描述
    3.2 结构分析窗口中,新建玩家对象结构体
    在这里插入图片描述
    3.3 在《结构分析》对话框中,额外新增3个地址,并将4个玩家的地址放入4个编辑框中。
    在这里插入图片描述
    3.4 分析
    在下图中,找到对象不同的属性(红色的几组数值),其中有偏移0x14中可以分为两组(1和2),可以用于区分我方和敌方。
    在这里插入图片描述
  1. 编写代码注入,保证我方获胜(检测到是我方对象,不掉血)
    4.1 在地址"tutorial-x86_64"+2CDD9创建代码注入模板。
    在这里插入图片描述
    4.2 在newmem: 标签下增加下面代码:
cmp [rbx+0x14], 1
je exit

4.3 将脚本添加到地址表
在这里插入图片描述

5 按照如下步骤验证
在这里插入图片描述
通关,撒花。
在这里插入图片描述

🛬 文章小结

操作步骤中,代码注入有多种实现方案,除了我们实现的方案检测到是我方对象,不掉血,我们还可以

  • 检测到是敌方对象,血量清零。
  • 检测到是我方对象,增加血量。

📖 参考资料

  • 【CE】Mac下的CE教程Tutorial:基础篇(第6关:指针) https://blog.csdn.net/kinghzking/article/details/129848329

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

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

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

相关文章

Python数据分析matplotlib学习

Python数据分析的工具和库包括: 1.Jupyter Notebook:用于交互式数据分析和可视化。 2.NumPy:用于进行数值计算和数组操作。 3.Pandas:用于数据处理和清洗。 4.Matplotlib:用于数据可视化。 5.Scikit-learn:…

MAZDA CX-50没现车怎么办?赶紧去VR看车啊!

爱车一族往往都有过这样的经历:听说某家品牌出了一款心仪的新车,于是一直心心念念想要先睹为快。然而这时候问题就来了:新车从发布到量产上市往往要经历一段过程。没有现车的日子里,就算每天去4S店蹲守也看不到新车。那种心里痒痒…

集成学习详细总结(不涉及数学理论部分)

集成学习(Ensemble Learning) 1概念 集成学习就是将多个弱学习器组合在一起,从而得到一个更好更全面的强监督学习器模型。其中集成学习被分为3大类:bagging(袋装法)不存在强依赖关系,其中基学…

Pytorch深度学习笔记(一)前瞻概述

目录 1.人类智能Human intelligence 2.机器学习Machine learning 3.学习系统Learning System 4.神经网络neural network 课程推荐:《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibili 1.人类智能Human intelligence 人类智能Human intelligence:把视…

2023年第十四届蓝桥杯javaB组省赛真题

👨‍💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎞️文章介绍:2023年第十四届蓝桥杯javaB组省赛真题 🎉所属专栏:算法专栏 🎁 ps:点…

批量自动翻译软件-准确的翻译软件

现代社会,在全球化背景下,语言障碍是碍企业发展的主要因素之一。而翻译软件的出现,为人们跨越语言障碍带来了新的解决方案。针对翻译需要大量文字内容的情况,有一些能翻译大量文字的翻译软件: 147CGPT翻译软件特点&…

【硬件】嵌入式板卡硬件电路设计、焊接

文章目录嵌入式板卡电路 框图常用焊接工具和焊接操作 框图一、元器件//——有极性——//1 肖特基二极管2 钽电容3 三极管4 MOS5 LED6 SMAJ5.0CA(TVS管)8 SRV05-4(ESD管)7 电解电容//——无极性——//1 电容2 电阻3 电感4 保险丝//…

软件测试别再说简历项目不会写了,给你安排的明明白白

目录 个人信息 职业技能 工作经历 项目经历 工作经历 项目经历 教育经历 自我评价 个人信息 姓 名:xxx 性 别:女 手 机:xxxxxxxxxxxx 最高学历:统招硕士 工作年限:3 年 职…

Linux搭建docker

1. 查看系统的内核版本 [rootwide ~]# uname -r 3.10.0-1160.el7.x86_642. 将yum更新到最新版本 [rootwide ~]# yum upate -y Complete!3. 安装Docker所需的依赖包 [rootwide ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2 Loaded plugins: fastes…

Ae:几何选项

在 Ae 中,一个图层开启 3D 之后,会多出几何选项 Geometry Options和材质选项 Material Options两个属性组。如果“几何选项”不可用,可尝试“更改渲染器” Change Renderer,比如,在合成设置中将“经典 3D” Classic 3D…

SpringBoot使用Freemarker导出word模板(OpenXML)

1、OpenXML word.docx文档另存为xml之后会生成带有OpenXML标签的文档。 1.1、常用标签示意 标签解释<w:wordDocument>XML文档开头描述&#xff0c;包括各种命名空间的描述<o:DocumentProperties> <o:CustomDocumentProperties> <w:fonts> <w:sty…

算法总结-深度优先遍历和广度优先遍历

深度优先遍历(Depth First Search&#xff0c;简称DFS) 与广度优先遍历(Breath First Search&#xff0c;简称BFS)是图论中两种非常重要的算法&#xff0c;生产上广泛用于拓扑排序&#xff0c;寻路(走迷宫)&#xff0c;搜索引擎&#xff0c;爬虫等。 一、深度优先遍历 深度优先…

网络编程三要素

网络编程三要素 IP、端口号、协议 三要素分别代表什么 ip&#xff1a;设备在网络中的地址&#xff0c;是唯一的标识 端口号&#xff1a;应用程序在设备中的唯一标识 协议&#xff1a;数据在网络中传输的规则 常见的协议有UDP、TCP、http、https、ftp ip&#xff1a;IPv4和…

mongodb $lookup 联表查询

ollection orders : orders record example collection items :items record example $lookup 联表查询 通过item字段连接两个集合orders和items,然后使用 $replaceRoot 中的 $mergeObjects 合并成items和orders的连接文档 db.orders.aggregate( [{$lookup: {from: …

ChatGPT原理解析

文章目录Transformer模型结构构成组件整体流程GPT预训练微调模型GPT2GPT3局限性GPT4相关论文Transformer Transformer&#xff0c;这是一种仅依赖于注意力机制而不使用循环或卷积的简单模型&#xff0c;它简单而有效&#xff0c;并且在性能方面表现出色。 在时序模型中&#…

Databend 开源周报第 88 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.com 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Support Eager…

瑞吉外卖——后台系统登录与退出功能

目录 一、登录功能 1.1 思路 1.2 代码 1.3 完善登录功能——过滤器 一、登录功能 1.1 思路 将页面提交的密码password进行md5加密处理 根据页面提交的用户名username查询数据库 如果没有查询到则返回登录失败结果 密码比对&#xff0c;如果不一致则返回登…

你真的会用background属性?

引言 在日常前端开发中&#xff0c;经常需要进行背景或背景图的处理。但是大多数前端er并未真正清楚背景的正确使用方式。经过本章的学习&#xff0c;相信你一定可以解决99%的背景处理问题。 一&#xff1a;简单使用 背景颜色和背景图片是可以共同出现的 div {width: 300px…

STM32F407移植LVGL基于RT-Thread和无操作系统版本

文章目录一、无操作系统1.源码获取&#xff1a;2.输出设备配置&#xff08;屏幕配置&#xff09;几个关键函数屏幕初始化函数&#xff1a;显示刷新(画点)函数3.输入配置&#xff08;触摸&#xff09;4.提供时基二、RT-Thread1.新建工程2.添加软件包&#xff0c;屏幕相关文件以及…

3.5 二维随机变量函数的分布

学习目标&#xff1a; 要学习二维随机变量的分布&#xff0c;我可能会遵循以下步骤&#xff1a; 了解基本概念&#xff1a;我会开始学习二维随机变量、联合概率密度函数、边缘概率密度函数、条件概率密度函数、期望值和方差等基本概念&#xff0c;以确保我对这些概念有一个牢固…