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

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

2014-11-9 00:31
25916

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

这里给自己的blog打个小广告O(∩_∩)O,文章链接:
665K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6%4j5h3&6&6N6h3q4F1j5$3S2#2L8W2)9J5c8Y4m8Q4x3V1j5@1x3o6R3@1x3U0V1J5i4K6u0W2K9s2c8E0L8l9`.`.
代码地址:
c65K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6%4j5h3&6U0K9r3!0#2j5$3S2G2N6g2)9J5c8V1#2S2L8X3W2X3k6i4y4@1b7h3#2T1K9h3N6#2K9i4c8&6

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


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

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