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 又不想花钱,这免费的不久来啦. 示 ...
随机推荐
- In-System Debugger for 8051 Devices(ISD 8051单片机在线调试器)
此文档包含了最新版本的说明及最近的更新特别是对 ISD51 的说明(用户手册没有此说明) Keil Software,Inc and Keil Elektronik GmbH保留所有此文件中涉及的信息 ...
- Win7下qt5.3.1+opencv2.4.9编译环境的搭建(好多 Opencv2.4.9源码分析的博客)
到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装 ...
- 九度OJ 题目1534:数组中第K小的数字(二分解)
题目链接:点击打开链接 题目描述: 给定两个整型数组A和B.我们将A和B中的元素两两相加可以得到数组C. 譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6 ...
- Android切换页面效果的实现二:WebView+ViewPager
前言: 由于第一种切换页面的效果不能满足项目的要求,于是又找到另外一种更简单好用的方法来实现,顿时感觉,做项目开发,找到一种合适的方法能够减少很多时间,(刚开始自己弄的时候还想着自己写手势识别的方法呢 ...
- Ruby on Rails开发Web应用的基本概念
Web应用架构 C/S架构 Web应用从最初就採用C/S架构.Server负责监听client请求,提供资源,Client向server发起请求并渲染页面.两者通过TCP/IP协议栈之上的HTTP协议 ...
- 安卓activity捕获返回button关闭应用的方法
安卓activity捕获返回button关闭应用的方法 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //按下键盘 ...
- NGINX 多个域名配置
多个域名配置: 依赖于 include 这个功能会加在 这2个文件夹下的所有配置文件. 所以我们可以配置多个 conf 放置于这些文件夹中.这样就是先了多个域名配置 conf 内容大致如下 s ...
- 编写可维护的JS 04
4.变量.函数和运算符 变量 变量声明提前,单var 函数声明 先声明fn再执行 函数声明不应出现在语句块中 函数调用间隔 函数名与左括号间无间隔 立即调用函数 (fuction(){}) 严格模式 ...
- android入门——Activity(1)
结构图 mainfests文件夹下面有一个AndroidMainfest.xml文件,类似web开发中的web.xml文件负责整个项目的配置,每当我们新建一个activity,都要在这个文件中进行配置 ...
- activity的打开关闭动画
Activity的打开关闭或者说相互跳转之间可以设置动画的.默认的打开关闭直接消失或出现,比较不优美,但是有的手机Rom对这个默认做了修改,比如红米HM1,默认的就是新页面自右向左滑动出现,自左向右滑 ...