HarmonyOS应用代码混淆技术方案,为你的应用安全保驾护航

2025-12-10 15:16:10     来源:

在HarmonyOS应用生态蓬勃发展的今天,开发者们在全力创新、优化体验的同时,也需要为辛勤研发的成果构筑坚实可靠的安全防线。因此,为能给代码加上一层“安全锁”,保障应用安全,华为推出了系统级、高效易用的应用代码混淆技术方案。

应用代码混淆技术方案通过增加代码的复杂性与模糊性,能明显提升应用的反破解与反分析能力。该方案有以下几个方面的显著作用:

1. 保护知识产权:代码混淆防止他人轻易复制和窃取软件代码,增加逆向工程难度。

2. 防止逆向工程:逆向工程是分析软件以了解其工作原理和实现细节的过程。代码混淆可增加逆向工程的难度,保护应用程序免受恶意修改或破坏。

3. 提高安全性:代码混淆减少漏洞和安全风险,增加攻击者利用漏洞的难度。

4. 降低反盗版和欺诈风险:混淆代码可增加攻击者破解软件许可验证系统或修改代码绕过付费机制的难度,从而减少盗版和欺诈。

针对工程源码的混淆提高破解难度,缩短类和成员名称,减小应用大小。

混淆开启

从DevEco Studio版本4.0 Beta1开始,hvigor插件提供代码混淆功能。开启混淆的条件如下:

· 工程为Stage模型

· 在Release编译模式下

· 模块build-profile.json5文件中开启混淆配置

图片 1.png

注意:“enable”默认为“false”,默认不开启代码混淆功能。

满足开启混淆的条件后,选择目标模块,点击 Build -> Make Module 开始编译。

如果工程或模块是Static Library,则该工程或模块是一个HAR。

构建HAR时有以下三种方式:

1. 以Debug模式构建HAR,会直接打包源码,不进行代码混淆。

2. 以Release模式构建HAR,会编译、混淆并压缩代码。

3. 构建字节码格式的HAR。开启混淆时,编译器会先对源码中间文件进行混淆,再生成abc字节码。

图1DevEco Studio选择release编译模式

图片 2.png

图2DevEco Studio指定模块编译

图片 3.png

混淆配置能力

编译选项

若按照上述编译流程开启代码混淆,在 DevEco Studio 5.0.3.600 之前的版本,默认仅混淆参数名和局部变量名。从 DevEco Studio 5.0.3.600 版本起,默认启用四项推荐的混淆选项:-enable-property-obfuscation、-enable-toplevel-obfuscation、-enable-filename-obfuscation 和 -enable-export-obfuscation。开发者可以根据需要进一步修改混淆配置。

混淆配置

在每个模块下都能找到 build-profile.json5 文件,如下图所示。可以在此文件中配置是否开启混淆及混淆配置文件。

图3编译配置文件

图片 4.png

新建工程时,每个模块下都有 obfuscation-rules.txt 文件,用于配置混淆。

图4混淆配置文件

图片 5.png

在上图中,obfuscation-rules.txt文件中添加了-enable-property-obfuscation和-enable-toplevel-obfuscation开关,表示已启用属性混淆和顶层作用域名称混淆。

DevEco Studio混淆现有选项及功能描述如下:

ScreenShot_2025-12-10_115930_684.png

ScreenShot_2025-12-10_115943_003.png

混淆选项具体的使用方法和样例代码可以参考代码混淆

混淆优化建议

开发人员混淆工程时,发现缓存文件或SDK中的文件中存在大量未混淆的源码名称。原因包括以下两类:

· 混淆选项开启较少;开启-enable-property-obfuscation、-enable-toplevel-obfuscation、-enable-export-obfuscation、-enable-filename-obfuscation选项。

· 源码名称与系统白名单、语言白名单重名;添加后缀避开白名单。

混淆规则合并策略

在编译一个模块时,生效的混淆规则是当前编译模块混淆规则和依赖模块混淆规则的合并结果。具体规则请参考:混淆规则合并策略

查看混淆结果

开发人员在编译模块的build目录中可找到编译和混淆生成的缓存文件、名称映射表及系统API白名单文件。

· 源码编译及混淆缓存文件目录:build/\[…\]/release/模块名

· 混淆名称映射表及系统API白名单目录:build/\[…\]/release/obfuscation

名称映射表文件:nameCache.json,记录源码名称映射。

系统API白名单文件:systemApiCache.json,记录SDK接口与属性名称。

图5DevEco Studio编译产物与缓存文件

图片 6.png

调试

代码经过混淆工具处理后,名称会发生更改,这可能导致运行时崩溃堆栈日志难以理解,因为堆栈与源代码不完全一致。如果未保留调试信息,行号及名称更改将导致无法准确定位问题。此外,启用-enable-property-obfuscation、-enable-toplevel-obfuscation等选项后,代码混淆可能会引发运行时崩溃或功能性错误。开发人员需要还原报错堆栈,排查并配置白名单以确保功能正常。

