注意:本文只供学习研究用途

第一步 素材搜集

腾讯视频应用: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 860array-length v6, v0
//如果v6不等于0跳转至cond_2,等于0则继续往下走,继续往下走自然就
//会执行fireFailedEvent。我们的目标就是无论如何都让其调用fireFailedEvent
//函数。怎么办呢?很简单,去掉这个条件判断即可达到目的if-nez v6, :cond_2.line 862new-instance v6, Lcom/tencent/ads/view/ErrorCode;const/16 v7, 0x65const-string v8, "no ad for this vid."invoke-direct {v6, v7, v8}, Lcom/tencent/ads/view/ErrorCode;-><init>(ILjava/lang/String;)Viput-object v6, p0, Lcom/tencent/ads/view/AdView;->mErrorCode:Lcom/tencent/ads/view/ErrorCode;.line 863invoke-direct {p0}, Lcom/tencent/ads/view/AdView;->fireFailedEvent()V

修改后:

.line 860array-length v6, v0.line 862new-instance v6, Lcom/tencent/ads/view/ErrorCode;const/16 v7, 0x65const-string v8, "no ad for this vid."invoke-direct {v6, v7, v8}, Lcom/tencent/ads/view/ErrorCode;-><init>(ILjava/lang/String;)Viput-object v6, p0, Lcom/tencent/ads/view/AdView;->mErrorCode:Lcom/tencent/ads/view/ErrorCode;.line 863invoke-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视频应用去广告学习实践相关推荐

  1. 格式工厂3.1.2绿色版(视频转换器去广告版)

    格式工厂3.1.2绿色版(视频转换器去广告版)由Black Hawk精简制作,去除图片广告.主页按钮,禁止在线更新.可以将所有类型视频转到MP4/3GP/MPG/AVI/WMV/FLV/SWF,所有类 ...

  2. 关于各种视频网站去广告

    问题: 找个几个chrome扩展,发现这些原理都是通过代理替换swf播放器,并且替换crossdomain.xml修改跨域策略. 但绝大多数都与SwitchyOmega冲突. 核心替换规则如下: yo ...

  3. 创维Android系统电视去广告,创维电视55E6200酷开系统去开机广告

    酷开系统升级到5后,开机时强制15秒左右的广告,生活已经让人无奈还要被墙颓,不爽. 用更无奈的搜索引擎搜到几个方法: 一.ROOT后编辑build.prop文件. 二.无线路由器中屏蔽相关推送网站. ...

  4. Android App游戏去广告

    Android app去除广告 准备:下载Android逆向助手,找到要去除广告的apk 1,反编译apk 2, dex转jar 3, 根据步骤1中反编译出的AndroidManifest.xml找到 ...

  5. android 电视分享,Android系统电视去广告2.1

    支持机型 目前智能电视很烦人的就是开机广告,各种广告插件,预装各种内置无法删除应用,还有定时系统更新造成电视的卡顿! 理论上支持所有安卓系统的品牌,本人测试为小米android6.0.1,MIUI T ...

  6. 驾考宝典 For Android 5.3 货车专版去广告版(学车考驾照必备软件 )

    驾考宝典专版Android 去广告版,是由烈火修改,无广告联盟,不带应用推荐和多余内容.学车考驾照,用驾考宝典更轻松!驾考宝典是驾驶员模拟考试软件,采用最新全国标准题库, 并整合各省市地区题库.随时随 ...

  7. android去广告实现原理,分析某视频软件加载方案和去广告原理

    分析某视频软件加载方案和去广告原理0x1用到的工具:AndroidKiller eclipse jd-gui Android逆向助手0x2拿到APK后首先想到的是是否有签名验证,因此用逆向助手重新签名 ...

  8. Android中静态方式破解某App实现所有视频app去除广告功能

    转:  Android中静态方式破解某App实现所有视频app去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频 ...

  9. 2021-07-07 - 使用脚本批量下载网页视频[如哔哩哔哩] - 学习/实践

    1.应用场景 主要用于使用脚本批量下载web视频,音频,图片资源,进行资源的收集下载,或者避免资源的丢失,使用命令脚本则有利于节省时间,提高效率. 比如资源可能后续不存在,或者,想二次整理资源,更好地 ...

最新文章

  1. 关于Nginx的limit_conn模块的思考
  2. lucene索引的删除和更新
  3. 训练代码_代码简介:是的,有完全免费的代码训练营
  4. “知识图谱+”系列:知识图谱+强化学习
  5. 华米科技2019全年出货量达4230万台 营收增幅超五成
  6. sqlserver 数据库角色成员身份
  7. Collections.sort的两种用法
  8. Tone-Mapped Image Quality Assessment
  9. 如何一键重装Win7系统 便捷重装Win7系统教程
  10. 计算机毕业设计Python毕业论文总结基于Python实现的仓库库存管理系统[包运行成功]
  11. 【JAVA今法修真】 第九章 兼容并包 适配模式
  12. linux下搭建ecshop教程,linux下安装ecshop,
  13. 银行家算法实现(操作系统实验)
  14. 成为指弹更好的吉他手必做的10件事
  15. CV学习笔记【1】:transforms
  16. 双十一淘宝抢购脚本,seleium模块
  17. easyui datagrid 多列排序,该如何处理[多列同时order,只针对某一列order]
  18. vue 视频 时间进度条组件
  19. Freeswitch总结大全
  20. coreldraw橙子怎么画_智慧职教云课堂APPcoreldraw服装款式图绘画(安徽职业技术学院)章节测验答案...

热门文章

  1. 双系统 Win10 Ubuntu 启动项修复
  2. android判断主线程_惊天秘密!从Thread开始,揭露Android线程通讯的诡计和主线程的阴谋...
  3. WM6.1中文系统实现日文显示和输入
  4. [CF1100D]Dasha and Chess
  5. 排班源码,排班软件源码,排班系统源码,java,php,asp,asp.net,c#,python通用
  6. html字体高度怎么调,当在CSS中设置字体大小时,字母的真实高度是多少?
  7. 使用Spring Data REST和Java 8构建安全的REST API
  8. 外虚内实是什么意思_中医讲的虚与实是什么意思
  9. php 镜像程序,PHP域名镜像克隆采集程序源码 v2016
  10. 用matlab做文字水印,3 一个用MATLAB编写的数字水印算法实例