引言
随着搭载HarmonyOS的终端设备(手机、车机、IoT设备等)不断普及,涉及鸿蒙系统的电子取证及分析需求也在不断攀升。然而,鸿蒙系统的分布式架构和日志加密机制,让传统取证面临设备连接难、日志解析难、证据固定难等多重挑战。在此背景下,华为面向开发者发布的HDC(HarmonyOS Device Connector)工具、aa工具(Ability助手,简称aa)、bm工具(Bundle Manager包管理工具,简称bm)与hilog工具,成为司法鉴定领域的“破壁利器”,为司法实践提供技术支撑,帮助鉴定人员在纯血鸿蒙设备上实现高效、可靠的电子证据提取与分析。
01
挑战与利器:
鸿蒙取证的困境与工具价值
鸿蒙取证面临的三大挑战:
设备连接难:分布式设备形态多样,连接协议与传统设备不同。
日志解析难:系统日志默认加密,传统方法难以直接解读。
证据固定难:应用数据、运行状态、用户操作痕迹的获取和固定方式需要适配新系统。
鸿蒙取证的四大法宝:
HDC (HarmonyOS Device Connector):连接与交互工具,类似Android ADB,是访问设备的“桥梁”。
aa (Ability Assistant):应用能力助手,用于启动、停止应用组件,查询应用组件相关信息。
bm (Bundle Manager):包管理工具,用于查询、安装、卸载应用,获取应用详细信息。
hilog:强大的日志分析工具,用于采集、解析、过滤系统及应用日志。
这四大工具构成了鸿蒙设备取证的基础能力集,HDC工具打通连接通道,aa/bm工具提供应用层信息获取能力,hilog工具解密行为痕迹。它们共同服务于取证流程中“证据提取与初步分析”这一关键阶段,为后续的证件固定、分析、报告奠定基础。
02
核心桥梁:HDC工具
HDC(HarmonyOS Device Connector)是为开发人员提供的用于调试的命令行工具,是使用aa、bm、hilog的前提,通过该工具可以在Windows/Linux/MacOS系统上与设备进行交互,类似Android中的ADB工具。
HDC分为三部分:
client:运行在电脑端的进程,开发者在执行hdc命令时启动该进程,命令结束后进程退出。
server:运行在电脑端的后台服务进程,用来管理client进程和设备端的daemon进程之间的数据交互,以及设备发现等。
daemon:作为守护进程运行在设备端,用来响应电脑端server发来的请求。
三者直接的关系如下图所示:
HDC的安装(以Win11为例)
方法一:
下载并安装集成开发环境DevEco Studio,在DevEco Studio/sdk/default/openharmony/toolchains目录下使用hdc工具。
为了方便在命令行中直接执行hdc程序,可以将hdc程序文件路径添加到操作系统命令搜索路径的环境变量中。
打开CMD/PowerShell,执行命令:hdc --version ,若显示版本号(如,Ver: 3.1.0e),则表明安装成功。
方法二:
因HDC是包含在SDK中的,所以可以通过直接下载SDK获取该工具。
下载地址:http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist
详细安装过程可参考:OpenHarmony 开源鸿蒙北向开发——hdc工具安装 https://www.cnblogs.com/nanwanqiu/p/18780343
在使用HDC前,需在设备上开启USB调试功能,并通过USB数据线连接设备和PC(或者使用IP地址进行无线连接)。
HDC基本命令
HDC基础命令列表如下:
示例:
1.设备连接
(1)查看设备列表
用法:
hdc list targets # 显示基础设备列表
hdc list targets -v # 显示详细设备信息
(2)连接指定设备
hdc -t [设备标识] shell
以模拟器为例进行HDC连接测试:
若是USB连接真机,将“-t”后面的参数换成实际的手机序列号即可。
(3)网络连接场景
PC、手机设备处于同一网络下,在手机设备开发者设置界面打开无线调试开关,记录设备界面显示的监听端口号,PC通过网络连接设备。
用法:
hdc tconn IP:PORT
IP地址可在设备侧的设置里面查看到,端口号为上一步设备无线调试界面显示的端口号。
2.应用安装/卸载
hdc install <应用包路径> # 安装应用
hdc uninstall <包名> # 卸载应用
注:hdc命令无法安装 Release 签名的 .hap 包。鸿蒙对应用的安装有严格限制,hdc默认只能安装 Debug 签名 的包。Release版本的需要在鸿蒙设备自带的原生应用商店进行下载安装。
3.日志采集
用法:
实时查看日志:hdc shell hilog
导出日志到本地:hdc shell hilog > log.txt
应用场景:
可在对目标APP分析过程中对日志进行捕获,用于辅助分析。
4.文件传输
用法:
hdc file send <本地路径> <设备路径> # 上传文件
hdc file recv <设备路径> <本地路径> # 下载文件
示例:
使用HDC连接检材手机,执行 hdc file recv /data/log hilog_evidence 命令,可将log目录下的日志导出到本地进行分析。
03
洞察应用:aa工具
Ability assistant(Ability助手,简称为aa),是用于启动应用和启动测试用例的工具,为开发者提供基本的应用调试和测试能力,例如启动应用组件、强制停止进程、打印应用组件相关信息等,是分析应用行为、定位前台应用的利器。需在 hdc shell 环境下使用。
aa工具及基本命令
应用场景示例:定位前台应用
dump命令,用于打印应用组件的相关信息。用法:
aa dump
# 打印所有mission内的应用组件信息
aa dump -a
# 打印所有任务链
aa dump -l
# 打印指定应用组件详细信息
aa dump -i 12
# 打印应用进程信息
aa dump -a -r
可执行 hdc shell aa dump -r 命令,列出当前系统中运行的应用进程信息,其中包括前台和后台的进程。随后根据state判断可知前台应用的包名和PID,这对于锁定正在前台运行的涉案应用至关重要。
PS C:\\Users\\Safe> hdc shell aa dump -r
AppRunningRecords:
AppRunningRecord ID #0
process name [com.huawei.hmos.location]
pid #1787 uid #20005
state #READY
...
...
AppRunningRecord ID #8
process name [com.huawei.hmos.files]
pid #16984 uid #20020015
state #BACKGROUND
uiextension provider #0
pid #17029
...
...
AppRunningRecord ID #13
process name [com.example.app]
pid #32280 uid #20020044
state #FOREGROUND
...
...
04
透视应用:bm工具
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,用于管理应用包(Bundle),为开发者提供基本的应用安装包的调试能力。需在 hdc shell 环境下使用。
bm工具命令列表
应用场景示例:查询应用相关信息
dump命令,用于查询应用的相关信息。用法:
bm dump [-h] [-a] [-n bundleName] [-s shortcutInfo] [-d deviceId]
# 显示所有已安装的Bundle名称
bm dump -a
# 查询指定应用的详细信息
bm dump -n com.ohos.app
# 查询该应用的快捷方式信息
bm dump -s -n com.ohos.app
# 查询跨设备应用信息
bm dump -n com.ohos.app -d xxxxx
bm dump -a :显示所有已安装的Bundle名称。
bm dump -n <包名>:获取指定目标应用的详尽的元数据信息。包括:
包名(bundleName)
版本信息 (versionCode, versionName)
安装路径 (codePath)
权限申请和使用情况 (reqPermissions, reqPermissionStates)
入口Ability (mainAbility)
模块信息 (moduleInfos)
签名信息 (appProvisionType: debug/release)
安装/更新时间戳 (installTime, updateTime)
这些信息对于分析应用身份、应用行为、关联时间线等证据具有重要价值。
$ bm dump -n com.example.app
部分输出结果如下:
com.example.app:
{
"appId": "com.example.app_",
"applicationInfo": {
"allowAppRunWhenDeviceFirstLocked": false,
"apiTargetVersion": 50000012,
"appProvisionType": "debug",
"bundleName": "com.example.app",
"codePath": "/data/app/el1/bundle/public/com.example.app",
"compileSdkType": "HarmonyOS",
"compileSdkVersion": "5.0.0.71",
"cpuAbi": "x86_64",
"dataBaseDir": "/data/app/el2/database/com.example.app",
"dataDir": "",
"debug": true,
"deviceId": "PHONE-001",
"installSource": "unknown",
"isFreeInstallApp": false,
"minCompatibleVersionCode": 1000001,
"moduleInfos": [
{
"moduleName": "entry",
"moduleSourceDir": "",
"preloads": []
}
],
"signatureKey": "",
"uid": 20020044,
"versionCode": 1000001,
"versionName": "1.0.0.1"
},
"entryModuleName": "entry",
"gid": 20020044,
"hapModuleInfos": [
{
"abilityInfos": [
{
"applicationName": "com.example.app",
"hapPath": "/data/app/el1/bundle/public/com.example.app/entry.hap",
}
],
"hapPath": "/data/app/el1/bundle/public/com.example.app/entry.hap",
"mainAbility": "EntryAbility",
],
"installTime": 1748100907262,
"reqPermissionDetails": [
{
"moduleName": "entry",
"name": "ohos.permission.INTERNET",
"reason": "",
}
],
"reqPermissionStates": [
0
],
"reqPermissions": [
"ohos.permission.INTERNET"
],
"targetVersion": 50000012,
"uid": 20020044,
"updateTime": 1748100907262,
}
05
痕迹分析:hilog工具
HiLog日志系统,提供给系统框架、服务、以及应用,用于打印日志,记录用户操作、系统运行状态等。开发者可以通过hilog命令行查询相关日志信息。需在 hdc shell 环境下使用或在DevEco Studio中查看。
hilog基本命令
hilog工具除了可以通过命令行使用外,还可以在集成开发环境DevEco Studio中使用。如下图:
应用场景示例:通过日志分析用户敏感操作
例如,修改系统语言
应用下载、安装、卸载
数据备份
结语
面对纯血鸿蒙系统带来的取证新挑战,HDC、aa、bm、hilog这套开发者工具链,已成为电子取证的强大“瑞士军刀”。通过合理利用这些工具,结合规范化的取证流程,能够高效锁定、固定并分析电子证据,为司法实践提供坚实的技术支撑。未来,随着HarmonyOS及相应工具的迭代更新,更多创新方法也将不断涌现,持续助力数字取证行业的发展。
参考文章:
HDC官方简介 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hdc
hdc工具安装 https://www.cnblogs.com/nanwanqiu/p/18780343
bm工具简介 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/bm-tool
hilog工具简介https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hilog
HUAWEI DevEco Studio下载地址https://developer.huawei.com/consumer/cn/deveco-studio/
从Android到HarmonyOS NEXT,技术变革对电子数据取证的影响https://www.secrss.com/articles/71056
声明:本文来自奇安信洞鉴,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。