【问题标题】:How to set breakepoint in windbg when some string seen in stack?当堆栈中看到一些字符串时如何在windbg中设置断点?
【发布时间】:2017-08-09 07:28:24
【问题描述】:

我想跟踪一个可执行文件,加载了很多 dll。我知道这个exe文件,打开一个.txt文件来读取一些元素。我想知道哪个功能可以做到这一点。由于有很多 dll,我无法跟踪每个 dll 的功能来找到它。所以我想找到一种方法来在堆栈中看到的一些“.txt”点上设置一个断点,以找到打开或使用“.txt”文件的函数。 有没有办法做到这一点? 在其他世界中,如果将某个已知值传递给未知函数,有没有办法设置断点?

【问题讨论】:

  • 我会看看 Rohitab API Monitor rohitab.com/apimonitor。将打开文件的所有函数添加到跟踪函数列表中,例如 OpenFile、ReadFile、ReadFileEx、...
  • 我不知道,但也许更简单的方法是删除 .txt 文件的所有权限并在尝试读取它时打破异常。
  • 如果您撤销权限,它可能会在读取前创建失败。 procmon add filter path = filepath 应该会产生更好的结果 如果应用程序直接调用 sysenter,apimonitor 可能会失败
  • +1 @ blabb。使用 ProcMon 找到您感兴趣的特定调用的确切堆栈跟踪。然后调试/反转/不管它。

标签: reverse-engineering windbg


【解决方案1】:

您应该能够在 CreateFileA CreateFileW 上设置断点并检查文件名参数以确定它是否是处理您感兴趣的 txt 文件的那个。您还应该能够为每次设置一个自动断点如果您想检查任何已加载的模块,则会加载新库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多