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

[原创]AndroidManifest.xml解密补遗

2023-4-4 15:31
8101

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


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


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

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



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


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


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


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

这个是最清晰的流程,从下面的define the file附近看就行,没有其他描述那种见木不见林的感觉:https://www.sweetscape.com/010editor/repository/files/AndroidManifest.bt


https://juejin.cn/post/6844903747169026061

https://developer.android.google.cn/guide/topics/manifest/manifest-intro?hl=zh-cn

https://github.com/bihe0832/Android-GetAPKInfo/blob/0a93a4432d911a40d925d26497d515a185770218/AXMLPrinter2_zixie/src/main/java/android/util/TypedValue.java

https://developer.aliyun.com/article/663289

https://elinux.org/Android_aapt

https://justanapplication.wordpress.com/category/android/



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (5)
雪    币: 1331
活跃值: (1934)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-4-4 22:49
0
雪    币: 2948
活跃值: (30846)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2023-4-5 16:41
1
雪    币: 2714
活跃值: (1611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
666
2023-4-6 09:20
0
雪    币: 2328
活跃值: (10364)
能力值: ( 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
游客
登录 | 注册 方可回帖
返回
//