对 QT 软件进行逆向工程的提示

逆向工程 艾达 ollydbg 补丁反转 qt
2021-06-19 22:08:42

在使用 Ollydbg 或 IDA 反向 QT 应用程序时,我遇到了一些问题。

该软件使用保护模式来确定 QList 上的点击次数。在随机单击列表行后,将列表内容替换为空白字符串。这给我带来了麻烦,因为保护是动态的。

你们中有人可以向我指出一些使用 QT 应用程序的提示,或者向我解释如何识别事件(信号/插槽)并进行处理?

任何帮助将不胜感激,我已经搜索了很多,但没有关于 QT 反转的教程或文档......

谢谢

2个回答

我会尝试另一种方法,不使用 Olly 或 IDA,获取 Cheat Engine,将其附加到您的软件并点击 X。在 CE 上搜索该 int 值,并在搜索时递增。
作弊引擎将比通过常规调试器搜索更快地“捕获”变量。将 var 设置为 0 并锁定它。
是的,我知道 CE 不是逆向工具,但在这种情况下,考虑到您的 RE 经验,似乎最合适。
或者,发送链接/.exe,我愿意为您提供帮助。

查看文件 Properties->Details of "QtCore4.dll" 它用于查看它是什么 Qt 版本。
转到Qt 网站下载页面并获取匹配的版本。
那里有完整的源代码和编译的发行版。
您可能必须重建它以匹配您的应用程序的编译设置。
例如,如果您看到应用程序正在使用“msvcr100.dll”,那么您就知道它使用的是“Visual Studio 2010”。
通过这种方式,您可以构建兼容的导入库以从注入的 DLL 中使用,并且示例/示例应该接近您的检查目标。

您至少应该阅读 Qt 的基础知识。

你说它使用 QList 然后看看这里:http : //qt-project.org/doc/qt-4.8/qlist.html
虽然这不是一个小部件,但它必须是某种基于列表或列表视图类型的根据你的描述。

查看应用程序中的 Qt 导入。就像在“QWidget”ctor 的实例中一样,以找出正在创建各种小部件的位置。

如果你可以注入一个 DLL,你可以通过设置一个热键来调用静态方法“QApplication::allWidgets()”或“QApplication::topLevelWidgets()”来探测所有控件的列表,这些控件的信息来自“windowTitle( )“, 等等。

要查看的逻辑/明显位置是正在操作的控件,以及它已设置的鼠标单击信号/事件。

你只需要开始挖掘并分解事情。不知道你的经验水平,但经常倒车“艰难的方式”是正确的,或者,唯一的方法..