函数调用栈还原

经过混淆的应用程序中代码名称会发生更改,因此报错栈与源码不完全一致,crash时打印的报错栈会难以理解,如何处理请参考报错栈还原

反混淆工具hstack

hstack需要将Node.js配置到环境变量中,详细使用说明请参考hstack

使用第三方加固

在HarmonyOS提供的代码混淆能力之外,开发者还可以使用第三方安全厂商提供的高级混淆和加固能力。多家安全加固厂商已经启动了HarmonyOS开发,开发者可以根据需求选择这些安全厂商的服务。开发者需要与第三方安全厂商自行沟通合作方式和范围,本文档不做详细说明。具体的官方与第三方代码混淆能力的关系如下:

ScreenShot_2025-12-10_115806_774.png

由于HarmonyOS代码签名、应用加密等安全机制的限制,以及应用市场上架审核的纯净安全要求,三方加固厂商提供的安全加固内容必须满足以下六点要求:

1、不允许隐藏敏感系统API的调用,审核人员必须能够清晰地看到应用的特性。

2、不允许混淆非自研的SDK。SDK应由SDK厂商自行进行混淆保护。如果非自研SDK被混淆,将会影响应用市场审核相关SDK的指纹信息。

3、通过第三方安全加固的应用程序,必须确保不包含恶意行为,以免对生态系统造成影响。此要求为约束性条款,不遵守可能导致应用被下架。

4、不允许使用第三方虚拟机,HarmonyOS系统通过代码签名等机制限制动态加载代码,这可能导致应用无法正常运行。

5、不允许对方舟字节码文件进行篡改,此方法可能让应用无法正常运行,以及影响应用市场对应用的纯净安全进行审核。

6、不允许对系统库使用hook技术,此方法影响应用市场对应用的纯净安全进行审核。

未来,该方案将持续演进,强化混淆算法与生态协同,携手开发者共建可信环境。它不仅是保护应用知识产权、抵御逆向工程的关键盾牌,更是HarmonyOS生态安全稳健发展的基石,护航创新,共赢未来。更多应用安全相关应用代码混淆指南请访问HarmonyOS开发者官网,搜索关键词“应用代码混淆”:https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-app-code-ob

 

标签:

猜你喜欢

雅诗兰黛集团发布2025财年社会影响力与可持续发展报告 多项关键可持续发展指标超额完成
河南汝州:汝绣生产忙
四大赛道沉浸式竞技!2025智能机器人大赛圆满收官
阅读为锚 向光而行:华为阅读×三联生活周刊2025年度阅读榜单温暖发布
上海师大用WPS 365一张表管好全校学术成果,核对提效50%
云南建投物流携手华为推动行业数字化转型
山东临工L970HHB混合动力装载机荣登2025工程机械TOP10年度榜·新能源明星产品榜单
​爱奇艺与澳门银河综艺馆续签三年战略合作协议 为澳门“演艺之都”注入新活力
​光影织梦氛围感拉满!上海ifc圣诞奇境乐园启幕暖冬狂欢
易鑫入选港交所科技100指数,科技成长能力再获资本市场高度认可
2025有哪些好书?华为阅读年度榜单揭晓,用书籍点亮我们的时代切面
思凯乐官宣品牌挚友赵一博 12月10日直播间畅聊徒步那些事儿
中美鲁东南联合考古 30 周年: 一场关于中华文明起源的考古探索与认知重塑
SAP 与曼森集团达成合作,数字化驱动“织造”变“智造”
超四成中年人“想养未动”?大家保险白皮书给出养老规划“知行合一”的解决方案
第三届虹桥前湾国际高端药械创新产业论坛即将开幕
芦比前列酮软胶囊上榜!入选“2024-2025年度家庭常备药上榜品牌”榜单
开源驱动,智能跃迁——2025 AGIROS开源社区生态大会在京举行
第2000辆埃安UT super正式交付!全民见证“国民好车”硬实力
VNA芬斯狄娜荣获“婚尚造型先锋品牌”大奖:以高标准重塑高端婚纱穿着体验
长期养老选对路,指数Y份额或是优选项之一
华为音乐2025年度榜单揭晓!打开全场景高品质的听歌新姿势
震有科技卫星地面核心网,连接天地的关键枢纽
企生活湾区数字产业中心入驻企业斩获粤港澳大湾区创业大赛金奖
企生活夺下龙华区2025年消防技能大比武第一名
史无前例!2026好莱坞十大殿堂级娱乐奖项重磅发布 华鼎奖成首个入围亚洲奖项
金山办公通过WPS 365赋能中集集团,将构建懂数据、懂组织、懂业务的“企业大脑”
笔耕不辍绘新章,薪火相传启未来——第17届全国大学生广告艺术大赛学科竞赛成果展示盛典圆满落幕
华为游戏中心2025年度先锋榜出炉,三角洲行动、原神等大作上榜
大湾区智算标杆再获肯定:博大数据深圳前海智算中心入选全球数字经济峰会领先成果