HarmonyOS鸿蒙Next中代码混淆后,只是做了格式压缩,所有代码到一行,实际并没有起到混淆作用?

HarmonyOS鸿蒙Next中代码混淆后,只是做了格式压缩,所有代码到一行,实际并没有起到混淆作用? 混淆开启,obfuscation-rules.txt文档中配置如下:

但是代码混淆后,只是做了格式压缩,所有代码到一行,实际并没有起到混淆作用是什么原因?除了代码混淆,IDE打包会自动加固har、app等编译后产物么?

3 回复

1)没有起到混淆原因:

代码混淆功能需要工程为Stage模型,在Release编译模式下,选择目标模块点击Build -> Make Module选项开始编译。 应用代码混淆可以参考: https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-app-code-ob-V5

-enable-property-obfuscation:开启属性混淆。 如果使用这个选项,那么所有的属性名都会被混淆,除了下面场景: 被import/export直接导入或导出的类、对象的属性名不会被混淆; ArkUI组件中的属性名不会被混淆; 被保留选项指定的属性名不会被混淆; SDK API列表中的属性名不会被混淆; 字符串字面量属性名不会被混淆。

-enable-export-obfuscation:开启直接导入或导出的类或对象的名称和属性名混淆。如果使用这个选项,那么模块中的直接导入或导出的名称都会被混淆。

可以参考以下配置混淆规则再尝试: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/arkts-utils/source-obfuscation.md

2)IDE打包会自动加固har、app等编译后产物么?

当在Release编译模式下进行构建时,DevEco Studio会对HAR模块的代码进行编译、混淆及压缩处理。这种混淆处理可以帮助防止逆向工程和代码分析攻击,提升应用的安全性。 另外可以使用第三方安全厂商提供的高级混淆和加固能力,使用第三方安全厂商提供的高级混淆和加固能力需要开发者与三方安全厂商自行沟通合作方式和范围,使用第三方加固可以参考: https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-app-code-ob-V5#section4564113173012

更多关于HarmonyOS鸿蒙Next中代码混淆后,只是做了格式压缩,所有代码到一行,实际并没有起到混淆作用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,代码混淆的目的是为了保护源代码,防止反编译和逆向工程。混淆工具通常会对代码进行多种处理,包括变量名、方法名的重命名,以及代码结构的调整等。如果混淆后只是将代码压缩到一行,而其他混淆措施未生效,可能是混淆配置或工具本身的问题。

鸿蒙Next的混淆工具可能默认启用了格式压缩,但未启用其他混淆策略。开发者需要检查混淆配置文件,确保所有混淆选项已正确启用。例如,在proguard-rules.pro文件中,需要包含类似-obfuscation的选项来启用混淆功能。

此外,混淆工具可能与鸿蒙Next的某些特性不兼容,导致混淆效果不理想。开发者应确保使用的混淆工具版本与鸿蒙Next的SDK版本匹配,并检查是否有相关的更新或补丁可用。

总之,代码混淆不仅仅是格式压缩,还需要通过配置和工具支持来实现更高级的混淆效果。开发者应仔细检查和调整混淆配置,以确保代码的安全性。

在HarmonyOS鸿蒙Next中,代码混淆不仅仅是格式压缩。虽然将代码压缩到一行是混淆的一部分,但真正的混淆还包括重命名类、方法、变量等标识符,删除无用代码,以及优化控制流等操作。这些措施可以有效增加代码的逆向工程难度,保护代码安全。如果只观察到代码被压缩到一行,可能是混淆工具配置不完整或未启用深层混淆功能。建议检查混淆配置,确保启用了全面的混淆策略。

回到顶部