如何识别在游戏中单击对象时运行的代码

逆向工程 记忆 机器码 自动化
2021-06-23 07:28:30

我玩过使用作​​弊引擎之类的软件来修改内存、清除代码甚至注入我自己的一些代码。然而,找到合适的地方进行修改始终是一个困难。我希望能够识别当我在对象上单击鼠标时运行的代码(最终模拟整个过程)。是否有任何人都可以建议的工具或方法来执行此操作?

我过去经常使用 ollydb 和作弊引擎。

2个回答
  1. 在窗户上你可以

    查找winproc函数,在其中搜索单击消息并从那里添加断点/跟踪...

  2. 在不同的操作系统上

    跟踪鼠标处理程序...

  3. 如果使用 OpenGL

    对象的选择往往是由它直接在渲染过程中完成的。您可以跟踪对所用函数的调用。

  4. 如果使用任何框架

    了解鼠标的功能并跟踪其调用...

在这些情况下(虽然不一定直接)一个有效的方法是使用差异调试

核心原则是两次运行应用程序并记录正在执行的功能的轨迹,如果需要更细粒度,甚至可以记录基本块。

这个想法归结为:

  • 第一次记录跟踪时,尝试使用尽可能多的功能,除了您感兴趣的功能(在您的情况下,不要按下该按钮!)。
  • 第二次直接进入您感兴趣的内容时,请按该按钮!

  • 现在,您可以通过查找仅出现在第二个(而不是第一个)中的命中来过滤掉第二个跟踪中的噪声

这不是一个完美的方法,但它可以很好地在几种情况下缩小搜索范围。

无耻的插件: 这是我博客链接,我在其中讨论了一个类似的(本质上)问题。甚至还有一些旧代码可以帮助您入门。