程序分析
反编译工具地址:https://github.com/ohos-decompiler/abc-decompiler
1、分析鸿蒙手机检材中“笔记.hap”文件,该软件应用名称是?【标准格式:ABCD】
PGSDBW
软件应用名称在 module.json 文件中通过 label 和 labelId 进行标识。label 的值为 $string:app_name,这表明应用名称是一个字符串资源引用,实际的名称存储在字符串资源文件中,labelId 为 16777216 也用于标识该字符串资源。

2、分析hap检材,软件的包名是?【标准格式:com.pgs.main】
com.example.pgsdsj
在 app 配置部分有关于包名的信息,具体如下:

3、分析hap检材,软件图标md5的后六位是?【标准格式:a48b31】
448b23
在 笔记/module.json 文件里,能看到软件图标的引用信息:
{
"app": {
// ...
"iconId": 16777218,
"icon": "$media:foreground",
// ...
}
// ...
}
找到\笔记\resources\base\media
另外,笔记/resources/base/media/layered_image.json 文件中也进一步关联了媒体资源,找到对应名字的图片
{"layered-image":{"background":"$media:16777217","foreground":"$media:16777218"}}

文件名称: foreground.png
MD5: 7fb165b876a11c792bd38b1830448b23
4、分析hap检材,软件代码保存的文件名称是?【标准格式:class.dex】
modules.abc
通常是 ArkTS(HarmonyOS 应用开发的编程语言)编译后生成的字节码文件,分析这种文件可以从多个角度进行
5、分析hap检材,软件的入口类是?【标准格式:MainActivity】
EntryAbility
根据提供的 笔记/module.json 文件内容,软件的入口类可以通过 module 部分的 mainElement 字段以及 abilities 数组来确定。
分析 mainElement 字段
在 module 部分有如下配置:
"mainElement": "EntryAbility",
表明 EntryAbility 被指定为软件的主要元素,通常意味着它在应用启动时起到关键作用。
查看 abilities 数组中的 EntryAbility
在 abilities 数组中,有一个名为 EntryAbility 的能力项,其相关配置如下:
{
"exported": true,
"iconId": 16777218,
"startWindowIconId": 16777225,
"icon": "$media:foreground",
"startWindowIcon": "$media:startIcon",
"startWindowBackgroundId": 16777223,
"description": "$string:EntryAbility_desc",
"label": "$string:EntryAbility_label",
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"srcEntry": "./ets/entryability/EntryAbility.ets",
"descriptionId": 16777220,
"labelId": 16777221,
"startWindowBackground": "$color:start_window_background",
"name": "EntryAbility"
}
这里明确了 EntryAbility 的源代码入口文件为 ./ets/entryability/EntryAbility.ets,并且其技能(skills)包含了与系统主界面相关的实体和动作,进一步说明它是应用启动时的入口。
所以软件的入口类是 EntryAbility,对应的源代码文件是 ./ets/entryability/EntryAbility.ets。
6、分析hap检材,软件的入口密码是?【标准格式:abc-134】
pgsdbw-2025
要先进行反编译
ark_disasm.exe modules.abc modules.txt
在关于LoginPage的代码中,有一个固定密码的定义:
lda.str "pgsdbw-2025"
stobjbyname 0x14, "FIXED_PASSWORD", v10
7、分析hap检材,软件存储笔记的数据库名称是?【标准格式:tmp.db】
notepad.db
从文档中关于DatabaseHelper的定义部分可以找到数据库名称的相关信息:
在func_main_0函数中,明确定义了数据库名称为:
lda.str "notepad.db"
sta v11
lda v11
stlexvar 0x0, 0x1
因此,软件存储笔记的数据库名称是 notepad.db。
**8、分析hap检材,数据库的打开密码是?【标准格式:Abc12