补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具

如何保护和隐藏你的QT应用中的QML源代码?补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具

简介

在通常的QT QML应用程序中,QML语言和JavaScript语言的源码可以在最终可执行文件中找到源码明文,本文将介绍一个QML源码保护工具,使得QML应用编译出来的可执行文件中不再包含QML和JavaScript源码明文数据,同时QML应用程序还可以正常运行。

目录

QT QML应用中QML源码在哪?

QT Quick Compiler能保护QML源码吗?

QT Tool Box保护QML源码

正文

QT QML应用中QML源码在哪?

QT QML应用程序将QT标记语言QML和JavaScript脚本语言,以及C++语言的源代码混合编排到一个应用程序中。其中C++语言代码会被编译为二进制指令数据,在最终可执行文件中是找不到C++源码的。而QML语言和JavaScript语言的源码则可以在最终可执行文件中找到源码明文。大家使用文本编辑器查看QML应用生成的EXE文件就可以找到QML源码的明文数据。下图是从某QML应用程序的可执行文件中找到JavaScript和QML源码明文。

在这里插入图片描述

在可执行文件中能找到QML源码明文

QT Quick Compiler能保护QML源码吗?

有的朋友可能会想到QT不是有QT Quick Compiler吗? 使用这个选项可以将QML源码编译之后的二进制字节码数据保存到可执行文件中,从而提升QT QML应用程序的性能。不过在使用QT Quick Compiler之后,在可执行文件中仍然包含QML和JavaScript源码明文数据。因此QT Quick Compiler可以起到提速的作用,但是无法保护QML源码。也就是使用文本编辑器查看QML应用生成的EXE文件仍然可以找到QML源码的明文数据。

QT Tool Box保护QML源码

在此向大家推荐一款工具软件 QT Tool Box。这个工具提供了根据QML和JavaScript文件生成编译之后的二进制字节码数据文件的功能,同时提供了QNK字节码加载器可供应用程序运行时加载QML字节码数据文件。
在这里插入图片描述

QT Tool Box保护QML和JavaScript源码
QT Tool Box生成了如下文件:
在这里插入图片描述
QT Tool Box生成的数据文件

怎么应用这些文件呢?

首先将生成的文件都拷贝到项目源代码目录中,然后将qmlc.qrc资源文件加入到项目目标中,并且将QML源码文件和JavaScript源码文件从项目目标中移除。注意只是从项目配置文件中移除,不是删除文件本身。如果是cmake项目则修改为类似如下所示即可。如果是qmake项目则做按照qmake规则来修改即可。

在这里插入图片描述

修改cmake项目文件
再重新执行cmake,项目结构如下所示:

在这里插入图片描述

修改之后的cmake项目结构

接下来就是在主程序中加入如下两行代码:

在这里插入图片描述

加载QML二进制数据的代码
libButianyunQMLCacheLoader.dll这个动态链接库是QT Tool Box提供的,负责加载QML字节码数据。

接着将QT Tool Box 生成的configuration.json配置文件拷贝到你的应用程序的EXE同样的目录,将libButianyunQMLCacheLoader.dll也拷贝到同样的目录。

在这里插入图片描述

QML应用运行所需文件
最后重新编译一遍应用程序,所得到的可执行文件中将不再包含QML和JavaScript源码的明文数据,从而实现了保护QML和JavaScript源码的目的。

在这里插入图片描述

QML应用程序正常运行

总结

本文介绍了如何通过QT Tool Box保护QT应用程序中的QML和JavaScript源码。 如果你正好也有这种需求,想获取QT Tool Box最新版本软件,可联系作者以便加入QQ群。

如果您认为看文章不足以了解补天云工具箱,可以看一下这个视频:

补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具

下载链接:补天云QT工具箱:QML源码保护隐藏工具:可执行程序

推荐两篇介绍QT技术整体介绍的文章:
QT QML:快速全面了解QT软件界面开发技术
QT QML:如何学习C/C++/QT软件开发技术

如果您认为这篇文章对您有所帮助,请您一定立即点赞+喜欢+收藏,本文作者将能从您的点赞+喜欢+收藏中获取到创作新的好文章的动力。如果您认为作者写的文章还有一些参考价值,您也可以关注这篇文章的作者。

posted @ 2023-07-07 09:23  QT界面美化性能优化  阅读(93)  评论(0编辑  收藏  举报  来源