如何保护和隐藏你的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源码隐藏工具的更多相关文章

  1. 在线公开课 | 5G时代的视频云服务关键技术与实践

    5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...

  2. 云原生GIS技术

    云原生架构概述 - DockOne.io  http://dockone.io/article/2991 云原生GIS技术全解读 - SuperMap技术控 - CSDN博客  https://blo ...

  3. 为 “超级大脑”构建支撑能力,腾讯云聚焦AI技术落地

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月24日,以"无界数据.无限智能"为主题的2018腾讯"云+未来"峰会AI大数据分论坛在广州拉开帷 ...

  4. 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!

    腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...

  5. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  6. 【Hook技术】实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展

    [Hook技术]实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展 公司有个监控程序涉及到进程的保护问题,需要避免用户通过任务管理器结束掉监控进程,这里使用 ...

  7. 实用fork/join框架提升程序效率

    实用fork/join框架提成程序效率 原文地址:https://www.jianshu.com/p/9ce243796d4a 业务场景 最近再做一个接口,我是一个中央的消息接受方,当我接受到消息后要 ...

  8. Android酷炫实用的开源框架(UI框架)

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

  9. Android酷炫实用的开源框架——UI框架(转)

    转载别人整理好的文章,列出了很多炫酷的UI开源设计 原文地址:http://www.androidchina.net/1992.html 1.Side-Menu.Android分类侧滑菜单,Yalan ...

  10. Android酷炫实用的开源框架(UI框架) 转

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

随机推荐

  1. oeasy教您玩转vim - 34 - # 查找进阶

    ​ 查找进阶 回忆上节课内容 上次是搜索,是全文搜索 和我们以前的行内有点像 / 正向,? 反向 n 保持方向,N 改变方向 hls 让搜索结果高亮 wrapscan 可以从头搜索 noh 取消本次高 ...

  2. Fiddler 使用fiddler无法抓取苹果手机https请求问题解决方案

    使用fiddler无法抓取苹果手机https请求问题解决方案 by:授客 QQ:1033553122   测试环境 Win10 Fiddle4 IPhone6s 问题描述 使用fiddler抓取IPh ...

  3. 解锁Nginx日志的宝藏:GoAccess——你的实时、交互式Web日志分析神器!

    在当今数字化的时代,网站的流量和用户行为数据就像是一座蕴藏着无尽秘密的宝藏.而如何有效地挖掘和分析这些数据,成为了许多网站管理者和开发者头疼的问题.GoAccess,一款开源的实时Web日志分析工具, ...

  4. perf 性能分析工具

    perf 性能分析工具 perf topperf recordperf reportperf listperf stat perf top -p <pid> 例如查看redis进程的内核调 ...

  5. Jmeter二次开发函数之入门

    背景:Jmeter不能满足我们的参数需求,如生成手机号码.身份证号码等业务,固对jmeter进行二次函数开发. jmeter提供了接口供用户进行二次开发,我们只需引入包进行编辑.从jmeter规范上, ...

  6. CentOS-7离线安装policycoreutils-python

    1.下载相关安装包 policycoreutils-2.5-34.el7.src.rpm 快速下载地址:https://vault.centos.org/7.9.2009/os/x86_64/Pack ...

  7. 【PostgreSQL】01 环境搭建

    [PostgreSQL数据库安装] 数据库本体就没下本机了,直接挂服务器的Docker上面跑 docker pull postgres:9.4 创建容器并运行: docker run --name p ...

  8. Linux系统——删除用户命令

      背景: 负责管理实验室的服务器,近期有保研的大三同学放弃保送到实验室而选择其他实验室,因此需要把之前给他开的账号取消掉. ===================================== ...

  9. 强化学习:一种新的并行算法下的参数同步更新方式——半异步更新方式——( 同步、异步 -> 半异步 )

    Abstract: 并行算法下的参数同步方式一般有同步更新和异步更新两种方式,本文在此基础之上提出了一种新的参数同步方式--半异步更新方式. Introduction: 这里用神经网络举例子,也就是神 ...

  10. CUDA11.3编译pytorch2.0.1报错:error: ‘nvmlProcessInfo_v1_t’ was not declared in this scope

    问题如题: CUDA11.3编译pytorch2.0.1报错:error: 'nvmlProcessInfo_v1_t' was not declared in this scope 解决方法参考: ...