首页
社区
课程
招聘
[原创]AndroidManifest Ambiguity方案原理及代码
2014-11-9 00:31 25086

[原创]AndroidManifest Ambiguity方案原理及代码

2014-11-9 00:31
25086
摘要:前段时间在bluebox的一份android安全pdf中看到一个AndroidManifest Ambiguity方案。该方案基于android系统解析AXML的一个特点:android在解析AXML的属性的时候,是通过该属性的res id号而非属性名定位的。然后通过插入一个ID为0的属性以达到AndroidManifest Ambiguity的目的。不过该报告只给出了一张相当简略的原理图,并没有提供任何其它有用的信息。所以本文详细说明了该方案的实现的过程和相应的原理,并给出实现代码。

这里给自己的blog打个小广告O(∩_∩)O,文章链接:
http://www.cnblogs.com/wanyuanchun/p/4084292.html
代码地址:
https://github.com/wanchouchou/ManifestAmbiguity

附件是方案原理的doc,内容跟blog上的是一样的。

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (20)
雪    币: 507
活跃值: (120)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
鬼谷子c 1 2014-11-9 04:32
2
0
沙发赞一个。换电脑查看后详细评论。。
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
Claud 6 2014-11-9 07:52
3
0
这是我在另一个帖子说的,来兑现咯~
雪    币: 233
活跃值: (148)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
boyliang 5 2014-11-9 10:27
4
0
必须顶的,抽抽加油
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
QEver 5 2014-11-9 10:48
5
0
内容作为研究挺不错的。不过公布出来了,很容易在解析的时候避免掉。
雪    币: 182
活跃值: (173)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
Xbalien 4 2014-11-9 11:05
6
0
挺不错的
雪    币: 370
活跃值: (1181)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
ThomasKing 6 2014-11-9 12:01
7
0
抽抽威武!
雪    币: 29
活跃值: (499)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
万抽抽 2 2014-11-10 11:34
8
0
    竟然还有这回事~这个方案我断断续续弄了大半个月,一直没时间写文档~要是老大早发话,那绝对不吃不喝也得赶工写出来骗精华啊
雪    币: 29
活跃值: (499)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
万抽抽 2 2014-11-10 11:35
9
0
谢谢梁哥支持!
雪    币: 29
活跃值: (499)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
万抽抽 2 2014-11-10 11:38
10
0
是的,但我得了一种不分享就会屎的病,憋不住啊
雪    币: 427
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pwelyn 2014-11-10 15:12
11
0
现在很多一些知名的开发者都有对manifest进行一些混淆,这个出来估计又会有大牛换混淆方案了
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
Claud 6 2014-11-11 07:23
12
0
运气不错,MindMac在你第二天又发了一篇类似的。不过他是为了分析另一批有意思的样本,等他从岛国回来写后续吧。
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
Ericky 6 2014-12-7 17:57
13
0
Hi,最近在研究钛备份,想打包测试下  发现androidmanifest.xml里面的key值全部解析不出来了,难道也能动态加载吗?想到的一个办法是手工补,但是很麻烦,请问如何解决这个问题呢?
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
Claud 6 2014-12-8 02:39
14
0
看楼主这篇文章啊。
雪    币: 29
活跃值: (499)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
万抽抽 2 2014-12-8 11:23
15
0
我过几天会补充一下目前我所了解的、钛备份之类apk对androidmanifest.xml进行混淆等操作的分析,以及修复方案。其实总的来说就一句话:“android在解析axml的时候,不是基于属性名,而是基于属性ID号”,所以我们对属性名进行任意修改、“删除”都是没问题的——甚至还有其他脑洞大开的技巧。至于修复,写个自动化脚本,根据https://android.googlesource.com/platform/frameworks/base/+/c8834722d5591d1381dc199f04a544a6b11b74bd/core/res/res/values/public.xml中的属性ID号和属性名,进行修复即可。
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
Ericky 6 2014-12-8 15:05
16
0
OK  . I have fixed my issues by myself~ thank you!
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
Ericky 6 2014-12-8 15:06
17
0
Hi  , 期待补充  .可以的话 at 我一下
雪    币: 25
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
illa 2015-3-4 17:30
18
0
mark
雪    币: 191
活跃值: (195)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
大王叫我挖坟 3 2016-6-5 17:27
19
0
抽抽大神啊,我用AXMLPrinter2.jar把xml反编译了,然后手动加了点东西,现在用什么工具把xml编译成aml格式啊,不要说apktool啊,因为我按照你的办法在xml里面多加了点东西,apktool回编译失败啊,我想知道怎么单独把xml编译啊,大大
雪    币: 191
活跃值: (195)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
大王叫我挖坟 3 2016-6-6 11:13
20
0
哈哈哈哈抽抽大神的办法不错哦,确实不能运行了,嘿嘿模仿着大神自己解析下style,然后随便插入点东西,可以阻止别人对无源码的apk重新打包啦,然后在jni里面检测如果他删掉那个我们插入的那个属性,就退出程序,太邪恶了
雪    币: 191
活跃值: (195)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
大王叫我挖坟 3 2016-6-6 11:14
21
0
哎,但是如果别人一个一个看xml里面的属性,把那些陷阱属性给剔除掉怎么办,只能增加别人的工作量
游客
登录 | 注册 方可回帖
返回