如何打破窗口创建

逆向工程 x64
2021-06-19 21:26:05

在 x32/x64 调试器中,如何在打开新窗口时中断?

在我的应用程序中,我单击菜单栏中的“文件”按钮,然后选择“选项”,我想中断该调用以打开窗口。(该窗口有多个选项卡,带有复选框和按钮等,我不确定这称为什么类型的窗口)

如果序列密钥有效,我正在调试的应用程序将显示更多选项,而不是序列密钥丢失/无效的情况,因此我在检查时尝试中断。

1个回答

您应该在创建窗口的 API 上放置一个断点。这是我可能会打开一个窗口的 API 列表。

        <Api Name="CreateDialogIndirectParamA"/>
        <Api Name="CreateDialogIndirectParamW"/>
        <Api Name="CreateDialogParamA"/>
        <Api Name="CreateDialogParamW"/>
        <Api Name="CreateWindowA"/>
        <Api Name="CreateWindowExA"/>
        <Api Name="CreateWindowExW"/>
        <Api Name="CreateWindowW"/>
        <Api Name="DialogBoxIndirectParamA"/>
        <Api Name="DialogBoxIndirectParamW"/>
        <Api Name="DialogBoxParamA"/>
        <Api Name="DialogBoxParamW"/>
        <Api Name="MessageBoxA"/>
        <Api Name="MessageBoxExA"/>
        <Api Name="MessageBoxExW"/>
        <Api Name="MessageBoxIndirectA"/>
        <Api Name="MessageBoxIndirectW"/>
        <Api Name="MessageBoxTimeoutA"/>
        <Api Name="MessageBoxTimeoutW"/>
        <Api Name="MessageBoxW"/>

使用API Monitor等程序查找应用程序如何打开窗口,并在其上放置 BP。