HarmonyOS鸿蒙Next中构建release包为何没看到符号表文件sourcemap,混淆的代码怎么反混淆查看源码呢

HarmonyOS鸿蒙Next中构建release包为何没看到符号表文件sourcemap,混淆的代码怎么反混淆查看源码呢 (1)release包构建完成,为何在build/output 里面看不到符号表文件,因为需要反混淆崩溃堆栈信息,请问这个符号表文件在哪里?当有多个hap包时,不同hap的soucemap是需要单独获取的吗?

(2)看SDK中的HarmonyOS-NEXT- 下 native\llvm\bin 下面没有hstack工具,但官方文档确实是此目录

(3)鸿蒙next 如何加固呢?现在有方式支持app加固吗?

(4)如果想查看崩溃信息是不是从FaultLogInfo里面去获取就行了(包括c和js的)? 想抓到信息上报到我们自己的数据系统里面,但是之前某个崩溃信息上报过了,如果不做过滤,下次会再上报会重复,请问支持上报完某条crash信息后从FaultLogInfo里面删除的api吗?


更多关于HarmonyOS鸿蒙Next中构建release包为何没看到符号表文件sourcemap,混淆的代码怎么反混淆查看源码呢的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

问题1: 构建的release包后,sourceMaps.map文件位于 build/{ProductName}/cache/{targetName}/CompileArkTS/esmodule

问题2: 需要先下载命令行工具,下载地址为 https://developer.huawei.com/consumer/cn/doc/harmonyos-tools/download-0000001822993593#section153211233115017

问题3: 当前提供基础的应用加固安全能力,包括混淆、加密和代码签名能力,保护代码反编译和反调试。

  1. 代码混淆:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-build-obfuscation-V5
  2. 应用加密:应用上架后会对安装包做加密处理,用户从应用市场下载的为加密后的安装包,然后由系统进行解密安装运行。
  3. 没有强制要求,可以根据实际需求进行加固,但不建议过多加固

问题4: 可以使用faultLogger通过其查询接口进行主动获取当前的故障信息。现阶段jscrash有捕获接口提供,cppcrash只有query接口提供。目前没有删除api,应用没有这么高的权限去删除事件,已经落盘的事件,应用删不了。参考链接地址如下。

更多关于HarmonyOS鸿蒙Next中构建release包为何没看到符号表文件sourcemap,混淆的代码怎么反混淆查看源码呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你这个怎么做混淆和加固啊,小白求指教!!!

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-build-obfuscation-V5

可以参考这个文档配置一下代码混淆,在构建release包的时候就会开启,

在HarmonyOS鸿蒙Next中构建release包时,默认情况下不会生成符号表文件(sourcemap),因为release包是经过混淆和优化的,目的是减少包体积和保护代码安全性。符号表文件通常用于调试阶段,记录原始代码与混淆后代码的映射关系,但在release构建中通常会被省略。

要查看混淆后的代码,可以通过以下步骤进行反混淆:

  1. 保留符号表文件:在构建release包时,可以通过配置保留符号表文件。具体操作是在构建脚本或配置文件中明确指定生成sourcemap文件。例如,在build.gradlebuild.js中设置相关参数。

  2. 使用反混淆工具:如果未保留符号表文件,可以尝试使用反混淆工具(如ProGuard、Retrace等)对混淆后的代码进行反混淆。这些工具通常需要原始的混淆映射文件(mapping.txt),该文件在构建过程中生成,记录混淆前后的对应关系。

  3. 分析混淆代码:在没有符号表文件的情况下,直接分析混淆后的代码较为困难,但仍可以通过调试工具(如Chrome DevTools、Node.js调试器等)逐步跟踪代码执行路径,结合日志输出和上下文信息推测代码逻辑。

需要注意的是,反混淆过程可能无法完全还原原始代码,尤其是在混淆规则较为复杂或代码经过多重优化的情况下。

在HarmonyOS鸿蒙Next中构建release包时,默认不会生成符号表文件sourcemap。要查看混淆后的代码,您需要在构建配置中明确启用sourcemap生成。具体步骤如下:

  1. build.gradle文件中,找到release构建类型,并添加sourceMapsEnabled true配置。
  2. 重新构建release包,生成sourcemap文件。
  3. 使用工具如ProGuard或ReTrace,结合sourcemap文件对混淆代码进行反混淆,查看源码。

确保在开发阶段备份未混淆的代码,以便后续调试和维护。

回到顶部