【问题标题】:OllyDBG, follow Call FunctionOllyDBG,跟随调用函数
【发布时间】:2014-03-24 07:58:18
【问题描述】:

我最近又开始学习倒车,但在使用 OllyDBG 时遇到了问题。在调试具有每个按钮执行不同操作的按钮的 EXE 时,我似乎找不到遵循特定按钮代码的方法。

例如:我有一个带有 3 个按钮的 KeygenMe:“登录”、“关于”、“退出”。 我希望 OllyDbg 跟踪我按下“登录”按钮时发生的情况。

我该怎么做?我知道这是可能的,因为我以前做过。

【问题讨论】:

    标签: reverse-engineering ollydbg


    【解决方案1】:

    当程序从函数返回时,您可以通过要求 olly 停止来跟随按钮。 这样做:

    1. 开始调试您的 KeygenMe。
    2. 关注ollydbg窗口并按Ctrol+F9
    3. 关注 KeygenMe 并点击按钮。

    Olly 将在按钮功能返回时停止。

    有时 olly 可能会像在 user32.dll 中那样停在离你想去的地方有点远的地方,所以你需要追溯你的方式。

    您可以使用两种技术来做到这一点(我知道):

    (着陆后使用一个)

    使用追溯:

    1. 正常运行程序,然后跟踪Ctrol+F11
    2. 然后使用 -(数字键盘上的减号键)返回

    或使用断点

    1. 放置断点直到找到该函数被调用的地方
    2. 使用右键单击代码查找您在第一步中找到的结构的引用。
    3. 继续执行第 1 步和第 2 步,直到找到您的功能

    (我两个都用,但有时第一个不起作用)

    【讨论】:

    • 可能有更聪明的方法,但这些是我使用的方法
    【解决方案2】:

    我认为上面描述的方式是通用的,它应该适用于大多数情况。但是,如果您已经知道应用程序是在哪个编译器中构建的,则可以使用特定的方法,最终您可以更快、更准确地找到您要查找的内容。

    假设您的 exe 不是使用 .NET 构建的,并且您无法轻松反编译它。有一些技巧。 例如,Delphi/C++ 构建器应用程序在二进制文件中创建一个包含公共对象事件和地址的表,解码它非常容易,实际上有一些 Olly 脚本可以做到这一点。 另一方面,如果它是用 Visual C 使用 MFC 或类似的东西制作的,如果你知道 MFC 是如何被调用的,那么你可以很容易地找到它。

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 2018-10-26
      • 1970-01-01
      • 2012-08-02
      • 2015-03-22
      相关资源
      最近更新 更多