【AndroidManifest.xml加密解决办法】

admin 2022年4月23日04:00:23评论417 views字数 1678阅读5分35秒阅读模式

作者:胡铭凯 美亚柏科培训基地培训讲师,转自:美亚MCE在线


您知道AndroidManifest吗?

我们先来看看AndroidManifest是什么?

AndroidManifest即应用清单,每个APK的根目录中都必须包含一个AndroidManifest.xml

并且文件名必须一模一样

这个文件中包含了APP的配置信息

系统需要根据里面的内容运行APP的代码,显示界面



发现问题

在反编译或者app打包加固之后,有时候需要查看APK文件中AndroidManifest.xml里面的一些配置信息。在近期的APK逆向分析中,遇到了某一类型的APK无法查看AndroidManifest.xml信息的情况。目前,遇到的无法查看配置信息的大致有三种类型:

(1)APK伪加密;

(2)Manifest文件头缺失;

(3)Manifest全加密。


APK伪加密的解决办法

    对于一个APK包来讲,本质上就是一个zip压缩包,可以使用常用压缩包软件打开。因此,它也具备zip压缩包的特性,我们可以直接用十六进制编辑工具(Winhex等)打开。一个zip文件由三部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。其中“50 4B 03 04”为压缩源文件数据区文件头标志,“50 4B 01 02”为压缩源文件目录区文件标志,“50 4B 05 06”为压缩源文件目录结束标志,加密标志主要存在于数据区的紧跟头标志后第三第四位及目录区紧跟头标志后第五、六位信息。无加密状态:数据区和目录区皆为“00 00”或双数情况;伪加密状态:数据区和目录区其中某一数字为单数或数据区与目录区数字不一致的情况;真加密状态:数据区和目录区皆为单数情况。

    以下图为例,我们发现,其在数据区的加密标记为“01 00”,目录区的加密标记为“09 00”,说明我们其实为伪加密状态,尝试修改为00即可得正常解压。

【AndroidManifest.xml加密解决办法】


Manifest文件头缺失的解决办法

有遇到一种情况,就是文件头的数值乱码,或者文件头签名为“00”,因此,对于这方面数据处理方式,就是直接通过十六进制编辑软件直接修改文件头信息即可,对于“Androidmanifest.xml”的文件头签名为“03 00 08 00”。

【AndroidManifest.xml加密解决办法】


Manifest全加密的解决办法(以SIG通信APP为例)

    在逆向分析的过程中,会遇到如下图所示的情况,在日志文件中会显示“Entry is encrypted”字样,且经过逆向后,得到的结果无法识别到相应的参数

(Classes.dexAndroidmanifest.xmlMETA-INF等)。

【AndroidManifest.xml加密解决办法】

    

【AndroidManifest.xml加密解决办法】


    虽然,在逆向的过程中,我们还能得到smali语言,但是我们无法获取其基本信息(配置信息、签名信息、权限等)。因此,大大增加了从静态分析入手的难度。对于这类问题,可以采用传统的方法进行分析:使用aapt打印其androidmanifest文件。

    aapt工具在Android SDK build-tools目录里面,一般开发软件(AndroidStudio和Eclipse)或模拟器中都有配置。


【AndroidManifest.xml加密解决办法】



使用方法:

1、切换到工具所在目录(或加入环境配置中)

2、使用aapt查看

AndroidManifest.xml内容:

aapt dump xmltree

C:UserslishDesktoptest.apk AndroidManifest.xml

【AndroidManifest.xml加密解决办法】


3、可以把输出结果保存到文件,在上面命令的后面追加保存路径即可。例如:

“> C:UsersDesktopManifest.txt”

【AndroidManifest.xml加密解决办法】


4、我们可以看出,它虽然没有完整的打印出配置文件的全部信息,但是其打印了主要的几个关键信息,比如,我们可以很清晰的看出该文件的入口函数指向“.MainActivity”。

【AndroidManifest.xml加密解决办法】


5、对于其他有用信息,我们可以来一一对比一下。由下图可知,“E”表示标签,“line”表示所在行数,“A”表示属性,而且从“0x1C”可知,该属性参数为十六进制,当参数为字符串时,则会添加(RAW:””)。

【AndroidManifest.xml加密解决办法】


【AndroidManifest.xml加密解决办法】

原文始发于微信公众号(电子物证):【AndroidManifest.xml加密解决办法】

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日04:00:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【AndroidManifest.xml加密解决办法】https://cn-sec.com/archives/936749.html

发表评论

匿名网友 填写信息