> 技术文档 > 2025年第三届盘古石杯决赛(鸿蒙程序分析)

2025年第三届盘古石杯决赛(鸿蒙程序分析)


程序分析

1、分析鸿蒙手机检材中“笔记.hap”文件,该软件应用名称是?【标准格式:ABCD】

PGSDBW

软件应用名称在 module.json 文件中通过 labellabelId 进行标识。label 的值为 $string:app_name,这表明应用名称是一个字符串资源引用,实际的名称存储在字符串资源文件中,labelId16777216 也用于标识该字符串资源。

2025年第三届盘古石杯决赛(鸿蒙程序分析)

2、分析hap检材,软件的包名是?【标准格式:com.pgs.main】

com.example.pgsdsj

app 配置部分有关于包名的信息,具体如下:

2025年第三届盘古石杯决赛(鸿蒙程序分析)

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\"}}

2025年第三届盘古石杯决赛(鸿蒙程序分析)

文件名称: foreground.pngMD5: 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 v11lda v11stlexvar 0x0, 0x1

因此,软件存储笔记的数据库名称是 notepad.db

8、分析hap检材,数据库的打开密码是?【标准格式:Abc123】

HuaweiNotePad123

关键代码

.function any &entry.src.main.ets.utils.DatabaseHelper&.func_main_0(any a0, any a1, any a2)  {newlexenvwithname 0x4, { 9 [ i32:4, string:\"DOMAIN_DB\", i32:0, string:\"DB_NAME\", i32:1, string:\"SQL_CREATE_NOTES_TABLE\", i32:2, string:\"SQL_CREATE_NOTES_UPDATE_TRIGGER\", i32:3, ]}mov