HarmonyOS核心知识点:代码混淆

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

📚往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)

🎯 鸿蒙(HarmonyOS)北向开发知识点记录~

🎯 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~

🎯 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?

🎯 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~

🎯 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

🎯 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

🎯 记录一场鸿蒙开发岗位面试经历~

🎯 持续更新中……


代码混淆简介

针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。

DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、 编译模式为release 时自动进行代码混淆。

使用约束

  • 仅支持Stage工程
  • 编译模式为release
  • 模块及模块依赖的HAR均未配置关闭混淆的规则-disable-obfuscation

混淆范围

在应用工程中,代码混淆支持以下格式文件混淆,混淆后的缓存文件保存在模块目录下的build/[…]/release目录下。

  • ArkTS文件
  • TS文件
  • JS文件

开启代码混淆

代码混淆已经被集成了到SDK中,可以在DevEco Studio中很方便地使用。

代码混淆目前只提供名称混淆的能力(因为其它混淆能力会劣化性能)。 开启代码混淆可以混淆以下名称:

  • 参数名和局部变量名
  • 顶层作用域的名称
  • 属性名称

代码混淆默认使能对参数名和局部变量名的混淆。顶层作用域名称和属性名称的混淆是默认关闭的,因为默认打开可能会导致运行时错误。这些混淆功能通过混淆选项来开启它们。

创建一个新工程的时候,配置文件build-profile.json5中会自动生成以下内容:

"arkOptions": {
  "obfuscation": {
    "ruleOptions": {
      "enable": true,
      "files": ["./obfuscation-rules.txt"],
    }
  }
}

创建一个新的library的时候,还会额外生成consumerFiles属性:

"arkOptions": {
  "obfuscation": {
    "ruleOptions": {
      "enable": true,
      "files": ["./obfuscation-rules.txt"],
    }
    "consumerFiles": ["./consumer-rules.txt"]
  }
}

混淆功能默认开启,若被关闭希望重新开启混淆需要满足条件: 属性ruleOptions.enable的值为true。

属性ruleOptions.files中指定的混淆配置文件会在构建HAP、HSP或HAR的时候生效。

属性consumerFiles中指定的混淆配置文件会在构建依赖这个library的模块时生效。 这些混淆配置文件的内容还会被合并到HAR包中的obfuscation.txt文件。

当构建HAP、HSP和HAR的时候,最终的混淆规则是当前构建模块的ruleOptions.files属性,依赖library的consumerFiles属性,以及依赖HAR包中的obfuscation.txt文件的合并。

如果构建的是HAR,HAR包中的obfuscation.txt是自身的consumerFiles属性, 依赖library的consumerFiles属性,以及依赖HAR包中的obfuscation.txt文件的合并。构建HAP、HSP不会生成obfuscation.txt。详细合并的策略可以查看混淆规则合并策略。

混淆规则配置文件

在创建工程或library的时候,DevEco Studio会自动生成obfuscation-rules.txt和consumer-rules.txt文件,

但是它们默认不会包含任何混淆规则。混淆规则可以写到这

鸿蒙开发】第四十四章 代码混淆 自定义装饰器修饰的成员变量、方法、参数需要被保留,详细内容请参考。 阅读详情

相关推荐

鸿蒙开发】—— 代码混淆

针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、 编译模式为release 时自动进行代码混淆

2401_88547687的博客 1279

Android 开混淆后安装在鸿蒙设备出现程序Crash(崩溃)的问题解决方法

Android 开混淆后安装在鸿蒙设备出现程序Crash(崩溃)的问题解决方法

u012366540的博客 1189

鸿蒙开源(OpenHarmony)和华为鸿蒙HarmonyOS)的区别与选择

