【经验分享】用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:笔者非程序专业,教程抛砖引玉,有更好的方法欢迎交流共勉。