Android应用加解密--AndroidManifest文件加解密

来源:互联网 发布:网络信号屏蔽器怎么防 编辑:程序博客网 时间:2024/05/03 12:05

最近对Android应用安全这一块比较关注,所以了解了一些apk加固产品。发现部分加固产品加固后的apk在反编译时会报错,反编译的结果只得到一个空的AndroidManifest.xml文件。针对此现象分析和查找一些资料,发现此情况是因为加固产品对AndroidManifest.xml文件作了一些修改从而实现apk加密。所以写此稿作分析记录,若有新发现则更新。


1.问题:

在反编译某加固产品加固后的apk时出现报错如下:

W: Could not decode attr value, using undecoded value instead: ns=android, name=qihoo, value=0x00000016

2.直接从apk压缩包中拖出AndroidManifest文件并用AXMLPrinter2.jar工具对其进行格式转换发现Application标签中存在一个这样子的属性:

android:qihoo="activity"
由于android命名空间中并没有qihoo这个属性,所以猜测是加固产品对manifest文件做了手脚。


3.查阅资料发现此种加密是利用了某个漏洞。即Android在安装运行apk时并不会对无用的标签属性进行解析。但是进行反编译时apktool却会对每一个标签属性进行解析,所以导致无法反编译。在此非常感谢wanchouchou大大的文章http://www.cnblogs.com/wanyuanchun/p/4084292.html


4.解密:既然问题已经找到,那么解密工作就应该从Manifest文件入手。目前发现最全的manifest二进制文件格式如图,是看雪论坛MindMac大大的贴给出的:http://bbs.pediy.com/showthread.php?t=194206。


5.非常感谢以上两位大大给出便利。


6.手动解密:

分析文件格式可以知道,解密该manifest文件只要把Application标签下的android:qihoo属性删除即可。所以文件需要修改的地方如下:

  • 删除application标签下的android:qihoo属性,总大小为1*5*4bytes
  • 修改XmlContent chunk 中 application start tag chunk的Attribute count 减去1
  • 修改application start tag chunk的chunk size 减去0x14
  • 修改整个xml的file size 减去0x14

 修改的细节就不说了,修改前后的xml及apk文件下载链接:链接:链接:http://pan.baidu.com/s/1i9d86 密码:exod


7.将修改后的xml文件替换掉原apk的中的xml文件,apktool反编译,成功反编译出所有文件!今天先到这,下次再看吧。


0 0
原创粉丝点击