吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 60215|回复: 523

[Android 原创] 原创破解:电视盒子 云视听极光前庭广告的手工去除

    [复制链接]
发表于 2018-1-10 10:36 | 显示全部楼层
本帖最后由 冥界3大法王 于 2018-2-1 21:20 编辑

自从给咱家买来了网络电视机顶盒,楼主爱上了安卓逆向,把吾爱破解这方面和网上所有能找到的资料都弄回家学习和折腾。
《云视听极光》是一个楼主感觉不错的电视盒子app


为了破解它,楼主费了不少心思:
1.这玩意必须得电视盒子上安装才能正常的播放出画面来,盒子没有root再有就算。。。MT管理器,apk编辑器操作起来也不是很方便,得在电脑上手术再传过去,来回很麻烦的,虽然可以使用沙发软件,那还是很麻烦的
2.换过了多个安卓模拟器,始终不能播放时看到画面
3.昨天终于找到了网易安卓模拟器可以动手了


这软件第一次启动时就会出来这个东西得点一次 才能过
也就是间接的告诉我们没事它会自己升级新版本 ~~  当然你可以跳过,但是!这样操作并不完美 !
后面我们会想办法把这个也解决掉 !




接下来 进到主界面
图中可以看到当前的包名是 com.ktcp.video
当前的active 是 com.ktcp.video.QQLiveTV
当我们关闭程序,第2次启动时,我们的 前庭广告 (倒计时 5秒)就出来了!
这个就是我们今天要操作的对象了 ~~


接下来,又会出现这个鬼东西 ~~而且这个东西如果你不处理的话,以后没事就会出来烦人,这不是欺负老年人吗?!
可见!这个升级检测的部分以后一定要彻底弄干净 ~~


包名:com.ktcp.video
与升级检测有关的:com.ktcp.video.activity.ForceUpgradeActivity
与广告相关的(同时也是入口):com.ktcp.video.activity.MainActivity

1)我们看看有没有壳?


2)接下来,我们用Android killer对它进行反编译

之后,我们查看java源码,它会出现下面的这个找不到

在修改过程中,多备份Android Killer相关的文件夹(这样会节约不少时间)

我们再用GDA看看


一般老江湖都会说先看看com.ktcp.video.activity.MainActivity的OnCreate方法
相关代码
[Asm] 纯文本查看 复制代码
2c68e8-000098: public MainActivity-><init>()V

[method@5e8c]:<init>

|  .regsize     : [4]  
|  .insnsSize   : [68] 16-bit
|  registers:   v0  v1  v2  v3  

2c68f8: 1201                |0000: const/4 v1, #int 0 // #0
2c68fa: 1202                |0001: const/4 v2, #int 0 // #0
2c68fc: 701032000300        |0002: invoke-direct {v3}, method@0032 // Landroid/app/Activity;-><init>()V
2c6902: 5c327a34            |0005: iput-boolean v2, v3, field@347a // Lcom/ktcp/video/activity/MainActivity;->b:Z
2c6906: 5c327e34            |0007: iput-boolean v2, v3, field@347e // Lcom/ktcp/video/activity/MainActivity;->c:Z
2c690a: 5c328034            |0009: iput-boolean v2, v3, field@3480 // Lcom/ktcp/video/activity/MainActivity;->d:Z
2c690e: 5c328134            |000b: iput-boolean v2, v3, field@3481 // Lcom/ktcp/video/activity/MainActivity;->e:Z
2c6912: 5c328234            |000d: iput-boolean v2, v3, field@3482 // Lcom/ktcp/video/activity/MainActivity;->f:Z
2c6916: 5c328334            |000f: iput-boolean v2, v3, field@3483 // Lcom/ktcp/video/activity/MainActivity;->g:Z
2c691a: 5c328434            |0011: iput-boolean v2, v3, field@3484 // Lcom/ktcp/video/activity/MainActivity;->h:Z
2c691e: 5b317134            |0013: iput-object v1, v3, field@3471 // Lcom/ktcp/video/activity/MainActivity;->a:Lcom/tencent/qqlivetv/model/advertisement/TVADData;
2c6922: 5b317034            |0015: iput-object v1, v3, field@3470 // Lcom/ktcp/video/activity/MainActivity;->a:Lcom/tencent/qqlive/core/model/SplashCover;
2c6926: 1b0000000000        |0017: const-string/jumbo v0, string@00000000 // ""
2c692c: 5b307334            |001a: iput-object v0, v3, field@3473 // Lcom/ktcp/video/activity/MainActivity;->a:Ljava/lang/String;
2c6930: 5b316f34            |001c: iput-object v1, v3, field@346f // Lcom/ktcp/video/activity/MainActivity;->a:Lcom/ktcp/video/activity/MainActivity$a;
2c6934: 16008813            |001e: const-wide/16 v0, #int 5000 // #1388
2c6938: 5a306934            |0020: iput-wide v0, v3, field@3469 // Lcom/ktcp/video/activity/MainActivity;->a:J
2c693c: 5c327434            |0022: iput-boolean v2, v3, field@3474 // Lcom/ktcp/video/activity/MainActivity;->a:Z
2c6940: 2200d30c            |0024: new-instance v0, class@0cd3 // Lcom/ktcp/video/activity/MainActivity$1;
2c6944: 7020715e3000        |0026: invoke-direct {v0, v3}, method@5e71 // Lcom/ktcp/video/activity/MainActivity$1;-><init>(Lcom/ktcp/video/activity/MainActivity;)V
2c694a: 5b307234            |0029: iput-object v0, v3, field@3472 // Lcom/ktcp/video/activity/MainActivity;->a:Ljava/lang/Runnable;
2c694e: 2200d40c            |002b: new-instance v0, class@0cd4 // Lcom/ktcp/video/activity/MainActivity$2;
2c6952: 7020735e3000        |002d: invoke-direct {v0, v3}, method@5e73 // Lcom/ktcp/video/activity/MainActivity$2;-><init>(Lcom/ktcp/video/activity/MainActivity;)V
2c6958: 5b307834            |0030: iput-object v0, v3, field@3478 // Lcom/ktcp/video/activity/MainActivity;->b:Ljava/lang/Runnable;
2c695c: 2200d80c            |0032: new-instance v0, class@0cd8 // Lcom/ktcp/video/activity/MainActivity$5;
2c6960: 70207b5e3000        |0034: invoke-direct {v0, v3}, method@5e7b // Lcom/ktcp/video/activity/MainActivity$5;-><init>(Lcom/ktcp/video/activity/MainActivity;)V
2c6966: 5b307c34            |0037: iput-object v0, v3, field@347c // Lcom/ktcp/video/activity/MainActivity;->c:Ljava/lang/Runnable;
2c696a: 2200d90c            |0039: new-instance v0, class@0cd9 // Lcom/ktcp/video/activity/MainActivity$6;
2c696e: 70207d5e3000        |003b: invoke-direct {v0, v3}, method@5e7d // Lcom/ktcp/video/activity/MainActivity$6;-><init>(Lcom/ktcp/video/activity/MainActivity;)V
2c6974: 5b306a34            |003e: iput-object v0, v3, field@346a // Lcom/ktcp/video/activity/MainActivity;->a:Landroid/content/BroadcastReceiver;
2c6978: 1210                |0040: const/4 v0, #int 1 // #1
2c697a: 5c308534            |0041: iput-boolean v0, v3, field@3485 // Lcom/ktcp/video/activity/MainActivity;->i:Z
2c697e: 0e00                |0043: return-void

      catches       : (none)




