首页
社区
课程
招聘
[原创]洗大师的原理
发表于: 2013-3-18 15:34 26131

[原创]洗大师的原理

2013-3-18 15:34
26131
洗大师最近很火,自称是世界上唯一一款不需要root的主动防御软件,能洗掉apk中的脏代码。个人浅显的分析了一下其中的原理,如有不对,希望大家指正。
    其中最感兴趣的是洗大师对权限的控制,以及其如何对敏感代码的控制。首先我写了一个简单的APK装入虚拟机中,当然同时也把洗大师撞在了里面。然后用洗大师将我的apk洗了一下,个人的APK比较简单,主要的作用就只点击按钮然后像指定的号码静默发送短信。
    洗了之后,利用jd-gui进行查看,发现代码被修改了。被修改的增加了几个类,其中最主要的静默发送短信的函数被修改了。如下图所示


发现增加的类中主要是一些敏感的函数。

发现关键代码被替换,换成了增加的类中的函数。该函数如下


该函数的作用主要是对是否可以发送短信的权限进行了一个判断(这里所指的权限不是指AM文件中申明的权限,而是洗大师是否给予了该apk发送短信的权限)。以下是检查是否赋予权限的函数,发现时通过ClientConnection 这个类通过通信结果来判断是否具有相应的权限的。


进入ClientConnection 发现该类主要是利用LocalSocket 来完成通信的。localsocket 是一种进程间通信方式,不需要联网的权限。


根据以上,我们可以得到一个简单的结论:洗大师将需要清洗的apk上传到云端,应该是解压成了smali文件,然后加入自己的类(该类中住要是一些敏感的api),利用自己的类中的方法来替代原APK中的敏感代码,最后在自己的犯法中加入权限判断代码和控制代码,利用进程间的通信对该敏感方法能否运行进行判断。这样洗大师就可以作为一个主控端对自己洗过的APK进行控制。确实可以做到不root而保证安全性。
      这个是个人的一点分析,如果不对,希望大家指正

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 80
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享  技术贴 分析很好
2013-3-18 15:54
0
雪    币: 207
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感觉楼主!表示我看的很仔细!
2013-3-18 16:57
0
雪    币: 182
活跃值: (226)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
标记一下,最近在看android,谢谢lz分享
2013-3-18 17:06
0
雪    币: 313
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实是不错的点子
2013-3-18 21:14
0
雪    币: 298
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哈哈,谢谢分析。看雪最近很热闹~~昨天才在论坛里看到洗大师,也分析了下动作~有点意思,但涉及侵权和程序稳定性问题,前景不太看好。。。
2013-3-19 00:06
0
雪    币: 90
活跃值: (126)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
确实,破坏了别人程序的完整性,不过在国内的很多程序也是抄的国外的,很少有原创的。对习惯了免费的用户而言,好用就行
2013-3-19 09:11
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
挺有创意的!感谢分享
2013-3-20 09:19
0
雪    币: 652
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不懂  还是帮顶
2013-3-20 09:51
0
雪    币: 761
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
只是对很明显的敏感API屏蔽,对动态加载的病毒还是束手无策的...  已经很不错了
2013-3-20 09:55
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢lz分享
2013-3-21 12:16
0
雪    币: 80
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
楼主的分析很详细,学习了
2013-3-21 14:41
0
雪    币: 53
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
这样破坏了原始dex,签名校验肯定不通过,最终应用本身也无法自升级。
2013-3-26 21:07
0
雪    币: 90
活跃值: (126)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
就是重打包了下
2013-3-27 08:51
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我有个师弟正好要,我可以给他看看
2013-3-27 11:58
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
这个方法合法吗?
2013-3-27 23:07
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
如果是这样的话:
重打包后,签名校验应该无法通过吧?而且这样会导致原作者无法对其升级,并且应该构成侵权。就像前几年360做的一个去qq软件插件的工具那样在,都是对未授权的软件进行修改、破坏其完整性的。
2013-3-29 10:11
0
雪    币: 182
活跃值: (178)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
18
我之前以为他是劫持so,然后逆了洗大师发现他全部加固都在java层。。。我觉得洗大师就是模仿DroidBox的APIMonitor的工具,但是又做得略粗糙。你可以跟进邦邦,这个感觉比洗大师更有前途。
2013-3-29 16:07
0
雪    币: 90
活跃值: (126)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
19
梆梆这个目前也在关注,主要是没有什么可以对照的。目前看到的是他在apk中添加了病毒扫描的模块,不过这个查杀率目前还不敢恭维,对于需要输入密码的地方还做了安全键盘。希望多多交流。
2013-3-29 16:20
0
雪    币: 104
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
请问有关梆梆的资料在哪有没有分享,对此很关注
2013-4-20 15:32
0
雪    币: 33
活跃值: (145)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
类似的文献很多啊,不少方法就是修改ELF Got表!hook系统API。
2013-5-18 21:58
0
雪    币: 28
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
谢谢楼主的分析~~~详细学习一下~
2013-5-22 18:01
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
修改小游戏还不错
2013-5-26 05:08
0
雪    币: 357
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
这图上的代码太小了,看得好费劲。。内容还不错。。。
2013-6-22 17:53
0
雪    币: 108
活跃值: (44)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
25
谢谢分享!!
2013-6-22 18:37
0
游客
登录 | 注册 方可回帖
返回
//