首页
社区
课程
招聘
[原创]AndroidManifest.xml解密补遗
发表于: 2023-4-4 15:31 8618

[原创]AndroidManifest.xml解密补遗

2023-4-4 15:31
8618

有点标题党,因为论坛里有不少对于AndroidManifest.xml解密的工具或者文章了。但是个人用着不太满意,或者是对于稍微做了手脚的文件,解密工具报错;或者是对于文件结构的分析,写的太细节而看不到全貌。


所以我参考了一些大神的研究,写了这么一个小工具。对于从string pool个数做手脚的地方,做了简单的判断和替换;对于attribute的各种type,做了针对性的解析。


AndroidManifest.xml文件本身的结构,其实不复杂。读取文件头相关内容,读取string pool,读取resource pool,然后就是循环解析resource chunks(这里没有递归!!!)。

最后是递归处理解析出来的chunks,拼接出可读的xml串。



示例文件源自论坛里某人问过的一个问题的样本,效果对比如下。


源代码、示例文件,在附件。


整体结构,看MindMac大神在9年前(2014年)的这幅图:


参考链接有这些,我觉着不错的:

这个是最清晰的流程,从下面的define the file附近看就行,没有其他描述那种见木不见林的感觉:53eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2K6N6$3g2W2N6s2y4U0j5i4m8W2i4K6u0W2j5$3!0E0i4K6u0r3x3o6p5H3k6h3c8A6N6r3!0J5i4K6u0r3M7X3g2H3L8%4y4A6N6r3!0J5P5g2)9J5c8X3k6A6L8r3g2K6i4K6u0r3b7h3&6V1M7X3!0A6k6p5#2S2L8X3W2X3k6i4y4@1i4K6u0W2j5Y4b7`.


645K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7N6h3g2B7K9h3&6Q4x3X3g2U0L8W2)9J5c8Y4m8G2M7%4c8Q4x3V1j5$3z5o6b7@1z5e0l9K6y4K6b7%4x3e0j5&6x3o6t1$3x3o6j5I4

7f5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6Y4N6h3W2V1k6g2)9J5c8Y4c8G2M7r3W2U0M7#2)9J5c8X3#2S2L8X3W2X3k6i4y4@1i4K6u0r3L8h3q4F1K9h3k6W2M7%4c8Q4x3X3c8A6L8Y4c8J5L8#2)9K6c8X3S2D9i4K6y4p5P5X3S2Q4x3X3c8U0L8R3`.`.

7e4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6T1K9h3S2W2x3o6R3K6x3W2)9J5c8V1q4F1k6s2u0G2K9h3c8Q4x3X3c8s2k6i4c8m8f1p5E0u0L8X3k6G2i4K6u0r3j5X3I4G2j5W2)9J5c8U0m8S2z5e0y4S2y4o6b7K6x3X3b7&6x3e0q4S2y4o6m8V1z5e0t1#2k6o6t1$3y4o6V1%4k6o6f1I4y4h3p5I4z5o6f1%4y4K6l9J5x3e0S2Q4x3V1k6m8h3p5#2x3f1s2u0A6L8Y4c8W2M7U0u0Q4y4h3k6*7K9i4S2A6k6g2)9J5c8Y4y4J5j5#2)9J5c8X3#2S2K9h3&6Q4x3V1k6B7j5i4k6S2i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5c8Y4g2@1K9h3I4Q4x3V1k6f1P5i4m8W2k6q4k6S2L8s2g2W2i4K6u0W2K9X3q4$3j5b7`.`.

210K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2S2L8r3W2&6N6h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3y4U0j5K6x3U0R3&6

f4eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6W2L8r3W2F1N6i4S2Q4x3X3g2G2M7X3N6Q4x3V1k6m8L8X3c8J5L8$3W2V1i4K6g2X3j5h3q4H3N6l9`.`.

ddeK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7N6i4y4@1j5h3&6S2M7s2m8D9K9h3y4S2N6r3W2G2L8W2)9J5k6i4N6G2M7X3c8H3M7X3g2K6M7#2)9J5k6h3y4G2L8g2)9J5c8X3y4S2N6r3g2Y4L8%4u0&6i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5c8R3`.`.



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (5)
雪    币: 1795
活跃值: (2666)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-4-4 22:49
0
雪    币: 5531
活跃值: (31866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2023-4-5 16:41
1
雪    币: 2791
活跃值: (1736)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
666
2023-4-6 09:20
0
雪    币: 2860
活跃值: (11724)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
p2和p3环境都是这个错误
  File "axml-parser.py", line 149
    match tag_chunk:
                  ^
SyntaxError: invalid syntax
2023-4-6 09:34
0
雪    币: 113
活跃值: (178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你瞒我瞒 p2和p3环境都是这个错误 File "axml-parser.py", line 149 match tag_chunk: ...
就是switch case,python 3.10之后的新特性。你可以用if else改一下即可,如果不用新python的话。
2023-4-6 10:46
0
游客
登录 | 注册 方可回帖
返回