2026年10月28日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
JK-0098594
Lv5甘首五朝臣等级图标等级图标
勋章勋章
帖子
21
回复
611
积分
8,130
注册
2012-03-10
[安卓交流]

[安卓技术]android手机root后的安全问题 (二)

[复制链接]
查看 722 回复 26
楼主 发表于 | 只看该作者
4 人收藏

导读:本文介绍杀毒软件和病毒是如何获取通知栏上的所有通知,并且利用其信息杀死应用。

上一篇将过如何利用root权限来做一次静默安装,有的人会说,安装apk就安装呗,反正哥有金山手机卫士,哥有360主动防御……他们都会弹出通知告诉我的!

安装了新的应用,手机会发送广播,这些所谓的杀毒软件监听这些广播,然后弹出通知

好吧,我承认,他们在一定意义上还是有点用处的,我们先把这个问题放一放,先来说两句题外话

360和和金山手机卫士都有一个让广大android开发者比较蛋疼的一个功能:那就是检查广告通知!

当有通知栏有广告的时候,运行360执行检查,它会告诉你是哪个应用程序的广告(当然,这里并不局限于广告,他们是获得所有通知,然后过滤),然后他会让用户选择:不处理;关闭通知(实际上是把这个进程kill掉,整个软件停止运行);卸载此软件。

虽然我没有发布过android应用,但是我知道,靠软件赚钱的各位,本来收入已经够尴尬的了,再加上这些*的软件提供这些*的功能……哎

大家不喜欢收费软件那咱们就免费,点点广告支持一下总行吧,就是不点,你就放在那呗(当然,有的软件发起广告来没玩没了也挺*)

说了这么多废话,我们就来看看那些所谓的杀毒软件是如何对付大家的

到了关键的地方,实际也就那么一行代码……又让大家失望了。。。

adb shell dumpsys notification

比如,我现在在我机器上面执行一下,输出的结果为

current notification manager state:

notification list:

notificationrecord{41453c70 pkg=com.zdworks.android.toolbox id=7f090092 tag=null pri=0}

icon=0x0 / <name unknown>

contentintent=null

*intent=null

tickertext=null

contentview=null

defaults=0x0

flags=0x62

sound=null

vibrate=null

ledargb=0x0 ledonms=0 ledoffms=0

notificationrecord{415f48e8 pkg=com.zdworks.android.toolbox id=7f090080 tag=null pri=100}

icon=0x7f0200fd / com.zdworks.android.toolbox:drawable/barttery_notify_icon

contentintent=pendingintent{41949028: pendingintentrecord{412e3c20 com.zdworks.android.toolbox startactivity}}

*intent=null

tickertext=电量提示

contentview=android.widget.remoteviews@416e7b90

defaults=0x0

flags=0x22

sound=null

vibrate=null

ledargb=0x0 ledonms=0 ledoffms=0

notificationrecord{416db3e0 pkg=android id=1040414tag=null pri=100}

icon=0x10804f5 / android:drawable/stat_sys_adb

contentintent=pendingintent{41275de8: pendingintentrecord{416dade8 android startactivity}}

*intent=null

tickertext=usb 调试已连接

contentview=android.widget.remoteviews@416daf40

defaults=0x0

flags=0x2

sound=null

vibrate=null

ledargb=0x0 ledonms=0 ledoffms=0

notificationrecord{41790de8 pkg=com.htc.android.psclient id=7f020010 tag=null pri=100}

icon=0x7f020010 / com.htc.android.psclient:drawable/usb_to_pc_notify

contentintent=pendingintent{416c3e38: pendingintentrecord{417bc968 com.htc.android.psclientstartactivity}}

*intent=null

tickertext=null

contentview=android.widget.remoteviews@4169d128

defaults=0x0

flags=0x2

sound=null

vibrate=null

ledargb=0x0 ledonms=0 ledoffms=0

msoundnotification=null

msound=com.android.server.notificationplayer@413e73b8

mvibratenotification=null

mdisablednotifications=0x0

msystemready=true

现在大家知道了吧,这么简单就把咱们给搞定了

下面的事情就简单

1.想办法获取这段log

2.提取包名

3.根据数据库中的黑名单白名单不同处理

4.你的应用很可能在黑名单中,最后的结果也基本是进程被杀死

(这里就不演示3、4部分了,只演示1、2)

view plaincopy

testbutton = (button)findviewbyid(r.id.*);

testbutton.setonclicklistener(new view.onclicklistener() {

public void onclick(view v) {

string[] *s = {“dumpsys notification“};

process process = null;

dataoutputstream dataoutputstream = null;

try {

process = runtime.getruntime().*(“su“);

dataoutputstream = new dataoutputstream(process.getoutputstream());

int length = *s.length;

for (int i = 0; i < length; i++) {

log.e(tag, “*s[“ + i + “]:“ + *s);

dataoutputstream.writebytes(*s + “\n“);

}

dataoutputstream.writebytes(“exit\n“);

dataoutputstream.flush();

process.waitfor();

bufferedreader reader = null;

reader = new bufferedreader(new inputstreamreader(process.getinputstream()));

string line = ““;

list<string> linelist = new arraylist<string>();

final stringbuilder log = new stringbuilder();

string separator = system.getproperty(“line.separator“);

pattern pattern = pattern.compile(“pkg=[^\\s]+“);

while ((line = reader.readline()) != null) {

if(line != null && line.trim().startswith(“notificationrecord“)){

matcher matcher = pattern.matcher(line);

if(matcher.find()){

linelist.add(matcher.group());

}else{

log.e(tag, “what‘s this?!“);

}

}

log.append(line);

log.append(separator);

}

log.v(tag, “log:“ + log.tostring());

int size = linelist.size();

for (int i = 0; i < size; i++) {

log.i(tag, “app:“ + linelist.get(i));

}

} catch (exception e) {

log.e(tag, “copy fail“, e);

} finally {

try {

if (dataoutputstream != null) {

dataoutputstream.close();

}

process.destroy();

} catch (exception e) {

}

}

log.v(tag, “finish“);

}

});

}

