补天云全网独有技术和唯一实用工具: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软件开发技术
如果您认为这篇文章对您有所帮助,请您一定立即点赞+喜欢+收藏,本文作者将能从您的点赞+喜欢+收藏中获取到创作新的好文章的动力。如果您认为作者写的文章还有一些参考价值,您也可以关注这篇文章的作者。
补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具的更多相关文章
- 在线公开课 | 5G时代的视频云服务关键技术与实践
5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...
- 云原生GIS技术
云原生架构概述 - DockOne.io http://dockone.io/article/2991 云原生GIS技术全解读 - SuperMap技术控 - CSDN博客 https://blo ...
- 为 “超级大脑”构建支撑能力,腾讯云聚焦AI技术落地
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月24日,以"无界数据.无限智能"为主题的2018腾讯"云+未来"峰会AI大数据分论坛在广州拉开帷 ...
- 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!
腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...
- 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?
摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...
- 【Hook技术】实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展
[Hook技术]实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展 公司有个监控程序涉及到进程的保护问题,需要避免用户通过任务管理器结束掉监控进程,这里使用 ...
- 实用fork/join框架提升程序效率
实用fork/join框架提成程序效率 原文地址:https://www.jianshu.com/p/9ce243796d4a 业务场景 最近再做一个接口,我是一个中央的消息接受方,当我接受到消息后要 ...
- Android酷炫实用的开源框架(UI框架)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- Android酷炫实用的开源框架——UI框架(转)
转载别人整理好的文章,列出了很多炫酷的UI开源设计 原文地址:http://www.androidchina.net/1992.html 1.Side-Menu.Android分类侧滑菜单,Yalan ...
- Android酷炫实用的开源框架(UI框架) 转
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
随机推荐
- ComfyUI进阶:Comfyroll插件 (三)
前言: 学习ComfyUI是一场持久战,而Comfyroll 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具.借助这些节点,用户可以在静态图 ...
- C#封装HttpClient工具类库(.NET4.5以上)
1.Json字符串实体转换扩展方法,依赖Json.Net包 /// <summary> /// Json扩展方法 /// </summary> public static cl ...
- Known框架实战演练——进销存基础数据
本文介绍如何实现进销存管理系统的基础数据模块,基础数据模块包括商品信息.供应商管理和客户管理3个菜单页面.供应商和客户字段相同,因此可共用一个页面组件类. 项目代码:JxcLite 开源地址: htt ...
- manim边学边做--Table
表格是一种常见的数据展示形式,manim提供了Table模块专门用于显示表格形式的数据.表格Table和上一节介绍的矩阵Matrix都是用来显示二维数据的,不过,Table的表现力更强,比如,它可以显 ...
- java面试一日一题:说下mysql中的binlog
问题:请讲下mysql中的binlog 分析:该问题主要考察对mysql中binlog的理解及使用场景? 回答要点: 主要从以下几点去考虑, 1.什么是binglog? 2.binlog的使用场景是什 ...
- RHCA rh442 003 系统资源 查看硬件 tuned调优
监控工具 zabbix 监控具体业务,列如数据库.触发式事件(断网 硬盘坏一个) 普罗米修斯 给容器做监控 管理人员,如何知道几千台服务器哪些出了问题,这得需要zabbix 系统硬件资源 cpu [r ...
- ComfyUI插件:ComfyUI Impact 节点(四)
前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...
- 我用Awesome-Graphs看论文:解读GraphBolt
GraphBolt论文:<GraphBolt: Dependency-Driven Synchronous Processing of Streaming Graphs> 前面通过文章&l ...
- 【Java】将枚举类转换为Redis字典缓存
字典翻译框架实现看这篇: https://www.cnblogs.com/mindzone/p/16890632.html 枚举的特性 首先是枚举的一些特性: 1.枚举实例直接在枚举类中声明 2.重载 ...
- 【MacOS】VMware安装10.15-Catalina版本
参考自: https://www.bilibili.com/video/BV1sf4y1D77A?p=4 资源地址: https://pan.baidu.com/s/1U6WOorb_TuORQ9ab ...