月光博客 » 互联网络 » 揪出Android手机下乱弹广告的流氓

揪出Android手机下乱弹广告的流氓

  前几天,我的android手机升级了几个软件,这两天手机突然莫名其妙的弹广告,并且根本不知道是哪个应用程序弹出来的。一般地弹广告也是运行某个app,就算是后台弹出,也有地方标志着是这个app弹的广告。而这次这个app也太狠了,自己想赚钱也就算了,还不让用户知道是谁。就想到一定得把它揪出来。 (之前以为是appchina应用汇,就卸载了,结果还弹……然后就是怀疑之前更新的豌豆荚,水果忍者……,不能老用排除法试了) 我能想到的解决方案就是看android运行的系统log日志了。

  一种方法是连接电脑,用adb调试工具查看log,另一种方法是直接在android手机看log日志记录:alogcat

  等手机再弹出广告时,打开alogcat,为了方便查找,清除下刚刚产生的log,然后去通知栏那里点点那个广告,再返回alogcat先暂停记录log,然后慢慢看。TMD,是一个叫com.halfbriakin.utils..之类的activity再放广告,然后关键字*fruitninjaseasons*,居然是水果忍者。

  再想水果忍者的开发者应该不会无耻到这个地步吧?用这样的方式弹广告。就想弄个究竟。查了下,我这个水果忍者是从豌豆荚下的,说的开发商是halfbriakin,而切水果这样的火,他应该不敢这么做吧,查了下,切水果的官网是halfbrick.com。得看看halfbrick跟halfbriakin的关系。是否halfbriakin山寨了了halfbrick,在其之上包装了一层。看样子好像是的,纯属个人猜测。

  继续探个究竟。看源代码,希望试图从中找出其与广告相关的代码跟halfbriakin的关系。从官网下载的com.halfbrick.fruitninjafree进行对比。

  android的apk文件反编译用到的工具:

  android代码反编译工具:dex2jar;java源代码查看工具:jd-gui;android资源文件查看工具,(那些xml文件,打包成apk时被编码过一次,直接看有乱码看不清楚) apktool或者AXMLPrinter2

  下面看看过程:

  1. 反编译得到源代码,直接将apk文件后缀改成rar,用winrar解压即可得到classes.dex,然后通过dex2jar工具就能得到java的源代码。

    apk反编译dex2jar

  2. 然后用jd-gui查看编译后的源代码。看样子好像确实是山寨的,不过可能因为二者版本不一致导致的?我想可能不大。下图左边为网上能下载到的开发商是halfbriakin发布的软件,在什么豌豆荚啊应用汇啊等等能下到,其介绍敢说哦什么Android官方无广告版本正式发布,只能说在放P了。下图右是我到google play下的,官网的免费版本。能看出来开发商是halfbriakin这个版本多了个上面那个包。

    fruitninjafree广告

  3. 怀疑类似一些请求广告的url写在资源xml文件中,因此得解码资源文件。android的xml资源文件解码有两种方法

  用AXMLPrinter2.如下图命令后,打开t.xml文件可以看到AdnroidManifest的内容。

android反编译资源xml文件

 

  用apktool,如图。直接打开各个目录下的xml文件即可看到

android资源文件反编译apktool

   

  结果找了下,好像什么请求广告的url之类没写在string.xml等文件里面。还是看源代码吧。

  查了下,’山寨’版本(暂且这么叫吧)的切水果,除了官方版本的广告外(google ads,意大利的游戏广告企业beintoo,移动广告服务商admob和moblix),还有多余的那个包domob(国内的手机广告服务商多盟),找了下没有找到相关的绑定的ID(也不深究了)。感到奇怪的是,水果忍者发布出来的源码里面出现了好多这种废弃的代码,不知道是程序员懒还是怎么着。自我感觉发布的时候还是把废弃代码给删掉吧,能减轻体重呢。

切水果程序员废弃代码

  另外看“山寨”的源码也有这种废弃的代码:

水果忍着恶心代码恶心广告

  现在就不知道是到底是出自原来的程序员之手呢还是说山寨的过程中,copy了这些代码。

  不管怎么说,如果这个开发商halfbriakin是来自官网也好,不是也罢,这个广告也弹得太恶心了。

  来源:投稿,作者:中南大学软件学院08级学生:唐磊 ,作者blog

揪出Android手机下乱弹广告的流氓

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    源氏源氏   说道:
    简单,长按小房子键,第一个在运行的就是广告软件。
    裸奔的兔子 于 2012-6-25 10:16:27 回复
    高。。
    没看见 于 2012-6-25 13:06:28 回复
    我也是:)
    逸小飞 于 2012-6-25 22:18:07 回复
    我刚想回复说 ”没必要这么麻烦 长按home键 调出最近使用的程序就可以了“ 结果就发现有人说了!
    walfred 于 2012-6-26 9:47:00 回复
    这个方式是不行的,一般的广告商提供的程序都是作为后台Service执行的,而且是有一定的时长再发作的。你可以试试先运行一个带广告的程序,再运行一个正常程序,你会发现的这个问题的。
    支持(33反对(19回复
  1. 2
    安卓在线官方   说道:
    纳尼!各位被广告狠狠骚扰的亲~可以狠狠地看看这个了!
    支持(30反对(20回复
  1. 3
    楚-尘言   说道:
    我的手机也存在这个问题,现在我根本就找不到到底是什么软件弹出来的,像短信一样可以在信息栏里出现,求解答。
    支持(21反对(13回复
  1. 4
    麦田日记   说道:
    用MIUI v4版本的,直接在通知栏弹出的相应广告上长按就知道是哪个应用弹出的。
    支持(26反对(18回复
  1. 5
    老树随风   说道:
    还有个问题,我自启动明明都去掉了,什么大众点评、安卓市场、百度地图还是会突然自己启动,什么程序让他们启动的呢,太莫名了
    tanglei 于 2012-6-29 15:44:10 回复
    后台有service在跑。
    支持(23反对(15回复
  1. 6
    MyPacific   说道:
    最受不了这些恶意app
    支持(24反对(16回复
  1. 7
    yulinsoft   说道:
    那不是什么废弃代码,只是反编译失败的结果,用jad命令行工具反编译效果会好些。
    支持(25反对(18回复
  1. 8
    迷失在开心馆   说道:
    开放的安卓,不安全的安卓,慢慢变成360、企鹅、小米的厮杀战场,结果是既不开放也不安全
    支持(24反对(17回复
  1. 9
    吕吕爻   说道:
    金山手机卫士可以检测,360也copy了这个功能~
    支持(20反对(14回复
  1. 10
    一路向南K758   说道:
    以前刷过一个rom,结果过了几个月以后发现手机会莫名其妙自己下载软件并安装运行,特别是刚重启手机后。 奇怪:难道还有潜伏期?
    aa 于 2012-6-25 17:40:58 回复
    正常,我用刷机精灵新刷了个rom,华为n760,一开始很正常,再然后过几天,丫给我装有你短信(这个忘记确切名字了,记得差不多就这样。),我卸载了,以为是自己装了的,过几天又跑出来了,这次不能忍受,找了一下,是一个comandroidsettings.apk,在system/apk底下的,我删除了,担心没根除,装droidwall,不该联网的一律不给联,世界清静多了。
    支持(21反对(15回复

发表留言