上面的这段代码实在没什么技术含量,让给位网友见笑了

按顺序简单解释一下

首先,我们先执行dumpsys notification这条命令,这在上一期的代码中已经有了

然后通过process.getinputstream()获得其输出按行读取,这里只关心类似于下面这种的log

notificationrecord{40dacad8 pkg=com.htc.android.psclient id=7f020010 tag=null pri=100}

然后从中提取出包名即可

其中的正则就是为了提取包名用的,想了解正则的同学可以看我的正则教程

深入入门正则表达式(java)

这里我执行的结果为(看来有一个应用提示了两个通知)

view plaincopy

app:pkg=com.zdworks.android.toolbox

app:pkg=com.zdworks.android.toolbox

app:pkg=android

app:pkg=com.htc.android.psclient

之后的工作就是把这个list展示给用户,让用户去选择了

既然360可以这样,病毒为什么不可以呢?病毒fake.apk可以在半夜偷偷安装应用real.apk,几秒钟后,fake.apk执行上面的这些操作,获取360,然后kill!爽!

大家有兴趣可以反编译一下金山和360,他们基本就是这么干的,我发现360比较坏,至于为什么这么说,大家自己去发现吧

ps:我使用的是卡巴斯基免费版,杀毒软件是不会去管有没有广告推送的,广告不是病毒,杀毒软件也不应该干一些不该干的事!

请大家不要用root的手机随意下载软件,更不要以任何借口制造任何病毒!

登录回复
JK-0072827
Lv6胸怀六国志等级图标等级图标
勋章勋章勋章勋章
帖子
15
回复
361
积分
4,083
注册
2011-09-12
1 楼

你牛,我顶!

JK-0065858
Lv4莫问四书意等级图标等级图标等级图标等级图标等级图标
勋章
帖子
8
回复
627
积分
3.2万
注册
2011-07-26
2 楼

你牛,我顶!

JK-0047321
Lv5甘首五朝臣等级图标等级图标等级图标
勋章
帖子
3
回复
1,631
积分
4万
注册
2011-06-02
3 楼

这帖不错,该顶

JK-0066833
Lv6胸怀六国志等级图标等级图标
勋章勋章
帖子
0
回复
2,204
积分
45.5万
注册
2011-08-02
4 楼

这帖不错,该顶

JK-0073454
Lv2独赏二月雪等级图标
帖子
4
回复
343
积分
274
注册
2011-09-16
5 楼

看帖回帖是美德!

JK-0016034
Lv6胸怀六国志等级图标等级图标等级图标等级图标
勋章
帖子
0
回复
798
积分
285
注册
2011-02-26
6 楼

安卓我最行!

JK-0016034
Lv6胸怀六国志等级图标等级图标等级图标等级图标
勋章
帖子
0
回复
798
积分
285
注册
2011-02-26
7 楼

祝安卓论坛越来越好!

JK-0066073
Lv5甘首五朝臣等级图标
勋章
帖子
15
回复
425
积分
3,413
注册
2011-07-28
8 楼

你牛,我顶!

JK-0129334
Lv1韶华一笑间等级图标
帖子
5
回复
36
积分
569
注册
2012-12-18
9 楼

安卓我最行!

JK-0099238
Lv2独赏二月雪等级图标
帖子
8
回复
298
积分
2,997
注册
2012-03-14
10 楼

安卓我最行!

JK-0092899
Lv5甘首五朝臣等级图标等级图标等级图标等级图标等级图标
帖子
38
回复
946
积分
2万
注册
2012-01-24
11 楼

看帖回帖是美德!

JK-0113474
Lv3畅意三江水等级图标
帖子
0
回复
409
积分
4,006
注册
2012-06-27
12 楼

这帖不错,该顶

JK-0101593
Lv1韶华一笑间等级图标
帖子
1
回复
139
积分
4,479
注册
2012-03-31
13 楼

安卓的世界,我的世界

JK-0094353
Lv3畅意三江水等级图标
帖子
3
回复
286
积分
2.6万
注册
2012-02-06
14 楼

安卓问题、内信1111

JK-0096467
Lv2独赏二月雪等级图标
帖子
3
回复
203
积分
1,596
注册
2012-02-21
15 楼

安卓问题、内信50m590

JK-0141536
Lv1韶华一笑间等级图标
帖子
0
回复
87
积分
1,655
注册
2013-08-15
16 楼

咯哦睡觉了

JK-0016150
Lv2独赏二月雪等级图标
帖子
8
回复
237
积分
2,139
注册
2011-02-27
18 楼

痛苦了了了了

JK-0112203
Lv1韶华一笑间等级图标
帖子
0
回复
103
积分
1,360
注册
2012-06-17
19 楼

ohggjj

JK-0127136
Lv1韶华一笑间等级图标
帖子
0
回复
143
积分
1,248
注册
2012-11-16
20 楼

9633

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块