我们再对比着看看看



比较 像广告的有图中的 5个 ,我们先记录下来,标上记号 ~~



它这里的广告  分为两种:
A 打开app时的 倒计时  5秒 (貌似是 5秒, 这个肉眼每次看到的是 5秒,千万不要相信我说的话,也有可能是6秒。。。
B  播放视频时 会出来的 播放器上面的广告 (那个时间更长 )



接着,我们用开发者助手,捕获前 正则设置下
  
当小广告出来时,我们抓到了这个



所以,我们搜索 tencent_ad


我们搜索到一个文件,两行里边有调用



我们再调用方法
貌似是配置文件



竟然告诉我们这个

我们用@A_new大神告诉我们的办法GDA看看


那就搜索这个吧。找到 三条



按下F5  切换 看看











好了,我们看的实在是差不多了,该到了实际动手修改的时候了~~



为了看java源码:
GDA搜索方法:configAd
48e59c-00003c: static public AdLoadManager->configAd(Landroid/content/Context;Z)V
4dd110-00019a: static public TVUtils      ->configAd(Landroid/content/Context;)V
48e600-000040: static public AdLoadManager->waitConfigAdFinished()V
通过分析可知: 上面两条来自于Landroid/content/Context 只是返回的参数不同




[Asm] 纯文本查看 复制代码
.method public static configAd(Landroid/content/Context;)V
    .locals 6

    .prologue
    const/4 v5, 0x1

    .line 434
    new-instance v0, Lcom/tencent/qqlivetv/utils/TVUtils$5;

    invoke-direct {v0}, Lcom/tencent/qqlivetv/utils/TVUtils$5;-><init>()V

    invoke-static {v0}, Lcom/tencent/tads/main/SLog;->setOnLogListener(Lcom/tencent/tads/main/SLog$OnLogListener;)V
 #这个就是个方法调用一个广告监听
    .line 473
    invoke-static {}, Lcom/tencent/tads/main/AdManager;->getAdConfig()Lcom/tencent/tads/main/IAdConfig;
#得到广告的配置
    move-result-object v0

    .line 475
    invoke-static {}, Lcom/ktcp/utils/helper/TvBaseHelper;->getPt()Ljava/lang/String;

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/tencent/tads/main/IAdConfig;->setAppChannel(Ljava/lang/String;)V
  #这里好像就是设置 程序的通道
    .line 480
#接下这里是调用 插件升级程序的调用
    invoke-static {}, Lcom/tencent/qqlivetv/plugincenter/upgrade/PluginUpgradeManager;->getInstance()Lcom/tencent/qqlivetv/plugincenter/upgrade/PluginUpgradeManager;

    move-result-object v1

    const-string/jumbo v2, "mediaplayer"

    invoke-virtual {v1, v2}, Lcom/tencent/qqlivetv/plugincenter/upgrade/PluginUpgradeManager;->getPluginItem(Ljava/lang/String;)Lcom/tencent/qqlivetv/plugincenter/data/PluginItem;

    move-result-object v1

    .line 481
    if-eqz v1, :cond_0

    invoke-virtual {v1}, Lcom/tencent/qqlivetv/plugincenter/data/PluginItem;->getCurrentPluginDir()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v2

    if-nez v2, :cond_0

    .line 483
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1}, Lcom/tencent/qqlivetv/plugincenter/data/PluginItem;->getCurrentPluginDir()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string/jumbo v2, "assets"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    .line 484
    new-instance v2, Ljava/io/File;

    invoke-direct {v2, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    .line 485
    if-eqz v2, :cond_1

    invoke-virtual {v2}, Ljava/io/File;->isDirectory()Z

    move-result v2

    if-eqz v2, :cond_1

    .line 487
    const-string/jumbo v2, "TVUTILS"

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v4, "TENCENT_AD_ ad use assetsPath:"

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Lcom/ktcp/utils/log/TVCommonLog;->i(Ljava/lang/String;Ljava/lang/String;)I

    .line 488
    invoke-interface {v0, v1}, Lcom/tencent/tads/main/IAdConfig;->setAssetsPath(Ljava/lang/String;)V

    .line 496
    :cond_0
    :goto_0
    invoke-interface {v0, v5}, Lcom/tencent/tads/main/IAdConfig;->setTestMode(Z)V

    .line 500
    const/4 v1, 0x0

    const/4 v2, 0x0

    invoke-interface {v0, v1, v2}, Lcom/tencent/tads/main/IAdConfig;->setInterceptList(Ljava/util/List;Z)V

    .line 502
    invoke-interface {v0, v5}, Lcom/tencent/tads/main/IAdConfig;->setOpenLandingPageWay(I)V

    .line 504
    invoke-interface {v0, v5}, Lcom/tencent/tads/main/IAdConfig;->setUseMma(Z)V

    .line 507
    invoke-interface {v0, v5}, Lcom/tencent/tads/main/IAdConfig;->setShowAdLog(Z)V

    .line 509
    new-instance v1, Lcom/tencent/qqlivetv/model/advertisement/TADServiceProvider;

    invoke-direct {v1}, Lcom/tencent/qqlivetv/model/advertisement/TADServiceProvider;-><init>()V

    invoke-interface {v0, v1}, Lcom/tencent/tads/main/IAdConfig;->setAdServiceHandler(Lcom/tencent/tads/main/AdServiceHandler;)V

    .line 511
    invoke-interface {v0}, Lcom/tencent/tads/main/IAdConfig;->init()V

    .line 514
    invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v1

    const-string/jumbo v2, "webview_bg"

    .line 515
    invoke-static {p0, v2}, Lcom/ktcp/utils/helper/TvBaseHelper;->getColorResIDByName(Landroid/content/Context;Ljava/lang/String;)I

    move-result v2

    invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getColor(I)I

    move-result v1

    .line 514
    invoke-interface {v0, v1}, Lcom/tencent/tads/main/IAdConfig;->setLandingPageBackgroundColor(I)V

    .line 517
    invoke-static {}, Lcom/tencent/tads/main/AdManager;->getInstance()Lcom/tencent/tads/main/AdManager;

    move-result-object v0

    const-string/jumbo v1, ""

    invoke-virtual {v0, p0, v1}, Lcom/tencent/tads/main/AdManager;->start(Landroid/content/Context;Ljava/lang/String;)Z

    .line 518
    const-string/jumbo v0, "TVUTILS"

    const-string/jumbo v1, "app configAd end success"

    invoke-static {v0, v1}, Lcom/ktcp/utils/log/TVCommonLog;->i(Ljava/lang/String;Ljava/lang/String;)I

    .line 521
    return-void

    .line 492
    :cond_1
    const-string/jumbo v1, "TVUTILS"

    const-string/jumbo v2, "TENCENT_AD_ use application assets"

    invoke-static {v1, v2}, Lcom/ktcp/utils/log/TVCommonLog;->i(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_0
.end method

接下来,我们解决升级检测的问题
打开这个文件  J:\BaiduYunDownload\吾爱破解工具包2.0\吾爱破解工具包\Tools\AndroidTools\Androidkiller_v1.3.1\projects\修改好的 云视听极光\Project\smali\com\ktcp\video\activity\ForceUpgradeActivity.smali
[Asm] 纯文本查看 复制代码
我们修改成下面这样

.method protected onCreate(Landroid/os/Bundle;)V
    .locals 4

    .prologue
    const/4 v3, 0x0

    .line 85
    invoke-super {p0, p1}, Lcom/ktcp/video/activity/BaseActivity;->onCreate(Landroid/os/Bundle;)V
    


    invoke-static {p0, v0}, Lcom/ktcp/utils/ui/ResHelper;->getLayoutResIDByName(Landroid/content/Context;Ljava/lang/String;)I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->setContentView(I)V

    .line 87
    invoke-virtual {p0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->getIntent()Landroid/content/Intent;

    move-result-object v0

    const-string/jumbo v1, "extra_force"

    invoke-virtual {v0, v1, v3}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I

    move-result v0


    .line 88
    invoke-virtual {p0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->getIntent()Landroid/content/Intent;

    move-result-object v0





    .line 90
   return-void

    .line 91
    const/4 v0, 0x1

    iput v0, p0, Lcom/ktcp/video/activity/ForceUpgradeActivity;->f:I

    .line 97
    :cond_0
    :goto_0
    invoke-direct {p0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->a()V

    .line 98
    invoke-direct {p0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->c()V

    .line 99
    invoke-direct {p0}, Lcom/ktcp/video/activity/ForceUpgradeActivity;->b()V

    .line 100
    return-void

    .line 92
    :cond_1
    iget v0, p0, Lcom/ktcp/video/activity/ForceUpgradeActivity;->e:I

    const/4 v1, 0x3

    if-eq v0, v1, :cond_0

    .line 93
    invoke-static {}, Lcom/tencent/qqlivetv/upgrade/UpgradeManager;->getInstance()Lcom/tencent/qqlivetv/upgrade/UpgradeManager;

    move-result-object v0

    invoke-virtual {v0, v3}, Lcom/tencent/qqlivetv/upgrade/UpgradeManager;->checkApkDirAvailable(Z)Z

    move-result v0

    if-nez v0, :cond_0

    .line 94
    const/4 v0, 0x2

    iput v0, p0, Lcom/ktcp/video/activity/ForceUpgradeActivity;->f:I

    goto :goto_0
.end method

应该还有更好的改法,楼主也是才学,很多东西不成章法,还望 @A-new @fisher @smile1110  等同学指点

这样升级检测的提示果然没再出来,修改方法太过暴力,极易引发程序的自残崩溃行为


成品1代在2楼(去启动广告
成品2代在第4页(。。。。。+去升级检测)
更为稳妥的改法:

#或在这里!
    goto :cond_0
    move-result-object v0

    const-string/jumbo v1, "splash_layout"

    invoke-static {v0, v1}, Lcom/ktcp/utils/ui/ResHelper;->getIdResIDByName(Landroid/content/Context;Ljava/lang/String;)I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/ktcp/video/activity/MainActivity;->findViewById(I)Landroid/view/View;

    move-result-object v0

    check-cast v0, Landroid/view/ViewStub;

    iput-object v0, p0, Lcom/ktcp/video/activity/MainActivity;->c:Landroid/view/ViewStub;

    .line 555
    iget-boolean v0, p0, Lcom/ktcp/video/activity/MainActivity;->f:Z

    if-nez v0, :cond_0

    .line 557
    iget-object v0, p0, Lcom/ktcp/video/activity/MainActivity;->c:Landroid/view/ViewStub;

    invoke-virtual {v0}, Landroid/view/ViewStub;->inflate()Landroid/view/View;

    move-result-object v0

    iput-object v0, p0, Lcom/ktcp/video/activity/MainActivity;->b:Landroid/view/View;

    .line 558
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/ktcp/video/activity/MainActivity;->f:Z

    .line 560
    :cond_0
    invoke-virtual {p0}, Lcom/ktcp/video/activity/MainActivity;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    const-string/jumbo v1, "loading_bar"

    invoke-static {v0, v1}, Lcom/ktcp/utils/ui/ResHelper;->getIdResIDByName(Landroid/content/Context;Ljava/lang/String;)I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/ktcp/video/activity/MainActivity;->findViewById(I)Landroid/view/View;

    move-result-object v0

    check-cast v0, Landroid/view/ViewStub;

    iput-object v0, p0, Lcom/ktcp/video/activity/MainActivity;->d:Landroid/view/ViewStub;

    .line 561
    invoke-virtual {p0}, Lcom/ktcp/video/activity/MainActivity;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    const-string/jumbo v1, "logo"

    invoke-static {v0, v1}, Lcom/ktcp/utils/ui/ResHelper;->getIdResIDByName(Landroid/content/Context;Ljava/lang/String;)I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/ktcp/video/activity/MainActivity;->findViewById(I)Landroid/view/View;

    move-result-object v0

    check-cast v0, Landroid/view/ViewStub;

    iput-object v0, p0, Lcom/ktcp/video/activity/MainActivity;->b:Landroid/view/ViewStub;

    .line 563
    invoke-static {}, Lcom/tencent/qqlivetv/model/splash/SplashUtils;->getInstance()Lcom/tencent/qqlivetv/model/splash/SplashUtils;

    move-result-object v0

    invoke-virtual {v0}, Lcom/tencent/qqlivetv/model/splash/SplashUtils;->getAppStopServiceFlag()Z

    move-result v0

    iput-boolean v0, p0, Lcom/ktcp/video/activity/MainActivity;->b:Z

    .line 564
    const-string/jumbo v0, "MainActivity"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v2, "mIsAppStopService = "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget-boolean v2, p0, Lcom/ktcp/video/activity/MainActivity;->b:Z

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    .line 565
    iget-boolean v0, p0, Lcom/ktcp/video/activity/MainActivity;->b:Z

    if-eqz v0, :cond_1

    .line 567
    invoke-virtual {p0}, Lcom/ktcp/video/activity/MainActivity;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    invoke-static {v0}, Lcom/tencent/qqlivetv/start/AppStartFactory;->getAppStartManager(Landroid/content/Context;)Lcom/tencent/qqlivetv/start/IAppStart;

    move-result-object v0

    const/4 v1, 0x2

    invoke-interface {v0, v1}, Lcom/tencent/qqlivetv/start/IAppStart;->setAppInitStatuts(I)V

    .line 568
    invoke-direct {p0}, Lcom/ktcp/video/activity/MainActivity;->h()V

    .line 576
    :goto_0
    invoke-static {}, Lcom/tencent/qqlivetv/model/provider/OperatorHandlerInstance;->getInstance()Landroid/os/Handler;

    move-result-object v0

    new-instance v1, Lcom/ktcp/video/activity/MainActivity$3;

    invoke-direct {v1, p0}, Lcom/ktcp/video/activity/MainActivity$3;-><init>(Lcom/ktcp/video/activity/MainActivity;)V

    invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    .line 584
    return-void

    .line 572
    :cond_1
    invoke-static {}, Lcom/tencent/qqlivetv/start/AdLoadManager;->waitConfigAdFinished()V

    .line 573
    invoke-direct {p0}, Lcom/ktcp/video/activity/MainActivity;->g()V

    goto :goto_0
.end method

@风起回忆怎么潜,还希望把你的修改方法分享出来,大家一起进步。


.method public static setBackgroundDelayTimestamp(J)V
    .locals 4

    const-wide/16 v0, 0x0

    cmp-long v0, p0, v0

    if-lez v0, :cond_0

    const-wide/16 v0, 0x2710

    cmp-long v0, p0, v0

    if-gez v0, :cond_0

    sput-wide p0, Lcom/tencent/stat/StatConfig;->ac:J

    :goto_0
    return-void

    :cond_0
    const-string/jumbo v0, "MtaSDK"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v2, "setBackgroundDelayTimestamp falied, timestamp:" #我们看这里,设置背景延迟时间失败

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string/jumbo v2, " is invalid."

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_0
.end method

使用一个叫 VolleyLog的东东,随时检查广告的宽 高 是否正常,如果不正常就抛出个异常,所以修改的版本经常会发生崩溃
这些我也是从日志猫里抓到后,搜索后知道的。
Snap1.png Snap2.png 全部弄死!
[Asm] 纯文本查看 复制代码
const-string/jumbo v1, ".qq.com"

    aput-object v1, v0, v2

    const/4 v1, 0x1

    const-string/jumbo v2, ".qlogo.cn"

    aput-object v2, v0, v1

    const/4 v1, 0x2

    const-string/jumbo v2, ".gtimg.cn"

    aput-object v2, v0, v1

    const/4 v1, 0x3

    const-string/jumbo v2, ".qpic.cn"

    aput-object v2, v0, v1

    const/4 v1, 0x4

    const-string/jumbo v2, ".gtimg.com"

    aput-object v2, v0, v1

    const/4 v1, 0x5

    const-string/jumbo v2, ".gitv.tv"

    aput-object v2, v0, v1

    const/4 v1, 0x6

    const-string/jumbo v2, ".ottcn.com"

    aput-object v2, v0, v1

    const/4 v1, 0x7

    const-string/jumbo v2, ".cibntv.net"

    aput-object v2, v0, v1

    const/16 v1, 0x8

    const-string/jumbo v2, ".atianqi.com"

    aput-object v2, v0, v1

    const/16 v1, 0x9

    const-string/jumbo v2, "irs01.com"

    aput-object v2, v0, v1

    const/16 v1, 0xa

    const-string/jumbo v2, "miaozhen.com"  #经查看这是一家广告平台!

    aput-object v2, v0, v1

    const/16 v1, 0xb

    const-string/jumbo v2, "tencentmind.com"

    aput-object v2, v0, v1

    const/16 v1, 0xc

    const-string/jumbo v2, "vqq.admaster.com.cn"     #靠,一家数据解决机构!老子看个电视容易么?

    aput-object v2, v0, v1

    const/16 v1, 0xd

    const-string/jumbo v2, "reachmax.cn"

    aput-object v2, v0, v1



接下来,解决播放视频时的长时间小广告问题(第三代解决这个问题:这个问题不把INI文件做掉也就无法完成修改广告源的问题


编辑


如果 你看到了以下几个文件

那么,我要跟你们说的是 不是 不是 全不是,而是在下面的 配置ini文件中。

全扔在了 一个加密的 config.INI中了,那如何解密出来呢?
[Asm] 纯文本查看 复制代码
10KTCFG0000000006520v+0個邻{?鑘.鷖牲浒'?躍xT???緤\庘?j賓藢x<枭c減??跭Jlf掶?M愂4И焋a刈?鲌辩l:有?w鋒???躍xT?╚鞬穂?j賓藢x?趓珞5O??3#i瑅?熽颫笀???tP?籭頝^A\?.憺#鸉x塄`礋Ni躪仂?        O-"?膭駻)▋??劗Q災徝鎱G砰`6?C腤l扬Uy岗b?G炋M)]啾]}tw?伥忂=?繒眇YXK秦彌'奥*佀之22L?y猍'朑雱ゎ蘯6剼q9S185?-柠┢e悳        诸
燅}譨學ㄇ趮戤
赵z觰拤~?.ㄖiT+忕`Q谿帧檑?R螻$?l}N3<9?昡j礐鱫A??.O欎?5z佨z摱xR??z?z鰘徾o;??駅+O}撜鑪={瓁f瓶熠資祙t#yq韲C睯铍4覀屠浇摘#猼钉n読wV?闽'yXCSJ3I噔鋛Q?婃aか?圌鳛*冒梱?qM悞?hI?0薼(琜潲咹J?鸉.t?毸A???Es?m拖V?浆n績2羥齵?DH_梭~-x持溱孈*U{|?矢稾藑f?彏狲廈5})c        蛶#鈈[芭卨瞆L-?唙潞光\?t|'"*%?!銷7眚標虳{? }~老頤?U鉐抑蚰l?mO7>陃*Q        Zfp泞S闄&X?禌錿釙Y杯??d跟蕝h?惋⺶?<d绪嵬?贊晾仾        ?鴥bE鉪lw瓨%枑鍼衊\??p恜泞S闄sm???錄蕾??墠?aY鑤SA蟰G谑鉛?A晑紫L?餲T扭埿h汍鐻?G{緫|枚il?蘕蜌じIIg暞?~?摊,∏齸l裿%@7k楿隋?@{E(?蛆累`茘#y骈j俐ㄌG牌aFj艩妅61}_Hnn枧鰾曇_菶謄~℃3=灸?鴍_揦?h蒍\喫℃3=灸?簺甖鞲濯掘??茰桫檌Jz?瀠笲PZ*?氐%豘"@J?3諑然?鮝劾齃箚诵?M姓雜>慑Wp琷p??I鼪耬镼?U犰腳悻 |匍値\蹩%8]<|?鰓b?岚唈K/?1Q6駦+5">-ec1/?浿'v羯{屓M?绚儖牜淜勓wP螤?嚻        :_,誙窟挟簘D3;?鏘悥?z2-6坔е?A懲?璙鰦戃巹蔸肋v'?羚蜘覹覤k嶡黴摈磎鰈58?鉐栋0h注wBho緅O?X?砨b陪俻蓪珦Yì謖丰y劦F]W漗鑛纟泙<rx曇_菶謄~l4N迈賀茮馃錞喒rC"茓﨧O[胺炥???Q??鏒u?谝X抠芖:~劯畦 栝|W?VPQ選X*?氐%豘"@J?3諑然??榼i/?劂勨璫?;QbΒ?f叛呑緝K????迆%0抟>??QQ燚^殃{鴔<5擷b幗0藯戛鸙?,d~'???f彚?
炊1稄肢唡Fh=sW浜类Fゎw?悓品?躘J?n騷;澚?緝K???Q驔        噖*﹕6$??抟>??Q躨F T2俛?Z&帇Kwc寡jwW?]Rp圌w崞罆寲踏铟q磑f?@"F伝曇_菶謄~傈{EtG槄 撃淯妀Lk0?C愐哠幧Q?rQj烸m??娪棥?莾?炊裪d燻>蝍心滑@
?J灲熵%瀛l?鶊機8Ag螲b皰羬?妛饈呕??h?裋蘋畲LF兿dOX?4?豴弢緫
HC厠嗟Oc+阢\C?祻羳z)#b?N草W?]Rp圌w崞罆寲DC0㏒"?頀鎻q?_?隊"=?g謠CE7K???|<V莝
H*;o|?嚘??S姩?G?t嵳??凃ML㈨=贄??曔迡撯證[鬎?н?;訤HbpkJ总v隻賞;W婙+榏}稢i诐?@+Y??Q蘈y0霩=5甴5g4.?l玽f懒?輌?^2龔F庩漺嶵糠约飿+fJ'o,?败雿T0/
燪燚^殃{鴔<5擷b幗0藯戛约飿+fJ
圷s蕸麛璙鰦戃巹茈峊0/
犥iF T2俛?Z&帇珦G?V??棠樌湢y?瘬祧↗fU傰肢?E豝??o,??嫃蠆圯Q燚^殃{鴔<5擷b幗0藯戛lH3悾凧?嚬<V莝
H*;X鉺M:v仫寬t?&t嵳??凃ML㈨=?屄畬妻狌飿$%粛艷F竱"|
i[S{?亳洟秬m褀*(1_?V1k?VI?i?鞋餓碉哘㎞?1們[u極讫份县?幁亜舔3rZ"@J?3T?r駦??里綣?崮X??;QbΒ?f叛呑ciE茖?狕fF捶Sa蔉CsL?V?剥纕鉡"祁Y賽瞙瘑鞱?[鑏輡x洫?诡6?        R揈凵儢勓贯淗r逧?v佯8牝 ?r\攏?p侫?赒s蕹?-漏?昕"-7??猎ZhQ燚^殃{鴔<5擷b幗0藯戛V1k?VI?iy]硾解?_,誙窟挟簘D3;?鏘悥?z8?K?鏙2Ж呖=,? 盩芡h\淀??a痓'?2韐N?繼A熉?:?\?研uゃ?0?睄)u        ?酘?U,??e?鵆鱆穯+圭粫崱H#氵莝?
y+C<v静羊
濘稉?.绪婑$桊ˇ{[虝w乀?覦?B?蜍1?蓖巸惍g瑘騍x        cU?夤*娬庈)??:??]&e梕f麃?鍽Z娼症+Z?O
E?邏~mCiK攄I(kㄆ#眤骨礍?毿w愣屭$0Jn窃卂黊+!僴O?P-﨡阶?溹*瘋葘供漌
5`棔7%@筁?Y鑥/摁]?鞁aw桑??Jru淿(鎪?gp驁顏襊??KH(saw桑??Jru淿(鎪?gR迈НQ錃H皂籄ek鞃鳆TUU??U?朌?扢粢a晒芥Wr祅?6E欻皂籄ek鞃鳆TUU??U?朌?扢妠?H        T'?0?h7縫]|?i勻ORZY????~?I?yd鉘P綔羽箐WV^,?♂P骏^捭遗/绛戃d偲?X塃??叡At宝~窼i?m隅2俊M拤?軀u曩<咈M?TTk鷀tmZJh繐M幡D瞑]弨;?=@灏X崇蹵x?窃a徚?娬簼赒?
?鼇蒮臫        獣v蝭MT藱,歹        [?j蒈獌敮hgM唁?U5?Jv硟?<j?[:?6v0I楱vO瑈鉧Ne牺{颣.+MD氝?
?鼇蒮臫        藣厥撝澮ZU羺;晫_?螠75耓S#梼鎮-萾?贺罽盨}禾鍧o氊I匍T屬揗幡D瞑]?取亡z}cX!v7)?砝)埳寑\譡?x?鉂$?7no拳"%獷唾 粸q凷0u>畊侮庥?燬淤72脚耍?顭竼鄝 ?(]1醔惏$?徭凝w0逤奍鄤鵭v噃?艷?嘍塿骷Z湦@?鹽貃Qj辀媰肤蒵v噃?蒲aV?艞:?1?鳞??U乬釡Z@鸮暛&S?寯茽8趲釾燨&_糸?:亅>魈]ql!?=y谵b|?哵緹?8v擣堑8~3娍?篻厽颭?兩u?\y)?$Z"旙犀檪a,蚭e鄪?E柎?,$
P(粻嬺威~迏嵽踿?U乬楮e普{沖U坘6a四3?5?>惵]摯鰭橬覭倔窨?穖馞篜?岘鰎!濋
茓屑弱尌玶啵?侓煿r壅?        謰?O
E?遧_疅貸?B僲:飗竾縬女贜q?NRq?f\伮?4寶J搞a?鰘薗埠h?[?髷"RP呚絴-咍珞鈧〝z|?蟺歀侳?,NCm`;日霹⑾贮桸泳爱@绳鬓3嶵Q箩[%/Xc<濔?[嚳q女贜-"篐?7N&?|~,{D?藢轰&镖打?讂鑥庐蛖#ko鴰?礖縬U檄澚纴??鴥bE鉪lw剔\崱稒廾鋭婶?q鄧UB嚳q女贜-"篐?7N&?|~覜觟玷:_,誙窟挟簘D3;?鏘悥?z%粃铯?$/,u牢蔤N幩?5=~英翷n-???i<葁c???t嵳??凃ML㈨=瓖0        蕕z2?0烃侚葎n%8?團崴?扔=2bH諉&Eu?胞槴賆豊J=?B!Y嘭
?噩旅觅JQC,?a唸4圉苹㈠H ?尶c.w?]%=?P5?獶锛觉恈 廒潙5)罱!?L鐾塴a諃跛侹rr璻?a雥蟨桺茦g覙滑汏倍蹈?e        
樂澘鼊 ?\S瑺竰銐薤)aC血玔HFUu硇鹌犅kx偨8?;?騭6?洽 鰠 O
E?遧_疅貸絥?徥菰7?;饎+錒8z?/?炸8哭 3诈?Q盅詆零stb祜█r鋓盳`[齸Xy噝?bm鐖燰rH6偏?9担?棻rK%塊匎?G髠)g]媘?蓴r袜?uB`-s惸f蚮8黁扯@rr叵谝X抠笵LCZ霏竑蚮8黁扯??欂羢>慑Wp!钓畿}縁m?yv}}f蚮8黁扯a?趇螦D嫪砉dr餠5屼枸
?媱<=_l$旇        +阢\C?祻羳z)#b鈴汊橧{t?R巿Su幖伫M
\弒m???錄蕾??壎T&?韷髊陭乖+翸鰣?x廾↙?-鰈X{纴si"榓婔?n爂*?紳?r&X?禌錿釙Y杯/^稭w R'俒
W獒忇'Q&嚹幹U鉐抑虮-f鄤f/D?聤T??紳?rsm???錄蕾??塻管w?〩氝旯畷稭s鼢鶆?W?qFD灞}?h0頊惨%uz6?6儳颊啟橡I?E覌 鍨C,锉p賠?xJ?頄邬宄0
j?L抗吸        宏哦楘 蹾蕉l?鷫骶        顕颳?旔?鑁眥?6?41赦?KB?x簜^?cv?墐~?z?n鬟I蛔??示吻C0╮蝷纤z姦嚧讬緞l?=呉峞毭??蠕X?踯<0嘋cr4|'抿c逝2>\鷱敘4罯5@芉`?蹫ó鲺圂u-?@?Y崚0凴MK鱨iG诼J篆?}笶爷u鱉侐#|*鍮弟g醒┝jy齁{宛0檜聵漶5?曼=        @晏qO#鴠a秱?;}8y痸k识糖f倖I庉霛 ,w栋诅吘介鐄c叻歯?璩?hE)倖I庉霛 $'?CH&[C嚣??婰潪*?E?&铑O誈?|&??鏒u?谝X抠Fm?yv}}c懰偮缫dv玏Zd:n_憶D28S樹}樯?睍弿j@逽??qH??睉箨偣衪jO?#眽j *E鹆r槪-泊悚z?泂m???錄蕾??塊k瓉[?E*℡寬?迉?唿頀鎻q?_?隊"=?g謠CE7KD啙沣?n?o剕薙??}莢凘Q嬝堎C邽蝒;駒鍱Ak7?}?鶥皒瘯衋憯%P?O?n?囂镒糭a臃@        4 D?聤T距栊??薗燚^殃{鴔<5擷bTHx1#縃婔?n爂噼芯?怂姓>M姓雜>慑Wp!钓畿}?翸鰣?xbo?"!?簺甖鞲濯??5剝瞿W?钧#Ч:?鮅9?U鉐抑颔????籸/Z崘?嶌旍?敝曰?史A>*?棊哘*盇+桼[k?鄐b汖??嵃?鰓b?岚唈K/?1蠰??<?.t鳭"?骥鱼[
侇W?陾V?vZ窟=A??$?LV桤亮ˊr甽}囏&c炉??wi?窱铯滶巳1恲y
?,?6[?倬j5?譟y烐孑_;,釜問?} 壼.X鶦?嶎?慺?%v漼壅親J鯢噐铇鯕9蘱P?椟P?牘e妳0Y-#獀柫
o扝??螤p?z浶駆鳀虭?酪?y京n坯昤"T饀曹?婢Rx?t蜜展哉W
7諝??赥蟧y{?Ho痽Y6婊-?D翾摡`a?I;`???.?5海-nwcxJ#?b?
2霩!翾膬?lr
QD炧豅醑T        加z蔐?e

上现分析的有误

抓包,得到 .json中调用的字串,修改了 就彻底的没有播放的广告了 !!!
完结~~

免费评分

参与人数 201威望 +2 吾爱币 +212 热心值 +195 收起 理由
a3264380 + 1 热心回复!
強迫症╯ + 1 + 1 用心讨论,共获提升!
s3nake + 1 + 1 用心讨论,共获提升!
多幸运遇见baby + 1 + 1 热心回复!
adai_1983 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
烈焰焚情 + 1 + 1 热心回复!
jianhualu4 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
linguangyuan + 1 感谢分享
WelcomeWorld + 1 + 1 谢谢@Thanks!
liuzhuohao + 1 + 1 谢谢@Thanks!
0xxx + 1 + 1 我很赞同!
行默扬 + 1 + 1 谢谢@Thanks!
toysweater + 1 + 1 谢谢@Thanks!
huangyiyi + 1 + 1 谢谢@Thanks!
Helloyou + 1 + 1 谢谢@Thanks!
若斯子孑 + 1 + 1 跪了
yjjgogjscy + 1 + 1 我很赞同!
paguco + 1 + 1 用心讨论,共获提升!
hyhkk + 1 + 1 小米盒子测试还是有广告,偶尔还会闪退
yuntianhe861212 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
linvex + 1 + 1 我很赞同!
l33621083 + 1 + 1 智友论坛转载了你的软件,刚看到
rnwoshiwo + 1 + 1 用心讨论,共获提升!
caiduyi127 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
魁陵 + 2 我很赞同!
微微一笑醉倾城 + 1 + 1 牛逼 如果有五体 我选择投地 期待第三版
asdfkkkk + 1 + 1 谢谢@Thanks!
B刀云冬 + 1 + 1 我很赞同!
a4210716 + 1 + 1 二代失效,闪退几次以后再打开就有广告了,等会试下一代
lhsum + 1 + 1 谢谢@Thanks!
小米harbin + 1 + 1 谢谢@Thanks!
341 + 1 + 1 我很赞同!
hck + 1 + 1 很详细的教程贴,但2代成品亲测,已经阵亡!闪退
explorer126 + 2 + 1 我很赞同!
4kfooler + 1 + 1 期待VIP
w123j456 + 1 + 1 非常棒 吾爱有你们在 是大众的幸福
wacxx888 + 1 + 1 我很赞同!
hello_meng + 1 + 1 谢谢@Thanks!
肋间神经 + 1 + 1 我很赞同!
尘世风铃 + 1 谢谢@Thanks!
memecece + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xbs20032000 + 1 + 1 期待第三代成品
王宫静龙 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
zkf0373 + 1 热心回复!
name002 + 1 + 1 我很赞同!
di7gan + 1 + 1 1月15日 索尼电视自带闪退,海美迪H7无法看vip同样有闪退现象
tianshangll + 1 + 1 我很赞同!
天朝无敌 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MusiQ + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Excuses + 1 + 1 我很赞同!
冰域雪蝶 + 1 + 1 热心回复!
jiaokai + 1 + 1 牛肉面1碗 香
mlwy + 1 + 1 看到启动的第一屏后,就没反应了,估计失效了
52破解CTO + 1 + 1 我很赞同!
陈歆 + 1 + 1 谢谢@Thanks!
Coonly + 1 + 1 谢谢@Thanks!
qq200800704 + 1 + 1 老哥稳稳的 秀的飞起
nande77 + 1 + 1 老哥秀
一只快乐的小猪 + 1 + 1 用心讨论,共获提升!
a826087321 + 1 + 1 我很赞同!
cyoung + 1 + 1 谢谢@Thanks!
Manest + 1 + 1 牛逼 如果有五体 我选择投地
f88u8 + 1 + 1 谢谢@Thanks!
就是我啊 + 1 + 1 我很赞同!
zhiyi1120 + 1 + 1 用心讨论,共获提升!
我爱破姐 + 1 + 1 谢谢@Thanks!
七个八个九个 + 1 + 1 谢谢@Thanks!
957320193 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jmmes + 1 + 1 我很赞同!
chaofengxnan + 1 已经处理,感谢您对吾爱破解论坛的支持!
zhixi + 1 + 1 谢谢@Thanks!
654812282 + 2 + 1 鼓励转贴优秀软件安全工具和文档!
糖菓 + 1 + 1 热心回复!
小内酷 + 1 + 1 谢谢@Thanks!
sjskkjss + 1 + 1 我很赞同!
rty600 + 1 + 1 谢谢@Thanks!
lclchen + 1 + 1 我很赞同!
missjinbi + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
7℃ + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
The丶timeless + 1 + 1 我很赞同!
旋木过流年 + 1 + 1 谢谢@Thanks!
群重坤天 + 1 + 1 谢谢@Thanks!
wuyueqi168 + 1 失效了,实测二代,不稳定,停止运行,后面进去以后,还有是播放前的广告。
幕拂晓 + 2 + 1 蛮好的,就是不太懂
fypl1990 + 1 + 1 谢谢@Thanks!
langya222 + 1 + 1 谢谢@Thanks!
yuanjie221 + 1 + 1 我很赞同!
windy007 + 1 + 1 我很赞同!
kop小狮子 + 1 + 1 我很赞同!
lsvs666 + 1 + 1 我很赞同!
低调的浅梦 + 1 + 1 学习中!!!!
大四和尚 + 1 + 1 谢谢@Thanks!
hyruur + 1 下载地址呢,去广告找了好就
li061001 + 1 + 1 谢谢@Thanks!
无言丷 + 1 + 1 看的头皮发麻
王哪摸 + 1 + 1 看不懂, 但是要给你加分
wei00514 + 1 + 1 用心讨论,共获提升!
973204 + 1 + 1 我被吸引了!
cszssj + 1 + 1 谢谢@Thanks!
sunfalong + 1 厉害了我的哥,爱死你了!么么哒~~~

查看全部评分

本帖被以下淘专辑推荐:

  • · taobao|主题: 39, 订阅: 57

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

 楼主| 发表于 2018-1-10 10:45 | 显示全部楼层
本帖最后由 冥界3大法王 于 2018-1-10 21:17 编辑

到这里我们有以下几种修改
1. 修改广告完成的调用
2,修改广告初始化的调用
一个app为什么会有广告呢?
1.首先有个 广告申请的权限AndroidManfeist.xml
2.一个广告下载的申请 ,结束后就得下载?
3.判断是否广告加载完成?
4.广告的样式 ,这里电视盒子一般 都是全屏式的
5.开始播放广告的时间长度 ,是固定的? 还是随机时间的
也就是说 上面的这些 调用方法的 地方  和 引用 的字中 调用 ,都是我们尝试下手的地方

.method public static configAd(Landroid/content/Context;)V
    .locals 6
我们全部清掉,修改成这样,这样启动广告就没有了
    .prologue
    return-void
.end method

链接: https://pan.baidu.com/s/1o9EZOO6 密码: mfq3
接下来解决 升级检测 、视频播放时的大广告、 vip会员限制
Snap33.jpg

曾经尝试过,删除所有的 Advertisement的字串调用
1是报错  2.是太多  3.是找的可能方法和位置也不当

invoke-interface {p1}, Lcom/tencent/tads/main/ITadWrapper;->getBannerTimelife()I
得到广告生命时间  是什么鬼?

我们向上看
.method public onTadReceived(Lcom/tencent/tads/main/ITadWrapper;)Z
                              on tad received翻译一下就是微量接收 ,由于下面有广告,这里当然就是接收广告呗
    .locals 6

    .prologue
    const/4 v0, 0x1

    const/4 v1, 0x0

    .line 124
    if-eqz p1, :cond_0    也就是说这里goto 就有好果子吃

    invoke-interface {p1}, Lcom/tencent/tads/main/ITadWrapper;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_1   我们看这个条件 ,如果v2等于0 就转到  :cond_1

    .line 126
    :cond_0
    const-string/jumbo v2, "MainActivity"

    const-string/jumbo v3, "requestSplashAd onNonAd"   #request Splash Ad onNonAd 就是要求广告无广告 , NonAd这是英语的副词修辞【译做无广告】不为过吧?


再看看结尾
    goto/16 :goto_0   好像直达这里了,结果还不错吧,我们再编译试试吧。
.end method
这样的调用 共有 12处,我们分别动动手术 ,这样才能知道 到底 行不行?

invoke-virtual {v1, v2, v4, v5}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
                                                                                          post Delayed 这句好像是调用延迟 ,感觉该删除了 ~~
存档,再测试。。。。。
这样的文件有多个一一动手术,之后有的没有广告了,有的广告依然。


[Asm] 纯文本查看 复制代码
package com.tencent.qqlivetv.model.auth.impl;
我们再来看看下面的部分,懂行的自然知道在干什么?感觉是给开发者和那X。。你懂的{:301_1009:}
import android.content.Context;
import android.os.Handler;
import android.text.TextUtils;
import com.example.a.a;
import com.example.a.c;
import com.ktcp.utils.helper.TvBaseHelper;
import com.ktcp.utils.log.TVCommonLog;

public class AuthSNMManager
  extends AuthManager
{
  private static final String AuthInvalidRequestCode = "998";
  private static final String TAG = "AuthSNMManager";
  
  public AuthSNMManager(Context paramContext, String paramString)
  {
    super(paramContext, paramString);
  }
  
  void authStartNotify()
  {
    if (TvBaseHelper.getIntegerForKey("is_auth_not_toast", 0) == 1) {}
    try
    {
      TvBaseHelper.showToastShort("云视听播控平台认证中…");
      return;
    }
    catch (Throwable localThrowable)
    {
      TVCommonLog.e("AuthSNMManager", "### login showToast err:" + localThrowable.toString());
    }
  }
  
  void authSuccessNotify()
  {
    if (TvBaseHelper.getIntegerForKey("is_auth_not_toast", 0) == 1) {}
    try
    {
      TvBaseHelper.showToastShort("认证成功");
      return;
    }
    catch (Throwable localThrowable)
    {
      TVCommonLog.e("AuthSNMManager", "### onResultCallBack showToast err:" + localThrowable.toString());
    }
  }
  
  protected void checkSN()
  {
    this.mCheckSnCount += 1;
    login();
  }
  
  protected String getAuthFailMessage()
  {
    return this.mContext.getString(TvBaseHelper.getStringResIDByName(this.mContext, "auth_fail_msg_snm"), new Object[] { this.mResultCode, TvBaseHelper.getAppVersion(), getMac() });
  }
  
  protected String getAuthFailTitle()
  {
    return this.mContext.getString(TvBaseHelper.getStringResIDByName(this.mContext, "auth_fail_title"));
  }
  
  protected String getSn()
  {
    return "";
  }
  
  protected String login()
  {
    authStartNotify();
    String str1 = TvBaseHelper.getGUID();
    if (TextUtils.isEmpty(str1))
    {
      if (this.mCheckSnCount <= 2) {
        this.mHandler.postDelayed(this.mAuthRunnable, 30000L);
      }
      this.mResultCode = "-1";
      return this.mResultCode;
    }
    String str2 = TvBaseHelper.getStringForKey("license_account", "");
    String str3 = TvBaseHelper.getChannelID() + "";
    TVCommonLog.i("AuthSNMManager", "guid: " + str1 + " licenseAccount: " + str2 + "  channel: " + str3);
    a.a(str1, str2, str3, new c()
    {
      public void a(String paramAnonymousString)
      {
        AuthSNMManager.this.mResultCode = paramAnonymousString;
        TVCommonLog.i("AuthSNMManager", "onResultCallBack: " + paramAnonymousString);
        if (TextUtils.equals("998", paramAnonymousString))
        {
          AuthSNMManager.this.mHandler.post(AuthSNMManager.this.mAuthFailRunnable);
          return;
        }
        AuthSNMManager.this.authSuccessNotify();
        TvBaseHelper.setStringForKeyAsync("future_tv_sn", "0");
      }
      
      public void b(String paramAnonymousString)
      {
        AuthSNMManager.this.mResultCode = paramAnonymousString;
        TVCommonLog.e("AuthSNMManager", "onErrorCallBack: " + paramAnonymousString);
        TvBaseHelper.setStringForKeyAsync("future_tv_sn", "0");
      }
    });
    reportSN(this.mResultCode, "snm");
    return this.mResultCode;
  }
}


const-string/jumbo v1, "http://aiseet.aa.aisee.tv:8085/snmaaa/Service/Login?SeqNo=test&Source=test&LoginAccount="
那位老大给解释下,这些是什么?
    invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    .line 46
    invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    .line 47
    const-string/jumbo v1, "&LoginType=1&TimeStamp=20150624&"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    .line 48
    const-string/jumbo v1, "Password=12345678&TerminalType=&TerminalModel="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    .line 49
    const-string/jumbo v1, "&account="

点评

机顶盒测试有效  发表于 2018-1-10 12:38

免费评分

参与人数 12吾爱币 +13 热心值 +12 收起 理由
lu_ + 1 + 1 我很赞同!
病态绅士 + 1 + 1 谢谢@Thanks!
wu55078297 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
快乐滴小2B + 2 + 1 谢谢@Thanks!
厦大我来了131 + 1 + 1 热心回复!
SQ312280 + 1 + 1 用心讨论,共获提升!
夕魚 + 1 + 1 支持楼主,期待楼主的视频中途广告也破解,VIP的完整版【笑】
ux188 + 1 + 1 我很赞同!
YYL7535 + 1 + 1 谢谢@Thanks!
shaunkelly + 1 + 1 加分就是简单粗暴的最好方式哦,头像不错
Mr.Jane + 1 + 1 我很赞同!
风起回忆怎么潜 + 1 + 1 期待楼主的下一次更新!顺便提醒楼主小心TX雇佣的水军喷子

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 15:25 | 显示全部楼层
感谢分享,期待完整版

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
辛末之始 + 1 + 1 我很赞同!
Dec黑白棋局 + 1 + 1 老哥能不能给个你见面的高清版啊?我想拿来做壁纸!!!!!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

 楼主| 发表于 2018-1-10 13:19 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

 楼主| 发表于 2018-1-10 19:28 | 显示全部楼层
本帖最后由 冥界3大法王 于 2018-1-10 19:34 编辑

曾经尝试过,删除所有的 Advertisement的字串调用
1是报错  2.是太多  3.是找的可能方法和位置也不当
Snap34.jpg
invoke-interface {p1}, Lcom/tencent/tads/main/ITadWrapper;->getBannerTimelife()I
得到广告生命时间  是什么鬼?

我们向上看
.method public onTadReceived(Lcom/tencent/tads/main/ITadWrapper;)Z
                              on tad received翻译一下就是微量接收 ,由于下面有广告,这里当然就是接收广告呗
    .locals 6

    .prologue
    const/4 v0, 0x1

    const/4 v1, 0x0

    .line 124
    if-eqz p1, :cond_0    也就是说这里goto 就有好果子吃

    invoke-interface {p1}, Lcom/tencent/tads/main/ITadWrapper;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_1   我们看这个条件 ,如果v2等于0 就转到  :cond_1

    .line 126
    :cond_0
    const-string/jumbo v2, "MainActivity"

    const-string/jumbo v3, "requestSplashAd onNonAd"   #request Splash Ad onNonAd 就是要求广告无广告 , NonAd这是英语的副词修辞【译做无广告】不为过吧?


再看看结尾
    goto/16 :goto_0   好像直达这里了,结果还不错吧,我们再编译试试吧。
.end method
这样的调用 共有 12处,我们分别动动手术 ,这样才能知道 到底 行不行?

invoke-virtual {v1, v2, v4, v5}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
                                                                                          post Delayed 这句好像是调用延迟 ,感觉该删除了 ~~
存档,再测试。。。。。
这样的文件有多个一一动手术,之后有的没有广告了,有的广告依然。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 12:14 | 显示全部楼层
看得眼疼,期待成品完美发布

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 10:48 | 显示全部楼层
支持一下楼主下来用用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 10:49 | 显示全部楼层
居然是板凳 期待楼主的完美破解版

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 10:52 | 显示全部楼层
看得眼疼,期待成品完美发布

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 10:56 | 显示全部楼层
期待楼主的完美破解版

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 11:01 | 显示全部楼层
楼主,给你饮料,喝完再继续

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 11:06 | 显示全部楼层
期待中吧!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 11:10 | 显示全部楼层
家里装了智能电视 也一直对这个很有兴趣,苦于没有基础,正从头开始学java

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2018-1-10 11:11 | 显示全部楼层
期待楼主的完美破解版

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2018-10-18 23:59

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表