教育

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

2019-03-12 00:51:36来源:励志吧0次阅读

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

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

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

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

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

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

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

下面看看过程:

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

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

怀疑类似一些请求广告的url写在资源xml文件中,因此得解码资源文件。android的xml资源文件解码有两种方法 用AXMLPrinter2.如下图命令后,打开l文件可以看到AdnroidManifest的内容。

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

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

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

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

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

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

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

简单,长按小房子键,个在运行的就是广告软件。裸奔的兔子 于 10:16:27 回复高。。没看见 于 13:06:28 回复我也是:)逸小飞 于 22:18:07 回复我刚想回复说 ”没必要这么麻烦 长按home键 调出近使用的程序就可以了“ 结果就发现有人说了!walfred 于 9:47:00 回复这个方式是不行的,一般的广告商提供的程序都是作为后台Service执行的,而且是有一定的时长再发作的。你可以试试先运行一个带广告的程序,再运行一个正常程序,你会发现的这个问题的。

2012/6/25 10:00:42 支持(33)反对(19) 回复

以前刷过一个rom,结果过了几个月以后发现会莫名其妙自己下载软件并安装运行,特别是刚重启后。 奇怪:难道还有潜伏期?aa 于 17:40:58 回复正常,我用刷机精灵新刷了个rom,华为n760,一开始很正常,再然后过几天,丫给我装有你短信(这个忘记确切名字了,记得差不多就这样。),我卸载了,以为是自己装了的,

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

过几天又跑出来了,这次不能忍受,找了一下,是一个k,在system/apk底下的,我删除了,担心没根除,装droidwall,不该联的一律不给联,世界清静多了。

2012/6/25 10:36:47 支持(21)反对(15) 回复

汗,你反编译的源码不是真实的还原,你说的废弃代码是反编译工具生成的。。。log4nettom 于 11:07:51 回复我也是吐槽这个“废弃“代码的。Guest1 于 21:41:06 回复是啊,吐槽无力。。。3721wan 于 1:11:45 回复这个有很多工具,楼主搞复杂了tanglei 于 19:50:33 回复各位,我是原作者,之前没想到过 里面的注释代码是 因为 反编译出错产生的,让大家见笑了。

这本来就是一个交流过程,忘各位海涵。pc954 于 18:16:13 回复

2012/6/25 9:55:51 支持(23)反对(21) 回复

在android在广告上长按,点应用程序信息就可看到是哪个程序弹广告了。免费软件也要吃饭,流氓软件也就多了,弹个广告算客气的!在没必要360等软件,只要安装在google play或软件官的软件,一般安全可靠的!

2012/6/25 12:30:11 支持(16)反对(16) 回复

那如此说来,还是该文的方法比较通用了?如果还有其他的软件请介绍下。tanglei 于 15:40:04 回复只是说了一种解决问题的思路,熟悉下各种工具的使用。呵呵,解决办法就是上官方市场下应用,慎重安装app。

2012/6/26 22:31:06 支持(19)反对(20) 回复

月光微博中曾提到用AirPush来查询广告来源,不知这个应用在这里是否适用呢,如果可以的话用它来找应该是快捷的方式了吧。williamlong 于 15:25:26 回复那个AirPush能查出来的也不多,比如在豌豆荚下载“小鳄鱼爱洗澡”就有弹出广告,但用AirPush查不出来。

2012/6/25 14:49:28 支持(11)反对(16) 回复

所有可反编译出源代码并能重新打包的软件,包括.net、java的客户端,都有可能被这样注入或代替程序,是一个非常大的安全问题。实际上,针对dll,也是可以替换的;只是前者更加容易。故C++的dll要搞得复杂些,.net 的客户端进行一次性打包成一个exe文件

2012/6/25 11:15:05 支持(17)反对(23) 回复

您好,豌豆荚已经侦测到了这款山寨应用,并扫描出了其中的通知栏广告,给予用户很明显的提示。

同时,如果您在豌豆荚搜索‘水果忍者’,默认推荐在前面的是无广告的官方版。有通知栏广告的那款已经有很明显的广告标记。tutuni 于 8:32:28 回复真是后知后觉啊Java 于 16:22:35 回复现在才知道后知后觉啊 之前为什么不严把质量关?非要靠曝光

2012/6/25 15:31:19 支持(19)反对(36) 回复

(*)

验证(*)

分享到: