CE修改器入门:运用代码注入

简介: 从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。

从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。

代码注入是将一小段你写出的代码注入到目标进程中并执行它的技巧。在这一步教程中,你将有一个健康值和一个每按一次将减少 1 点健康值的按钮,你的任务是利用"代码注入",使每按一次按钮增加2点的健康值。

步骤 7: 代码注入: (密码=013370)

教程中每按一次按钮,会自动减少1点血,你的任务是将其改成每按一次按钮增加2点血。
还记得第5关的不伤血的修改方法吗?这一关就是第5关的加强版。
推荐你从原代码中删除减少健康值的那行代码,否则你得加 3 点健康值。

老样子,根据动态数据反复查找,查找血量的地址,然后再地址上 右键=> 查找写入的地址,为啥不是查找访问的地址呢?这里不需要明白,照着做就可以了

image.png

然后按一下打我按钮,会出现一行汇编代码 0042585D - 83 AB 78040000 01 - sub dword ptr [ebx+00000478],01 <<

这条指令的作用是,将[ebx+678]地址中的数据减1,sub为减法的汇编格式。

image.png

双击那行代码,看下详细信息:

image.png

这行代码什么意思呢?sub 大家都知道是减少的意思

图示红框处:EBX=0184D5E0,我们用计算器算一下(注意是16进制的)

image.png

184D5E0+ 478 = 184DA58 ---> 正好是血量的动态地址

sub [ebx+00000478] = sub [184DA58] 够清楚了吧,这就是让血量减1的代码(1省略了),其实CE中也有提示 Decrement by 1 。

明白了这行代码的意思,我们回去看看Tutorial的要求:把减1改成加2。

继续操作。选择反汇编程序,如下步骤

image.png

点击工具,选择自动汇编

image.png

第一步:选择CT表框架代码

image.png

第二步:选择代码注入

image.png

对应的地址不要搞错了,是"Tutorial-i386.exe"+2585D,这里不需要动,保持默认就可以

image.png

然后按确定,会自动生成汇编代码,这些代码是什么意思,我们不用管,找到关键的一行:sub dword ptr [ebx+00000478],01

image.png

将原来的sub dword ptr [ebx+00000478],01,改成 add dword ptr [ebx+00000478],02,每次递增2

image.png

然后在地址栏就可以看到这个脚本了,点击前面的 单选框 执行,然后点击Tutorial中的打我,这关就可以过了。

image.png

你感觉到他的神奇了吗?逆天级的修改:

1、怪物每次打我从伤血变成加血。
2、子弹越打越多。
3、钱越花越多。

如果你学会了这一关,你已经脱离菜鸟的行列了,已经可以对付绝大部分的游戏了。

目录
相关文章
|
5月前
|
编译器 C# 开发者
C# 10.0中的全局`using`指令:简化命名空间引用的新方式
【1月更文挑战第4天】本文介绍了C# 10.0中引入的全局`using`指令,该指令允许开发者在项目级别统一管理命名空间引用,从而消除源文件中重复的`using`语句。全局`using`指令通过减少冗余代码、提高可维护性和统一命名空间管理,为开发者带来了更高效的编码体验。文章详细解释了如何实现全局`using`指令,并探讨了其在实际项目中的优势和适用场景。
|
5月前
|
前端开发 JavaScript 安全
对象属性值的黑魔法:ES8的简化语法让你的代码更简洁
对象属性值的黑魔法:ES8的简化语法让你的代码更简洁
|
11月前
|
存储 监控
2.4 CE修改器:代码替换功能
代码替换功能,需要使用 Cheat Engine 工具的“代码查找”功能,来查找游戏数据存储在内存中的地址。首先找到当前数值的存储地址,并将其添加到下方地址列表中。然后右键单击该地址,并选择“找出是什么改写了这个地址”,将弹出一个空白窗口。接着,点击本教程窗口上的“改变数值”按钮,并返回 Cheat Engine,如果操作没有问题,在空白窗口中将出现一些汇编代码。选中代码并点击“替换”按钮,将其替换为什么也不做的代码(空指令),同时,修改后的代码也将放置在“高级选项”的代码列表中保存。点击“停止”,游戏将以正常方式继续运行,关闭窗口。现在,再次点击教程窗口上的“改变数值”,如果锁定速度足够快,
183 0
2.4 CE修改器:代码替换功能
|
5月前
|
XML Java 数据格式
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
64 0
|
11月前
|
存储
2.6 CE修改器:代码注入功能
从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。代码注入是将一小段你写出的代码注入到目标进程中并执行它的技巧。在这一步教程中,你将有一个健康值和一个每按一次将减少 1 点健康值的按钮,你的任务是利用"代码注入",使每按一次按钮增加2点的健康值。
80 0
|
11月前
|
存储 C语言 开发者
2.8 CE修改器:寻找共享代码
本关我们将学习共享代码,在C语言中角色属性都是以结构体的方式进行存储的,而结构体所存储的信息都是连续性的,这一关我们将会解释如何处理游戏中的共用代码,这种代码是通用在除了自己以外的其他同类型对像上的常常你在修改游戏的时候,你找到了一个单位的健康值或是你自己角色的生命值,你会发现一种情况,如果你把生命值相关代码移除的话,其结果是你的角色无敌,但你的敌人也无敌了,这就是共享代码的问题。
53 0
|
JSON Java 数据库
代码重构实战-将值对象改为引用对象(Change Value to Reference)
一个数据结构中可能包含多个记录,而这些记录都关联到同一个逻辑数据结构。例如,我可能会读取一系列订单数据,其中有多条订单属于同一个顾客。遇到这样的共享关系,既能将顾客信息作为值对象看待,也能将其视为引用对象
97 0
|
存储 数据安全/隐私保护
CE修改器入门:代码替换功能
某些游戏重新开始时,数据会存储在与上次不同的地方, 甚至游戏的过程中数据的存储位置也会变动。在这种情况下,你还是可以简单几步搞定它。这次我将尽量阐述如何运用"代码替换"功能,第五关的数值每次启动教程的时候都会存放在内存不同的位置,所以地址列表中的固定地址是不起作用的。
389 0
CE修改器入门:代码替换功能
|
存储 C语言 数据安全/隐私保护
CE修改器入门:查找共享代码
本关我们将学习共享代码,在C语言中角色属性都是以结构体的方式进行存储的,而结构体所存储的信息都是连续性的,这一关我们将会解释如何处理游戏中的共用代码,这种代码是通用在除了自己以外的其他同类型对像上的 常常你在修改游戏的时候, 你找到了一个单位的健康值 或是你自己角色的生命值, 你会发现一种情况: 如果你把生命值相关代码移除的话,其结果是你的角色无敌, 但你的敌人也无敌了,这就是共享代码搞的鬼。
422 0
CE修改器入门:查找共享代码
|
数据安全/隐私保护
CE修改器入门:未知数值扫描
经过第二关的练习,你已经理解了如何利用"精确数值"扫描查找数值了,让我们进行下一步,本关主要用来搜索进度条,人物血条等,因为这些数据通常是一个进度条,我们无法直接看到的数据,此时可以通过变更的数据一步步筛选找到动态地址。
365 0
CE修改器入门:未知数值扫描