IDE/Assembler 上可执行文件的实时更改

逆向工程 拆卸 部件 ollydbg 可执行 反汇编者
2021-06-26 06:53:27

我对此很陌生,对于术语的错误使用或过度解释,我深表歉意。我正在学习代码语言,我发现将它带到我的世界以便我可以更好地学习它的方式是为我玩的游戏编码。


当游戏窗口关闭时,需要调用一个函数,当角色移动或您选择一个项目时,一切都有一个命令、函数、过程或地址更改的某些值等等......我想知道的是如果有什么东西可以实时显示每次调用、每次值更改、地址值更改等...

现在我必须通过 CheatEngine 到达某个值地址,更改值直到找到正确的地址。有了这种事情,我会列出现在正在发生的事情,以及过去事情的“日志”,然后我会去到我做某事的确切时间,所以我将不得不看看那种平静列表并发现我的“某事”做了什么

  1. 点击一个按钮;
  2. 检查“单击按钮”过程中发生的实时事件;
  3. 发现是什么调用导致了它以及它做了什么;
  4. 现在我可以编写一些代码来执行“单击按钮”的操作,而无需实际单击该按钮;

我在某处看到过,这就是我在这里问的原因,如果我完全错了并且这不存在,对不起,我会删除这篇文章。

2个回答

如果作弊引擎不足,并且调试感觉太多,则可以使用 API 监控工具作为折衷方案。API 监控工具会以一种或另一种方式挂钩进程调用的所有(或大部分)API,并记录每次调用的大部分输入和输出。这显然会大大减慢过程,但如果这是可以接受的,将以可读和有用的方式提供大量数据。

我经常使用rohitab 的 API Monitor,因为它非常灵活并且能够为每个 API 提供大量信息。

听起来您需要一些实现差异调试的东西来快速查明在一种情况下执行的代码(例如单击按钮)而不是其他情况(不单击)。实现这种方法的早期工具是Pedram Amini 的PaiMei不幸的是,它已被放弃,可能无法与最近的软件一起使用。IDA 具有可用于此目的跟踪记录/差异功能您还可以基于某些调试框架或诸如 PIN 之类的 DBI 引擎编写自己的工具。