版本号 | 描述 | |
---|---|---|
文章日期 | 2023-03- | |
操作系统 | MacOS Big Sur 11.5 | |
Cheat Engine | 7.4.3 | |
步骤 7:代码注入:(PW=013370)
代码注入是一种技术,其中将一段代码注入到目标进程中,然后重新路由代码执行,使其通过您编写的代码。
在本教程中,您将拥有一个健康值(Health)和一个按钮,每次单击该按钮,健康值会减少1。您的任务是使用代码注入使按钮每次单击时将您的健康值增加2。
首先找到地址,然后找到写入该地址的内容。
然后,当找到减少健康值的代码时,请在反汇编器中浏览到该地址,并打开自动汇编器窗口(Ctrl + A)。
在那里,单击“模板”,然后单击“代码注入”,并将其给定健康值减少的地址(如果尚未正确填写)。
这将生成一个基本的自动汇编器注入框架,您可以在其中编写您的代码。
还请注意 newmem:和 originalcode:以及文本“在此处放置您的代码”。正如您猜到的那样,请在此处编写代码,以将健康值增加 2。在这种情况下,有用的汇编指令是“ADD 指令”,以下是一些示例:
“ADD [00901234],9” 将 00901234 处的地址增加 9
“ADD [ESP+4],9” 将 ESP+4 指向的地址增加 9
在这种情况下,您将必须使用与原始代码相同的括号内的内容,因为原始代码会减少您的健康值。
注意:
建议删除减少健康值的原始代码部分,否则您需要增加 3 点健康值(您增加了 3 点,原始代码减少了 1 点,所以最终结果是增加了 2 点),这可能会让人感到困惑。但这完全取决于您和您的编程。
注意2:
在某些游戏中,原始代码可能由多个指令组成,有时(但不总是)可能会发生在其他位置的代码跳转到您的跳转指令,然后导致未知的行为。
如果发生这种情况,通常应该在该指令附近查找跳转并进行修复,或者甚至选择使用不同的地址进行代码注入。
只要您能够从注入的代码内部找到要更改的地址即可。
上面的翻译中,内容很多,但是目标很简单:
使用代码注入使按钮每次单击时将您的健康值增加2
。
其中提到了代码注入
,该词在翻译的最开头也给了解释:代码注入是一种技术,其中将一段代码注入到目标进程中,然后重新路由代码执行,使其通过您编写的代码
。其实代码注入
就是inline Hook
,CE通过不同模板实现代码注入
,达到修改代码的目的。
我们本小节,先使用直接修改代码的方案实现任务。先确认任务目标怎样能完成。
- 定位目标健康值(Health)地址,参考之前的文章即可。
- 分析代码
从上图中可以看出,代码执行了健康值减1
的操作。
根据目标要求,我们将该代码改为健康值加2
。
接下来,我们通过
代码注入
方式,实现目标。
- 重新打开教程软件,按照《非代码注入完成任务》章节中的步骤1~3,打开《Memory Viewer》窗口。
- 本节涉及到
汇编
知识,需要有一定的基础。代码注入
本质就是Hook
,有Hook
经验的,对该操作不会有任何障碍的,可以参考detour等hook框架原理。
**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。