首页
论坛
课程
招聘
[原创]洗大师的原理
2013-3-18 15:34 24127

[原创]洗大师的原理

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


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

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


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


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


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

[看雪官方培训] Unicorn Trace还原Ollvm算法!《安卓高级研修班》2021年6月班火热招生!!

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