Gui 禁用程序功能

逆向工程 艾达 二元分析 工具
2021-06-12 20:25:30

现在我正在对基于 GUI 的应用程序进行分析,并试图确定它的所有可用功能。

现在还有一个标记为“加密”的按钮,它是灰色的。根据上下文,这个按钮似乎不负责加密通信,而是负责使用另一个程序打包程序的输出。不过,我想直接确认这一点。

我的问题是我不知道如何定位此按钮将在后端触发的代码,或者如何查找使其在 GUI 中可用或不可用的原因。在哪里可以找到负责确定 GUI 中可用内容的逻辑,在哪里可以找到使用静态分析连接到哪些功能的按钮?

编辑:我已经使用进程监视器完成了 GUI 的加载,但我找不到任何有意义的文件查询丢失,这可能会否定“加密”按钮负责打包有效负载的想法。

2个回答

该按钮呈灰色,或“禁用”。这很可能通过以下两种方式之一完成:

  1. 通过将WS_DISABLED标志作为dwStyle参数传递CreateWindow/ CreateWindowExAPI ,创建最初禁用的按钮

您可以在此函数上设置断点并重置 dwStyle 参数。零会做。

  1. 通过调用EnableWindowAPI 来禁用按钮bEnable = FALSE

您可以在此函数上设置断点并设置bEnable为 TRUE(非零)

这将使按钮启用,以便您可以单击它。它不保证它会起作用。

您可以做的一些事情是查看字符串并查看它可能在您正在逆向的软件中加载什么样的程序。可能会提供一些关于您的假设是否正确的线索。

您可以做的另一件事是查看它是否正在加载模块。当您在实时调试器中运行软件并查看正在将哪些 DLL 和其他模块加载到程序中时,进入断点。这也可以提供一些线索。

你提到它是灰色的,所以我不确定你是否能够按下按钮,但如果可以,请尝试按下它然后逐步执行程序。也许代码的设置方式是除非按下按钮,否则它不会加载模块。然后看看按下按钮和不按下按钮时程序内部发生了什么变化。如果您的想法正确与否,这也可以提供一些可能的线索。

祝你好运。