- 浏览: 2144914 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
导读:本文介绍杀毒软件和病毒是如何获取通知栏上的所有通知,并且利用其信息杀死应用。
上一篇将过如何利用root权限来做一次静默安装,有的人会说,安装apk就安装呗,反正哥有金山手机卫士,哥有360主动防御……他们都会弹出通知告诉我的!
安装了新的应用,手机会发送广播,这些所谓的杀毒软件监听这些广播,然后弹出通知
好吧,我承认,他们在一定意义上还是有点用处的,我们先把这个问题放一放,先来说两句题外话
360和和金山手机卫士都有一个让广大android开发者比较蛋疼的一个功能:那就是检查广告通知!
当有通知栏有广告的时候,运行360执行检查,它会告诉你是哪个应用程序的广告(当然,这里并不局限于广告,他们是获得所有通知,然后过滤),然后他会让用户选择:不处理;关闭通知(实际上是把这个进程kill掉,整个软件停止运行);卸载此软件。
虽然我没有发布过android应用,但是我知道,靠软件赚钱的各位,本来收入已经够尴尬的了,再加上这些操蛋的软件提供这些操蛋的功能……哎
大家不喜欢收费软件那咱们就免费,点点广告支持一下总行吧,就是不点,你就放在那呗(当然,有的软件发起广告来没玩没了也挺操蛋)
说了这么多废话,我们就来看看那些所谓的杀毒软件是如何对付大家的
到了关键的地方,实际也就那么一行代码……又让大家失望了。。。
比如,我现在在我机器上面执行一下,输出的结果为
现在大家知道了吧,这么简单就把咱们给搞定了
下面的事情就简单
1.想办法获取这段log
2.提取包名
3.根据数据库中的黑名单白名单不同处理
4.你的应用很可能在黑名单中,最后的结果也基本是进程被杀死
(这里就不演示3、4部分了,只演示1、2)
上面的这段代码实在没什么技术含量,让给位网友见笑了
按顺序简单解释一下
首先,我们先执行dumpsys notification这条命令,这在上一期的代码中已经有了
然后通过process.getInputStream()获得其输出按行读取,这里只关心类似于下面这种的log
然后从中提取出包名即可
其中的正则就是为了提取包名用的,想了解正则的同学可以看我的正则教程
这里我执行的结果为(看来有一个应用提示了两个通知)
之后的工作就是把这个list展示给用户,让用户去选择了
既然360可以这样,病毒为什么不可以呢?病毒Fake.apk可以在半夜偷偷安装应用Real.apk,几秒钟后,Fake.apk执行上面的这些操作,获取360,然后kill!爽!
大家有兴趣可以反编译一下金山和360,他们基本就是这么干的,我发现360比较坏,至于为什么这么说,大家自己去发现吧
请大家不要用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比较坏,至于为什么这么说,大家自己去发现吧
请大家不要用root的手机随意下载软件,更不要以任何借口制造任何病毒!
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 567本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1025颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 925从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1032Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 901Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 765前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 853监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 728在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 826最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1225##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 998当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 676setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1402问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 679底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1661点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1289import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2199TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1447一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 790Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 887最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
NULL 博文链接:https://su1216.iteye.com/blog/1668734
这是一个工具,帮你获取android手机的root权限。让你不受控制,当然,这可能也给你手机带来一些安全问题,所以请慎重。
许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...
root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root是Linux等类UNIX系统中的...
- 软件管理:列出系统的所有软件,启动软件、卸载软件、系统的卸载失败(需要root权限这个后面也会介绍) - 进程管理:列出系统中正在运行的程序;演示杀死软件 - 窗口小部件:添加桌面; - 流量统计:模拟器并不...
许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...
一、通用解决方案 二、Android手机使用的通用方法(简洁版) 三、Android手机已ROOT方法 ...五、Android手机未ROOT方法(方法二) 六、Android7.0及以上系统连接WIFI显示网络连接受限(Android10系统ROM定制)
手机QQ 安全业务用例 模拟器、root检测,通用返回脚本等参考方案
天天root是一款专业好用的安卓手机root工具。软件安全,稳定,快速,覆盖了国内绝大部分的手机机型,覆盖了国内绝大部分的手机机型,安全root成功率极高。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速...
Root本身是指Linux系统的root帐户,该帐户拥有整个系统至高无上的权利,系统中的所有对象它都可以操作,对于Android手机用户来说的Root是指拥有Root权限,一般情况下,手机厂商出于安全考虑会关闭手机的Root权限,...
ndroid手机与计算机建立连接之后,计算机能以root身份登录Android手机,会给手机的应用程序和用户数据造成安全隐患。以Android手机为平台,提出了一种适用于Android手机的访问控制方法,该方法在Android手机的内核中增加...
本软件专门用于手机安卓软件4.0以上的root,成功率能到到九成,并且对手机系统绝无损坏,本人已亲测。绝对安全绿色
Android手机与计算机建立连接之后,计算机能以root身份登录Android手机,会给手机的应用程序和用户数据造成安全隐患。以Android手机为平台,提出了一种适用于Android手机的访问控制方法,该方法在Android手机的内核中...
许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...
摘要:为解决Android手机获取Root权限系统安全性的降低,非Root授权下Android手机安全应用防护效果不理想的一系列问题,研究了 ART 运行时工作原理、Java 反射机制和 AOP 原理,设计验证了一套免Root主动防御机制,...
Android平台恶意软件可以使用获取系统root权限的方式来绕过传统的Android安全机制,并且由于Android碎片化现象的存在,出现了很多利用方式、范围不同的Android root漏洞,因此有必要详细了解这些漏洞的实现机制,以采取...
PXN是“Privileged Execute-Never”的简写,是一种漏洞利用缓解措施,它能阻止用户空间shellcode以特权态执行...本次议题还将利用一个IceSword Lab报给Google的高通驱动漏洞,来展示如何绕过PXN来root一款Android手机。
软件特点1、快速识别手机型号,及时更新上市的新机,最快选出对应手机的root方案,使得手机root的速率大大提升。2、支持版本跨度大,从Android 2.3~Android 4.4各个版本的root支持,基本涵盖了国内所有手机的版本...
软件体积小,但成功率高,支持中兴、华为、联想、三星、HTC等国内外知名品牌手机,覆盖Android 超过300款机型。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成日常安卓手机一键ROOT...
“一键Root大师”[1]是由国内著名应用开发...一键Root大师分为PC版和手机版,软件适配了大多数Android手机和平板,集成了多种Root方案,可以智能匹配出适合用户机型的Root方案,是一款高效安全的Android手机Root工具。