【问题标题】:Ollydbg condition奥利德条件
【发布时间】:2015-07-07 05:25:22
【问题描述】:

当其中一个寄存器包含某个字符串时,我需要 Ollydbg 暂停。有什么办法可以做到吗?

【问题讨论】:

  • 寄存器通常不包含字符串。你的意思是;当寄存器包含指向某个字符串的地址时?
  • 是的,我知道 :) 是的,确切地说,我的意思是当寄存器包含某个字符串的地址时。

标签: debugging ollydbg


【解决方案1】:

我不太清楚你。您根本无法在寄存器中加载字符串:) 您可以在加载数据上设置断点。例如 -> 你的值“祝你有美好的一天!”,在这个地址上设置一个 BP。每次加载字符串时,Olly 都会中断。否则我无法理解你的问题。

但这里还有一个小教程。

首先我加载了我的 pe 文件并找到了一个字符串“GAMMA”,它是一个在线游戏的配置创建程序。

http://img7.imagebanana.com/img/hu6kg56k/findstr.png

现在让我们在转储中找到它。双击参考文献中的“GAMMA”,现在我们是 disasm 窗口,双击 PUSH 或跟随转储部分并转到字符串表达式。选择您的字符串并设置一个hardwarebp,如下所示。

http://img7.imagebanana.com/img/pejyx72i/bp.png

按 F9 或 Olly 顶部的播放按钮,我们会在加载字符串的第一个点中断。当然,如果你想找到一个特定的地方,你必须一步又一步,直到你找到你的观点。

http://img6.imagebanana.com/img/f7w15fr6/hwbp1.png

编辑:

您可以使用 F7 跟踪代码以查看何时从堆栈中调用该字符串。

【讨论】:

  • 你是如何让 ollydbg 看起来像你在截图中看到的那样的?环境和设置看起来与运行默认的 ollydbg 下载非常不同。
  • 你能重新发布截图吗?
  • 感谢您的通知。不幸的是,我没有资源了。我会尝试复制它们并更新链接。
【解决方案2】:

您使用的是什么版本的 OllyDbg?
你试过2.0版吗?它有一些条件检查可能会对您有所帮助(尽管我不确定 OllyDbg 是否可以查看特定的寄存器)。

Trace -> Set condition...

【讨论】:

    【解决方案3】:

    试试OllyStepNSearch
    它为您提供了一种简单的方法,可以在其中一个寄存器具有特定字符串时停止调试

    【讨论】:

      【解决方案4】:

      右键单击您的代码并选择

      搜索 > 所有模块间呼叫

      查找 RegQueryValueEx 或 RegCreateKeyEx 函数。它们在 Advapi32.dll 中

      您应该知道要写入哪个参数设置字符串。

      看这里:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724875%28v=vs.85%29.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-05
        • 2018-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多