Android视频应用去广告学习实践
注意:本文仅仅供学习研究用途
第一步 素材搜集
腾讯视频应用:http://download.csdn.net/detail/itleaks/7991795
反汇编工具:
apktool:http://pan.baidu.com/s/1kTqRhaR
签名工具:
signapk:http://download.csdn.net/detail/itleaks/7991631
測试签名文件:
testkey.pk8, testkey.x509.pem:http://download.csdn.net/detail/itleaks/7991827
第二步 反汇编:
apktool d TencentVideo.apk
运行完后你将发现当前文件夹新增了一个
关于反汇编内容,大家还能够參考我这篇博文:http://blog.csdn.net/itleaks/article/details/30342955
第三步 广告分析
眼下Android应用广告的方式有几种
1) 小平台应用---因为小平台应用没有能力做自己的广告系统,一般它们会嵌入广告发行商的SDK来显示广告,然后和广告发行商分成。这样的广告类型屏蔽有两种:
1. 找出主流广告发行商的广告地址,让其不可訪问。将这些网址加入到/etc/hosts里就可以。
实例:127.0.0.1 xxx.com
2. 广告要显示。肯定必须得存在某个view里。而一般这个view都是在sdk定义好了的,且是固定的。所以有了另外一种方法,找出主流广告发行商广告相应的view,将其摘掉。
2) 视频类大平台应用—因为视频类应用广告投放量大且其本身属于媒体且一般都是財主烧钱类型肯定会构建自己的广告系统。这样的广告类型不太可控,仅仅有从程序本身下手。视频类程序都有一个行为---广告载入失败直接播放视频。因此屏蔽方案就是让广告载入失败。
第四步 改动
以下以腾讯视频程序为例来实践怎样让其广告载入失败:
腾讯视频载入广告的逻辑在smali/com/tencent/ads/view/AdView.smali文件中,在该文件中搜索fail就可知道改动例如以下函数能够有所作为:
method private handleAdResponse(Lcom/tencent/ads/service/AdResponse;)V
………. invoke-static {v6}, Lcom/tencent/ads/utility/SLog;->v(Ljava/lang/String;)V .line 860
array-length v6, v0
//假设v6不等于0跳转至cond_2,等于0则继续往下走。继续往下走自然就
//会运行fireFailedEvent。我们的目标就是不管怎样都让其调用fireFailedEvent
//函数。怎么办呢?非常easy,去掉这个条件推断就可以达到目的
if-nez v6, :cond_2 .line 862
new-instance v6, Lcom/tencent/ads/view/ErrorCode; const/16 v7, 0x65 const-string v8, "no ad for this vid." invoke-direct {v6, v7, v8}, Lcom/tencent/ads/view/ErrorCode;-><init>(ILjava/lang/String;)V iput-object v6, p0, Lcom/tencent/ads/view/AdView;->mErrorCode:Lcom/tencent/ads/view/ErrorCode; .line 863
invoke-direct {p0}, Lcom/tencent/ads/view/AdView;->fireFailedEvent()V
改动后:
.line 860
array-length v6, v0 .line 862
new-instance v6, Lcom/tencent/ads/view/ErrorCode; const/16 v7, 0x65 const-string v8, "no ad for this vid." invoke-direct {v6, v7, v8}, Lcom/tencent/ads/view/ErrorCode;-><init>(ILjava/lang/String;)V iput-object v6, p0, Lcom/tencent/ads/view/AdView;->mErrorCode:Lcom/tencent/ads/view/ErrorCode; .line 863
invoke-direct {p0}, Lcom/tencent/ads/view/AdView;->fireFailedEvent()V
第五步 打包签名:
apktool b TencentVideo tmp.apk
java –jar signapk.jar testkey.x509.pem testkey.pk8 tmp.apk tmp_signed.apk
第六步安装使用:
因为改动后的apk使用的是test签名,和官方的签名冲突,必须保证你的手机上的腾讯视频软件已经卸载
adb install tmp_signed.apk
附录:
完整的操作步骤例如以下:
itleaks@itleaks-a:/tmp$ apktool d TencentVideo.apk
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: /home/itleaks/apktool/framework/1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...
itleaks@itleaks-a:/tmp$ vi TencentVideo/smali/com/tencent/ads/view/AdView.smali
itleaks@itleaks-a:/tmp$ apktool b TencentVideo/ tmp.apk
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs...
I: Building apk file...
itleaks@itleaks-a:/tmp$ java –jar signapk.jar testkey.x509.pem testkey.pk8 tmp.apk tmp_signed.apk
/********************************
* 本文来自博客 “爱踢门”
* 转载请标明出处:http://blog.csdn.net/itleaks
******************************************/
Android视频应用去广告学习实践的更多相关文章
- php解析优酷网上的视频资源去广告
1.过程原理解析: 一.准备工作 所谓工欲善其事必先利其器,做好破解的准备工作会令你事半功倍. 1.首先准备一个Http抓包工具,PC上推荐Fiddler或者Postman,iOS上推荐Surge 2 ...
- 【转】Android 破解视频App去除广告功能详解及解决办法总结
Android 破解视频App去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频还要出现广告那就是打我脸,但是我 ...
- [转发]Android视频技术探索之旅:美团外卖商家端的实践
美团技术团队 2019-09-12 20:02:11 背景 2013年美团外卖成立,至今一直迅猛发展.随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸 ...
- [android]亲自破解Flappy Bird(去广告+永生)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3544785.html 听说最近Flappy Bird很火,但 ...
- 新浪微博2.5.1 for Android 去广告
新浪微博更新到2.5.1版,就开始来广告了,伤不起啊... 亲,看到没,手机屏幕就那么一小块,还要往里面塞东西,另外是一个在后台运行的AdCenter服务. 所需要用到的工具有:apktool,JD- ...
- 【html】优酷视频去广告代码
相信大家都有这样的感受,看个视频有个30秒的广告,让人非常的不爽.同样对于我们前端童鞋来说,为了吸引用户,把制作好的视频嵌入到网页中,结果因为视频有30秒的广告不但没有吸引到多少用户,反而可能会流失一 ...
- Android apk去广告
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 下载地址: [北方网通] [电信网通] [下载说明] 1 点击上面的地址,打开下载页面 ...
- 最新版WinRAR5.61去广告代码教程分享(仅供学习交流)
最新版WinRAR5.61去广告代码教程分享(仅供学习交流) 第一步:到WinRAR官网www.rarlab.com下载自己需要的版本,选择Chinese Simplified 64bit 安装即可. ...
- 【全网免费VIP观看】哔哩哔哩番剧解锁大会员-集合了优酷-爱奇艺-腾讯-芒果-乐视-ab站等全网vip视频免费破解去广告-高清普清电视观看-持续更新
哔哩哔哩番剧解锁大会员-集合了优酷-爱奇艺-腾讯-芒果-乐视-ab站等全网vip视频免费破解去广告-高清普清电视观看-持续更新 前言 突然想看电视,结果 没有VIP 又不想花钱,这免费的不久来啦. 示 ...
随机推荐
- struts2笔记01-环境搭建
1.官网下载struts2 struts-2.3.28-all.zip,这个包可谓应有尽有,以后全靠它了! 2.jar包怎么选? (1)struts-2.3.28-all\struts-2 ...
- WebService之Axis2
写在前面 本文只说Axis2的用法. 1.下载与部署 需要下载两个文件: 下载地址:http://mirrors.cnnic.cn/apache/axis/axis2/java/core/1.7.1/ ...
- stackoverflow收藏
Make a video using several .png images http://stackoverflow.com/q/13590976/5624248 Specifying and sa ...
- OpenCV学习 4:摄像头视频读写与边缘检测
原创文章,欢迎转载,转载请注明出处 想实现人脸识别,车辆识别,车牌识别.一般我们可不是读硬盘里面的视频文件的,都是直接从摄像头读取视频流然后直接识别的.所以读取摄像头的视频流这是基础...OpenCV ...
- SQL Server Primary key 、clustered index 、 unique
primary key: 1.主键不可以有空值. 2.不可以有重复行. unique : 1.可以有空行. 2.不可以有重复行. clustered index: 1.可以有重复行. 2.可以有空行. ...
- 在Windows平台下安装与配置Memcached的方法分享
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached ...
- 在cad中画一条长500mm,垂直90度的线段
视频教程奉上 方法1.点击线段按钮,鼠标指定一点,输入500,再输入<90. 方法2,点击线段按钮,鼠标指定一点,输入500,按tab,再输入90.
- Adobe Acrobat 9 Pro 简体中文正式版(免激活)
软件语言:简体中文版本性质:官方正式版(免激活,非破解) Mac & PC [SN]: 1118-4018-6583-4956-2486-7805 修改 Abcpy.ini 可实现免序列号免激 ...
- 自绘Tab控件
自绘tab按钮效果图如下: 使用例子: MyTabControl *tabControl = NULL; tabControl = new MyTabControl();tabControl-> ...
- Silverlight下的Socket通讯
http://www.cnblogs.com/chengxingliang/archive/2012/05/24/2515100.html 在Silverlight中进行通讯,只能使用4502-453 ...