ida pro 6.0使用qt 框架实现了跨平台的ui。它的好处是插件编写者还可以直接使用 qt 开发跨平台 ui。但是编剧呢?
在这篇博文中,我们将说明如何使用pyside使用idapython为 ida pro 创建 ui 界面。
ipq_intro
背景
在早期版本的 ida pro 中,可以使用create_tform() / display_tform() api创建自定义 ui ,但代码是特定于平台的。在 ms windows 上,程序员接收父窗体的 hwnd,然后用自定义控件填充它,然后处理来自自定义 windowproc() 的窗口消息。
由于之前只有一个 ms windows ui 存在,用户无法在其他平台上创建复杂的 ui,并且必须使用ada pro sdk/表单相关的函数,例如askusingform()。
借助 ida pro 6.0,c++ 插件编写者可以直接使用 qt sdk 开发跨平台 ui。请参考ida pro sdk 中的qwindow。
脚本编写者还可以使用 python qt 绑定来实现相同的结果。
qt 框架的 python 绑定
我们评估了pyside和pyqt,发现这两个绑定在 ida pro 6.0 上都可以正常工作(我们必须使用 –dqt_namespace=qt 编译它们,并且必须添加一种方法将 qwidget* 从 c++ 传递到 python)。
虽然 pyqt 更加成熟并被许多用户采用,但我们选择了 pyside,它运行良好且许可证限制较少。
使用 idapython 和 pyside 编写 hello world ui
为了从 idapython 编写 ui,您必须继承 idaapi.pluginform类。这个类本质上包装了 create_tform()/display_tform() 并提供了一些辅助函数(例如将 qwidget* 传递给 python,pyside 可以将其用作父小部件)。
一个示例代码将使事情更清楚: 运行此脚本后,我们得到了这个表单: 当然,该表单可以像任何其他内置表单一样停靠。虽然这个例子非常简单,但用户现在可以创建更加精细和复杂的 ui。毫不奇怪,但现在使用脚本(idapython)的插件开发变得比以前更有趣。
ipq_hello_code
到此这篇关于ida pro 6.0使用qt 框架实现了跨平台的ui的文章就介绍到这了,更多相关ida pro qt跨平台内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多c/c++开发分享IDA Pro 6.0使用Qt框架实现了跨平台的UI界面,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/649138.html