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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15607|回复: 379
上一主题 下一主题

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

    [复制链接]
跳转到指定楼层
楼主
发表于 2018-1-10 10:36 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 冥界3大法王 于 2018-1-18 18:40 编辑

自从给咱家买来了网络电视机顶盒,楼主爱上了安卓逆向,把吾爱破解这方面和网上所有能找到的资料都弄回家学习和折腾。
《云视听极光》是一个楼主感觉不错的电视盒子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的东东,随时检查广告的宽 高 是否正常,如果不正常就抛出个异常,所以修改的版本经常会发生崩溃
这些我也是从日志猫里抓到后,搜索后知道的。
全部弄死!
[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



接下来,解决播放视频时的长时间小广告问题(第三代解决这个问题

免费评分

参与人数 163威望 +2 吾爱币 +173 热心值 +159 收起 理由
肋间神经 + 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 + 1 厉害了我的哥,爱死你了!么么哒~~~
mogoyu + 1 + 1 我也是初学有些步骤完全看不懂怎么弄的……
lcqq + 1 + 1 谢谢@Thanks!
xing4293160 + 1 + 1 用心讨论,共获提升!
JoyShow + 1 + 1 谢谢@Thanks!
tangsky + 1 + 1 谢谢@Thanks!
xiefanxiu + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
i_stone + 1 + 1 热心回复!
shishi0655 + 1 + 1 谢谢@Thanks!
叫我阿兴 + 1 + 1 谢谢@Thanks!
IceWind + 1 + 1 用心讨论,共获提升!
在路上的人 + 1 + 1 谢谢@Thanks!
Hiro_J + 1 + 1 谢谢@Thanks!
shuai23long + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
tong_wen2504 + 1 谢谢@Thanks!
ahmeijian + 1 + 1 谢谢@Thanks!
蓝色热带鱼 + 1 + 1 我很赞同!
liuliu666 + 1 我很赞同!
vippp + 1 + 1 期待完美破解,3代
老断 + 1 + 1 我很赞同!
神探亨特 + 1 + 1 用心讨论,共获提升!
snake88888 + 1 + 1 用心讨论,共获提升!
神秘哥 + 1 + 1 我很赞同!
c576172 + 1 + 1 热心回复!
luoze01 + 1 + 1 谢谢@Thanks!
957840251 + 1 + 1 我很赞同!
每当变幻时. + 1 + 1 我很赞同!
jackjingwei + 1 + 1 谢谢@Thanks!
dvdrm + 1 + 1 感谢楼主,期待去广告+去升级+免VIP成品
无即是我 + 1 + 1 谢谢@Thanks!
hjdx001 + 2 + 1 盒子应用太少了,必须要给评分,期待完美的成品 。
myqqq + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
飘零的殇 + 1 + 1 我很赞同!
喵呜、 + 1 + 1 用心讨论,共获提升!
lopes1975 + 1 + 1 谢谢@Thanks!
矢泽爱 + 1 + 1 我很赞同!
lstadsl + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
如若小城依兮 + 1 + 1 谢谢@Thanks!
沧海一数 + 1 期待第3代成品

查看全部评分

本帖被以下淘专辑推荐:

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

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

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

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

推荐
 楼主| 发表于 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会员限制


曾经尝试过,删除所有的 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

免费评分

参与人数 9吾爱币 +10 热心值 +9 收起 理由
快乐滴小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雇佣的水军喷子

查看全部评分

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

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

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

推荐
 楼主| 发表于 2018-1-10 13:19 | 只看该作者 |楼主

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

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

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

推荐
发表于 2018-1-10 15:25 | 只看该作者
感谢分享,期待完整版

免费评分

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

查看全部评分

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

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

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

推荐
发表于 2018-1-10 12:14 | 只看该作者
看得眼疼,期待成品完美发布

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

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

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

地板
发表于 2018-1-10 10:48 | 只看该作者
支持一下楼主下来用用

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

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

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

7#
发表于 2018-1-10 10:49 | 只看该作者
居然是板凳 期待楼主的完美破解版

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

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

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

8#
发表于 2018-1-10 10:52 | 只看该作者
看得眼疼,期待成品完美发布

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

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

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

9#
发表于 2018-1-10 10:56 | 只看该作者
期待楼主的完美破解版

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

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

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

10#
发表于 2018-1-10 11:01 | 只看该作者
楼主,给你饮料,喝完再继续

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

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

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

11#
发表于 2018-1-10 11:06 | 只看该作者
期待中吧!

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

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

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

12#
发表于 2018-1-10 11:10 | 只看该作者
家里装了智能电视 也一直对这个很有兴趣,苦于没有基础,正从头开始学java

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

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

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

13#
发表于 2018-1-10 11:11 | 只看该作者
期待楼主的完美破解版

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

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

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

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

本版积分规则


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

Mail To:Service@52PoJie.Cn

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

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

GMT+8, 2018-1-24 09:34

Powered by Discuz!

© 2001-2017 Comsenz Inc.

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