Windows 如何在单击事件中中断代码?

Windows 如何在单击事件中中断代码?,windows,reverse-engineering,ida,Windows,Reverse Engineering,Ida,我有这个应用程序,我需要拆解。我不知道如何在所需的位置停止运行代码,所以我决定最好的猜测是点击一个按钮。但我如何捕捉按钮点击?我知道这可能与Windows函数有关,例如CallNextHookEx。我正在使用IDA PRO进行反汇编。IDA PRO主要用作反汇编程序,用于静态分析目的。我建议您使用Ollydbg(或者其他调试器,如果您愿意的话),因为它更适合调试目的 我不知道是否可以在这样的API上设置断点 但你可以这样做: 在olly中加载应用程序,或附加到它 通过单击任何内容生成事件 从ol

我有这个应用程序,我需要拆解。我不知道如何在所需的位置停止运行代码,所以我决定最好的猜测是点击一个按钮。但我如何捕捉按钮点击?我知道这可能与Windows函数有关,例如
CallNextHookEx
。我正在使用IDA PRO进行反汇编。

IDA PRO主要用作反汇编程序,用于静态分析目的。我建议您使用Ollydbg(或者其他调试器,如果您愿意的话),因为它更适合调试目的

我不知道是否可以在这样的API上设置断点

但你可以这样做:

  • 在olly中加载应用程序,或附加到它
  • 通过单击任何内容生成事件
  • 从ollydbg(F12)停止应用程序
  • 使用C(k)所有堆栈(ALT+k)
  • 您将看到一些函数调用,其中一个正在执行您需要的操作。但您可能需要转到上层调用以查看整个循环。那你就试试哪一个吧。其中一个将有一个循环。该循环将有条件跳转并生成事件、加载表单、填充应用程序等。当您在右跳转上放置断点时,它将在每次鼠标单击时停止

  • 当我调试应用程序时,大多数时候我发现自己处于这样的断点上,我从一开始就看到应用程序是如何填充一个空表单的(这需要很长时间)。

    这是如何解决我的问题的?什么是ollydbg而IDA没有?我以前考虑过使用ollydbg,但我的应用程序是x64。OllyDbg支持吗?如果应用程序在您停止之前完成了对事件的处理,会发生什么情况?