我有一个用DirectX用C ++编写的程序(据我所知)。用户界面具有带有按钮和其他UI组件的菜单。为了使过程自动化,我想找到一个事件调用的函数(例如,单击特定按钮)。

如何识别此类例程?有工具可以帮助您分析和找到这些位置吗?

评论

您能否确定该程序基于哪个UI框架?

DirectX是用于图形绘制的原始框架。它实际上没有任何本地“按钮”类,屏幕上的所有图形均由DirectX控制,但任何用户界面均由程序员或UI框架的程序员构建。不幸的是,这里没有银弹。您可能能够找到默认/主消息循环(ala WndProc)并在鼠标事件(例如按下按钮)上设置条件中断。

#1 楼

您可以使用此工具MyNav。您可以在此处看到一些视频示例:2010年Hex-Rays插件竞赛。我认为您对分析Adobe Acrobat Reader的JavaScript插件非常感兴趣。

还可以使用商业工具BinNavi。