鸿蒙开源(OpenHarmony)与华为鸿蒙HarmonyOS)的核心区别 开源OpenHarmony与商业HarmonyOS存在本质差异: 定位差异:OpenHarmony是开源基金会托管的操作系统基础框架,支持全场景设备;HarmonyOS是华为基于此开发的闭源商业系统 技术架构:OpenHarmony提供多内核支持等基础能力,HarmonyOS叠加了华为专有服务和技术优化 适用场景:开发者/厂商选择OpenHarmony进行定制开发,终端用户直接使用预装HarmonyOS的华为设备 选择建议: 设备

2501_93036246的博客 4984

HarmonyOS代码混淆

鸿蒙HarmonyOS开发中,代码混淆的主要目的是保护代码不被反编译,提升应用的安全性。从DevEco Studio版本:4.0 Beta1开始hvigor插件提供代码混淆功能。因此我将deveco studio从3.1release升级到了5.0release。

m0_74231873的博客 1995

鸿蒙系统代码混淆:保护你的应用不被反编译

随着鸿蒙生态的快速发展,越来越多企业和开发者将核心应用迁移至鸿蒙平台。然而,开放的应用分发渠道使得逆向工程威胁加剧:恶意用户通过反编译工具获取应用逻辑、窃取商业算法、篡改代码注入恶意功能。本文聚焦鸿蒙系统特有的代码保护需求,提供从基础原理到工程落地的完整解决方案,帮助开发者掌握代码混淆这一核心安全技术。核心概念:解析代码混淆本质,对比鸿蒙与Android/iOS的技术差异技术体系:分静态混淆、动态混淆、资源混淆三大模块详解实现原理。

操作系统内核探秘的博客 1319

鸿蒙NEXT开发代码混淆】加固构建

DevEco Studio原先默认开启代码混淆功能,会对API 10及以上的Stage工程,且编译模式是release时,自动进行简单的代码混淆,仅对参数名和局部变量名进行混淆

鸿蒙的技术博客 1307

鸿蒙原生开发手记:徒步迹 - ArkGuard 代码混淆配置

本文介绍了鸿蒙应用开发中如何使用ArkGuard进行代码混淆配置,以增强应用安全性。通过build-profile.json5文件配置混淆规则,可有效保护ArkTS代码,降低逆向风险。文章属于"徒步迹"开发手记系列,涵盖HarmonyOS NEXT核心开发要点,包括ArkUI声明式开发、状态管理、Kit能力接入等。开发者可通过文末提供的官方文档和开源项目链接深入学习。

LEO11110的博客 809

鸿蒙开发 代码混淆加固

鸿蒙系统开发中的代码混淆加固技术通过重命名符号、控制流混淆和数据加密等手段保护应用安全。配置需在build-profile.json5中开启混淆,并指定规则文件路径,支持ArkTS、JS等文件类型。规则文件可自定义混淆范围和保留项,如保留关键类或方法。混淆后需验证效果,调试时可通过工具还原堆栈。高级场景需注意多模块规则合并和性能权衡,推荐使用ArkGuard等工具进行优化。合理配置混淆规则能有效提升应用安全性。

梦想不只是梦与想的博客 1102

胡桃讲编程:华为鸿蒙系统能用 MT 管理器反编译吗?(安装包 + 系统根目录实战指南)

摘要:华为鸿蒙系统上使用MT管理器存在严格限制:可反编译Android APK和部分未加密HAP包,但无法处理加密HAP的.abc字节码;访问系统根目录需要Root权限,而华为官方严格限制Root,普通用户几乎无法实现。MT管理器对APK的反编译功能完整,但对原生HAP包只能解包查看资源文件,无法反编译核心代码。逆向操作建议集中在应用层定制,如修改APK界面布局或提取资源,而非尝试破解系统底层。纯血鸿蒙NEXT系统将无法运行MT管理器(Android版),未来需等待鸿蒙原生版本。

2503_93347234的博客 824

Flutter 三方库 enven 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、基于编译期代码生成的工业级环境变量混淆与资产安全保护引擎

