补天云全网独有技术和唯一实用工具: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,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
随机推荐
- 深入探究 Golang 反射:功能与原理及应用
Hi 亲爱的朋友们,我是 k 哥.今天,咱们来一同探讨下 Golang 反射. Go 出于通用性的考量,提供了反射这一功能.借助反射功能,我们可以实现通用性更强的函数,传入任意的参数,在函数内通过反射 ...
- spark基础了解—运行层次结构、standalone与onyarn
spark程序运行层次结构 standalone即主从机制,后续添加了standaloneHA,zk管理master的存活,一旦master挂了会在候选master中诞生新的 HAstandalone ...
- Python和RPA网页自动化-发送邮件
以163邮箱为例,分别使用Python和RPA网页自动化发送邮件到指定邮箱 其中2个方法都需要用到163邮箱授权码,开启IMAP/SMTP服务即可得到授权码(POP3/SMTP服务不用开启) 1.py ...
- Jmeter参数化4-数据库数据引入
1. 下载jmeter依赖的mysql驱动包 jmeter要连接mysql数据库,首先得下载mysql驱动包.执行"select version()"查看数据库版本 mysql历史 ...
- 【MySQL】29 索引
MySQL是一个关系型的数据库 使用标准的SQL数据格语言格式 支持大型数据库,处理千万级别的记录数据 允许多系统运行,支持多种编程语言连接 最重要的一点是MySQL允许定制,采用GPL协议,允许修改 ...
- 2024年 智能机器人元年 —— 国内的智能机器人(humanoid)公司当下最大的压力(最为急迫的任务)是什么?
可以说,2024年是人形机器人的元年.我国在去年年底将发展智能机器人立为了第一线的重要科技发展方向,并计划在2024年.2025年建立出完整的产业链条,并培育出几家成熟的行业领先的智能机器人公司.而我 ...
- 第7期(大连站)—— OpenHarmony城市技术论坛:边缘智能
PS. 为了进一步的推动国产信息化,国内的各个高校也是踊跃参与呢.
- vant 爬坑 (一)
vant 通过脚手架安装: # 安装 Vue Cli npm install -g @vue/cli # 创建一个项目 vue create hello-world # 创建完成后,可以通过命令打开图 ...
- 图扑 HT for Web 轻松构建组态拓扑结构
在现代的数据可视化和网络管理中,拓扑图是一种非常重要的工具.它可以直观地展示节点(Node)和节点之间的关系(Edge).无论是在 2D 还是 3D 环境中,拓扑图都可以帮助我们更好地理解和管理复 ...
- 5分钟教你使用idea调试SeaTunnel自定义插件
在用Apache SeaTunnel研发SM2加密组件过程中,发现社区关于本地调试SeaTunnel文章过于简单,很多情况没有说明,于是根据自己遇到问题总结这篇文档.SeaTunnel本地调试官方文档 ...