【经验分享】用adb揪出安卓APP弹窗广告的原形
背景
相信不少安卓用户中过影子弹窗广告的困扰,这种推广APP本体在后台运行,而且可以在其他APP上弹出覆盖广告,一不小心就会误操作,点击广告或者下载APP,着实令人恶心。
以前的广告软件只在通知栏会推送广告,4.4以上版本或者一些rom可以轻易长按管理并找到元凶。
而此升级版却是直接覆盖其他应用程序在屏幕中心和底部直接弹出广告。浏览器、QQ、微信,无一幸免,切换到桌面和最近的应用程序居然可以自动隐藏,大写的服。

(中招截图)
无奈之下,笔者把**管家,36*,LE*,金* 全试了一次,竟然没有一个能找到罪魁祸首,简直不能忍!
准备工作
1.要进入开发者模式打开USB调试,安装驱动,这部分属于比较初级,就略过了。
2.下载adb工具包。
4.找一根稳定的数据线,将手机连接电脑,在手机的弹出窗口中允许USB调试。

正式开始
1.然后用管理员进CMD,输入
cd /d "Z:\Desktop\adb"
将双引号内的路径换成你电脑上ADB工具所在路径
2.查看设备,输入
adb devices

如果你的驱动安装正确,应该可以看到有设备,如果没有,返回准备工作,检查驱动是否正确安装。
3.尝试运行手机中每一个APP,直到弹出广告。笔者画了3分钟时间,在运行到一个清理应用的时候,弹出了广告,按home键返回桌面广告滞留了一瞬间,说明有可能不是APP内的广告。
4.电脑上迅速清理日志,输入
adb logcat -c
清理一次设备日志记录,这时候开始不要操作手机。
5.然后点击一下广告,广告肯定会打开浏览器或者什么别的操作。
6.电脑上输入
adb logcat -d > c:/b.log
在C盘下会创建一个b.log,储存了刚才的设备操作。
7.用notepad++或者其他文本编辑器打开b.log,搜索”Touch event's”,可以忽略大小写来查找。

如图,不出意外应可以找到2个事件,一次是按下,一次是弹起,我们接着往下分析。

如图可以看到,在点击事件下方,一个ID为10640的进程拉起了浏览器。
我们把这个ID记下来
8.回到adb,输入
adb shell
进入shell界面,再输入
ps | grep "10640"
将10640换成你找到的ID
返回结果如下

这个com.zdworks.android.zdcalendar就是罪魁祸首,应用名称我就不说了,还是个比较出名的APP,各大防护软件没反应也许和这个有关?
后面的事情就简单了,可以直接在adb中输入,卸载之。
adb uninstall com.zdworks.android.zdcalendar
9.返回手机,关闭USB调试。
教程至此,我们已经成功揪出这个家伙,教程分2段写的,所以命令的时间会有差异。
再说两句
笔者在此给广大安卓用户提个醒,国内应用市场危机四伏,这个软件还是从三星官方应用商店下载,所以不了解的的软件千万不要安装,拒绝当小白鼠,从我做起。
PS:笔者非程序专业,教程抛砖引玉,有更好的方法欢迎交流共勉。
【经验分享】用adb揪出安卓APP弹窗广告的原形的更多相关文章
- 【原创】大叔经验分享(81)marathon上app无法重启
通过api调用marathon重启app后出现deployment,但是app不会重启,配置如下: "constraints": [ [ "hostname", ...
- 【原创】大叔经验分享(70)marathon重启app后一直处于waiting状态
marathon重启app后一直处于waiting状态,查看marathon日志 # journalctl -u marathon -f 有如下日志: Jun 14 12:58:38 DataOne- ...
- 转载----开发者大杀器 —— 刨根问底,揪出 Android App 耗电的元凶代码
转载文章地址:http://www.jianshu.com/p/27ba2759b221
- 新东方APP技术架构演进, 分布式系统架构经验分享
今天的演讲题目是"新东方APP技术架构演进, C端技术经验分享" 作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产 ...
- 使用Webpack+Gulp开发运行于Dcloud平台HTML5+引擎的混合APP项目经验分享
什么是5+Runtime? 首先简单介绍一下5+Runtime: HTML5 Plus Runtime(5+Rumtime)是由Dcloud开发的一套"增强版的手机浏览器引擎",与 ...
- 【实战分享】安卓app测试的一些记录
一.app代码未混淆1.使用7zip解压apk文件2.执行命令:dex2jar.bat apk解压后文件夹中的classes.dex文件3.上述命令执行后会在apk文件夹中生成java源码文件clas ...
- 安卓app设计规范整理和Android APP设计篇(转)
随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- 【转载】安卓APP架构
注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...
随机推荐
- python 操作元组 列表===python中三大宝刀(字典已经再上一遍 说过)
字典俗称,世界有多大就能装多大 列表俗称,你们决定 元组俗称,可远观而不可亵玩焉 列表的相关操作a=['1','2','3','5','6','7']# print(a[0])# print(a[0: ...
- 【BZOJ4631】踩气球 题解(线段树)
题目链接 ---------------------- 题目大意:给定一个长度为$n$的序列${a_i}$.现在有$m$个区间$[l_i,r_i]$和$q$个操作,每次选取一个$x$使得$a_x--$ ...
- 咕咕咕清单(SCOI2020前)
本篇博客已停更 本篇博客已停更 本篇博客已停更 吐槽区: 2020.04.15: 从今天起我做过的题目都记录一下,想不想写题解就另说了 2020.04.17: 写了两天之后真实的发现这是博主的摸鱼日记 ...
- JavaFX桌面应用开发-HelloWorld
JavaFX是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计.创建.测试.调试和部署富客户端程序,并且和Java一样跨平台. JavaFX比Swing好用很多,它允许开发使用FXML来设计和 ...
- 【JAVA】java中int转成String位数不足前面补零例如:1->001
String.format("%03d", 1); 0代表前面要补的字符3代表字符串长度d表示参数为整数类型 测试完数据:循环了100次 截取了一部分:
- 2020-04-10:有一个 API 服务,后端只使用了数据库来持久化数据,平时在 API 网关上监控到响应时间平均值大约为10ms,现在突然上涨到 5s,而且一直居高不下。请简单描述一下你排查这个问题的思路。
福哥答案2020-04-11: 1 排查api服务 是否是有大量请求 2 查看mysql的系统情况 cpu 磁盘io 连接数 还是要先定位问题出现在哪个环节
- C#LeetCode刷题之#389-找不同(Find the Difference)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4062 访问. 给定两个字符串 s 和 t,它们只包含小写字母. ...
- 共享&img (给作者自己
--------------------------------------------------------- ------------------------------------------ ...
- vue watch 和 computed 区别与使用
目录 computed 和 watch 的说明 与 区别 computed 计算属性说明: watch 监听属性说明: watch 和 computed 的区别是: 使用 参考官方文档 compute ...
- JavaScript学习系列博客_25_JavaScript 数组(Array)
数组 - 数组也是一个对象,是一个用来存储数据的对象,和Object类似,但是它的存储效率比普通对象要高. - 数组中保存的内容我们称为元素 - 数组使用索引(index)来操作元素 - 索引指由0开 ...