什么是 Enven?普通的环境变量库往往是在运行时(Runtime)读取外部文件,这意味着.env文件必须打包在资产目录(Assets)中,极易被逆向破解。enven采用了“代码即数据”的策略。它在编译期将环境变量直接转换为混淆后的 Dart 代码。在 Flutter for OpenHarmony 的实际开发中,利用该库,我们可以让鸿蒙应用以“不可读”的方式携带核心配置。它是构建“极致稳健、机密隔离”鸿蒙应用后的核心资产保护内核。enven。

cannonjinx的博客 789

HarmonyOS Next】鸿蒙加固方案调研和分析

根据鸿蒙应用的上架流程,本地构建app文件后,上架到AGC平台,平台会进行解析。根据鸿蒙系统的特殊设置,仿照IOS的生态闭环方案。只能从AGC应用市场下载app进行安装。这样的流程一定程度上提高了防破解和逆向的成本。但应用代码防逆向是一个持续攻防对抗的过程,如对代码文件保护有更高的要求,需要结合其他安全加固措施,进一步提高逆向分析应用的难度。

路漫漫亦无涯 1752

鸿蒙HarmonyOS)版Retrofit网络请求框架

蒹葭(JianJia)是一款鸿蒙系统上的网络请求框架,其实就是将安卓的Retrofit移植到鸿蒙系统上,我将鸿蒙版的Retrofit命名为蒹葭(JianJia)。蒹葭不仅能实现Retrofit的功能,还会提供一些Retrofit没有的功能。Retrofit不支持动态替换域名,国内的应用一般都是有多个域名的,蒹葭支持动态替换域名。

maniuT的博客 2395

HarmonyOS之深入解析编译构建的配置和代码混淆

一、概述 编译构建是将 HarmonyOS 应用的源代码、资源、第三方库等打包生成 HAP 或者 APP 的过程。其中,HAP 可以直接运行在真机设备或者模拟器中;APP 则是用于应用上架到华为应用市场。 为了确保 HarmonyOS 应用的完整性,HarmonyOS 通过数字证书和授权文件来对应用进行管控,只有签名过的 HAP 才允许安装到设备上运行(如果不带签名信息,仅可以运行在模拟器中);同时,上架到华为应用市场的 APP 也必须通过签名才允许上架。因此,为了保证应用能够发布和安装到设备上, 需要提

╰つ栺尖篴夢ゞ 2375

HarmonyOS NEXT】鸿蒙 代码混淆

针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、编译模式为release时自动进行代码混淆

wu1004019946的博客 3241

二十三、【鸿蒙 NEXT】代码混淆

摘要:鸿蒙应用代码混淆配置指南:1.在build-profile.json5中开启混淆,指定obfuscation-rules.txt(本模块生效)和consumer-rules.txt(依赖模块生效)两个配置文件;2.obfuscation-rules.txt需配置-enable-toplevel-obfuscation和-enable-export-obfuscation等核心规则;3.使用DevStudio工具自动扫描生成白名单配置文件,避免人工排查耗时;4.将生成的配置文件内容复制到consumer

zhujian82637的博客 353

基于反混淆工具混淆后的日志定位

hongxiaomeng的博客 1024

HarmonyOS NEXT(开发进阶)应用代码混淆

代码混淆是一种软件安全技术,旨在增加代码的复杂性和模糊性,从而增加攻击者分析和理解代码的难度。代码混淆有以下几个方面的作用:

WEZC156465的博客 1451

鸿蒙开发0基础【ArkGuard混淆开启指南】ArkTS并发

源码混淆能力已在系统中集成,可通过以下方式在DevEco Studio开启使用。

zhenggaoxiao232的博客 821
上一篇: HarmonyOS核心知识点:XML生成、解析与转换
下一篇: HarmonyOS核心知识点:内存管理(GC)
小小小浣熊5
博客等级 码龄2年 1239粉丝 191原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值