- 浏览: 671791 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yigeisme:
你好,不已.html和.jsp和.jpg结尾的正则表达式怎么写 ...
深入入门正则表达式(java) - 2 - 基本实例 -
su1216:
多谢指正yigeisme 写道1-12(小时,月份)正则:^( ...
深入入门正则表达式(java) - 2 - 基本实例 -
yigeisme:
1-12(小时,月份)正则:^(1[012]|\d)$应该改成 ...
深入入门正则表达式(java) - 2 - 基本实例 -
heikefangxianceshi:
小三将军 写道楼主,我想问下你给的Real.tar.gz是什么 ...
android手机root后的安全问题 (一) -
heikefangxianceshi:
这个程序运行的前提是手机root,但你的手机怎么root的呢? ...
android手机root后的安全问题 (一)
导读:本文介绍杀毒软件和病毒是如何获取通知栏上的所有通知,并且利用其信息杀死应用。
上一篇将过如何利用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 deleteIntent=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}} deleteIntent=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=1040414 tag=null pri=100} icon=0x10804f5 / android:drawable/stat_sys_adb contentIntent=PendingIntent{41275de8: PendingIntentRecord{416dade8 android startActivity}} deleteIntent=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.psclient startActivity}} deleteIntent=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)
testButton = (Button)findViewById(R.id.exec); testButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String[] commands = {"dumpsys notification"}; Process process = null; DataOutputStream dataOutputStream = null; try { process = Runtime.getRuntime().exec("su"); dataOutputStream = new DataOutputStream(process.getOutputStream()); int length = commands.length; for (int i = 0; i < length; i++) { Log.e(TAG, "commands[" + i + "]:" + commands[i]); dataOutputStream.writeBytes(commands[i] + "\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}
然后从中提取出包名即可
其中的正则就是为了提取包名用的,想了解正则的同学可以看我的正则教程
这里我执行的结果为(看来有一个应用提示了两个通知)
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的手机随意下载软件,更不要以任何借口制造任何病毒!
转贴请保留以下链接
本人blog地址
评论
听上去和我这文章没啥关系啊
你看看第三方教程就行了
没用过第三方,只用过androidpn
这里只说明如何获取notification对应的进程,获得了相应的pid应该就可以下手了。如何杀死,自行百度吧。
你是怎么关闭360的,没有彻底关闭。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
没查到这个用法。。。
android手机root后的安全问题 (四)
嗯,看了。 这样看来,好像通知栏消息好像无法监听,但是360是怎样做到监听的?
不知道他还有监听功能
如何使用,说来听听
360手机卫士里有个功能恶意广告拦截,你可以看看
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
没查到这个用法。。。
android手机root后的安全问题 (四)
嗯,看了。 这样看来,好像通知栏消息好像无法监听,但是360是怎样做到监听的?
不知道他还有监听功能
如何使用,说来听听
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
没查到这个用法。。。
android手机root后的安全问题 (四)
嗯,看了。 这样看来,好像通知栏消息好像无法监听,但是360是怎样做到监听的?
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
没查到这个用法。。。
android手机root后的安全问题 (四)
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
没查到这个用法。。。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
没用过,我去查查是什么。。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
没有杀不掉的
你要不爽,就disable掉它算了
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
还有进程可以杀掉,但像服务这样,杀不掉,杀掉了又重新启动。。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
不是啊,像360它拦截了广告后,会有记录,记录就有notification的信息。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
得到notification干什么
直接把这个应用干掉
就像流氓软件一样
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
楼主,得到packagename,接着怎么得到notification对象呢。?
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
额。。。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
揉揉。
我哪有那本事。。。
搜索你认为是关键字的字符串,逐个检查
嗯。。我下午查notification就是这样,不过,类多的我蛋疼。。
发表评论
-
android 第三方app截图
2017-08-17 15:18 1169将View生成相应的图片 ... -
android截图事件监听
2017-07-20 18:37 2007android系统没有对用户截屏行为提供回调的api,所以我 ... -
android widget(桌面小部件)实现
2017-06-30 13:02 2059本文介绍如何自己实现一个widget以及各种注意事项。 ... -
acra简析
2016-07-31 23:54 0版本4.9.1 acra是用来在 ... -
android版本差异
2016-07-28 14:42 0这里只列出部分开发相关内容 notification ... -
android系统提供的常用命令行工具
2016-06-21 13:17 5103本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链 ... -
标示与掩码
2015-10-21 23:00 0掩码(英语:Mask) ... -
通过蓝牙调试(穿戴设备app) - 开发文档翻译
2015-09-30 11:43 2637由于本人英文能力实在 ... -
打包穿戴设备app - 开发文档翻译
2015-09-29 17:19 1871由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没 ... -
弧形进度条(动画版)
2015-07-23 17:00 5928本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接 ... -
使用canvas与Paint在View中居中绘制文字
2015-07-15 23:03 8990本博客只要没有注明 ... -
android 关于提高第三方app的service优先级
2014-06-23 23:14 3178本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链 ... -
android <application> 开发文档翻译
2014-05-24 23:47 5150由于本人英文能力实 ... -
android中各种log的抓取
2013-12-23 13:15 01.logcat的使用 2.内存快照的抓取 ... -
android多语言项目中字符串的移植(bash工具)
2013-11-11 13:31 2502有时候我们会遇到这样一种情况: 一些字符串资源要从原始项 ... -
android 高效显示Bitmap - 开发文档翻译
2013-09-13 17:59 2629由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没 ... -
android 在你的UI中显示Bitmap - 开发文档翻译
2013-09-06 19:33 6631由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没 ... -
android 管理Bitmap内存 - 开发文档翻译
2013-08-27 15:39 4164由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没 ... -
android 缓存Bitmap - 开发文档翻译
2013-08-25 13:01 3197由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有 ... -
android 在UI线程之外处理Bitmap - 开发文档翻译
2013-08-12 13:30 3426由于本人英文能力实 ...
相关推荐
标题提到的"android手机root检测"是指检查Android设备是否已经获取了root权限的过程。这个过程对于应用开发者和安全专家来说尤其重要,因为他们需要确保其应用不会在被root的设备上运行,因为这可能会导致数据泄露或...
NULL 博文链接:https://su1216.iteye.com/blog/1668734
5. **恢复方法**:如果修改后出现问题,可以尝试恢复备份的系统镜像,或者使用一些Root管理工具如SuperSU或Magisk进行系统还原。如果设备因错误修改而无法启动,可能需要通过fastboot模式或ODIN工具刷入新的系统固件...
【中兴U880 Android手机root工具 SuperOneClick】是一种专门为中兴U880智能手机设计的便捷Root工具,其主要目标是帮助用户获取设备的最高管理权限,即所谓的Root权限。在Android系统中,Root权限相当于Windows系统中...
由于Android系统的安全机制,大多数应用程序没有root权限,因此不能直接使用tcpdump工具进行抓包。然而,通过一些特殊的技术手段,我们可以在非root的Android设备上实现抓包功能。 首先,理解tcpdump的运行需求。...
这是一个工具,帮你获取android手机的root权限。让你不受控制,当然,这可能也给你手机带来一些安全问题,所以请慎重。
【标题】"索尼Android手机无痛root"涉及的是在不造成设备损坏或数据丢失的情况下,对索尼Android手机进行超级用户权限获取的过程。Root是Android系统中的一个术语,它指的是允许用户获得系统的最高权限,以便可以...
Android手机获取root权限是许多高级用户为了更深度定制和优化设备所采取的步骤。Root权限类似于Linux系统中的超级管理员账户,允许用户访问和修改手机的底层文件,包括系统核心和设置。这种权限通常由手机制造商限制...
在Android操作系统的世界里,"root"一词代表着...root后,手机的安全性可能会降低,容易受到恶意软件攻击。此外,root可能违反手机厂商的保修政策,导致保修失效。因此,在决定root前,请充分了解其利弊,谨慎操作。
下面我们将详细探讨Android手机终端上的root用户命令合辑及其用法。 1. **获取Root权限**:首先,获取root权限是整个过程的基础。这通常需要通过第三方工具或服务,如Magisk、SuperSU等。每个工具都有其特定的流程...
Android手机的ROOT权限是一个关键的概念,尤其对于那些喜欢深入探索和自定义设备的用户来说。在Android系统中,"ROOT"是指获取手机操作系统最高级别的权限,相当于Linux系统中的超级管理员用户账户,也就是root用户...
3. **安全更新**: 获取root权限后,可能无法接收官方的安全更新,需要自行保持警惕,防范潜在的安全威胁。 4. **恢复出厂设置**: 如果root过程失败或遇到问题,可能需要将设备恢复出厂设置,这将清除所有数据。 ...
在Android操作系统中,获取root权限是一项关键操作,它允许用户超越默认的系统限制,访问和修改系统的底层组件。...对于想要深入定制手机或解决特定问题的用户,掌握如何安全有效地获取和管理root权限至关重要。
现在,我们来看判断Android手机是否已Root的三种方法: 1. **检查已知Root应用是否存在**:这种方法简单直接,通过查找已知的Root管理应用(如SuperSU、Magisk等)的系统文件或服务来判断。例如,可以检查/system/...
5. **后root维护**:成功root后,用户应安装一个如SuperSU这样的管理应用来控制各个应用的root权限,并定期更新以防止已知的安全漏洞。 6. **恢复原状**:如果用户不再需要root权限或遇到问题,可以通过unroot工具...
【华为手机root软件】 华为手机root工具是一种专为华为设备设计的软件,旨在获取手机的最高权限,即root权限。root是Android系统中的一个概念,代表着用户能够对系统进行深层次的定制和修改,不受厂商预装应用和...
这篇"Android ROOT教程"旨在帮助安卓手机用户了解并实现ROOT权限的获取。 首先,我们要明确ROOT的风险。虽然ROOT可以带来诸多便利,如删除预装应用、优化电池性能等,但也可能导致系统不稳定,甚至丢失保修。因此,...
### Android手机获取Root权限教程详解 #### Root权限概念与重要性 **Root权限**,对于Android设备来说,意味着用户能够获得对其操作系统最高级别的控制权。这一权限赋予了用户修改或替换设备操作系统的能力,几乎...
【KSP8000手机Root详解】 Root是Android系统中的一个术语,指的是获取设备的最高权限,类似于Windows系统的管理员权限。Root后,用户可以访问并修改系统级别的文件,安装自定义固件、删除预装应用,优化系统性能,...
对于Android用户而言,Root意味着对设备控制的极大增强,但也需谨慎对待,以免因不当操作导致设备不稳定或安全问题。而对于Android开发者和安全研究人员,深入理解Root的原理和技术细节,有助于构建更加安全、稳定的...