红果免费漫剧 —— MT管理器手机端去广告详细教程

admin
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买
这个是用AI去除广告的软件  目前还是存在看5-6小时  会出现广告  只能清除数据缓存  有没有大佬告诉下该怎么解决 文件太大了 丢不上来  自己动下手指吧 ========================================================================== 红果免费漫剧 7.4.0.32 —— MT管理器手机端去广告详细教程 (追剧时"下一集"插播广告 / 章末广告 永久去除,含防云端覆盖) ========================================================================== 【适配版本】红果免费漫剧 7.4.0.32(arm64) 【所需工具】MT管理器 V2.12 及以上(无需 ROOT) 【难    度】★★★☆☆(跟做即可,全程手机操作,约 15 分钟) 【原 理】  广告由两条链路加载:①自家"exCitingvideo/联盟"广告 SDK(插屏), ②云端配置下发"每 N 集插一条"的开关和阈值。 本教程:a.直接让插屏广告加载立即失败(走官方"无广告填充"降级, 播放器自动跳过广告播下一集);b.改死云端配置的接收字段, 服务端下发任何值都匹配不上,杜绝"过几小时广告又回来"。 【补丁清单】共 7 个,分布在 5 个 dex 里: 补丁1  classes8   广告总开关恒为关闭 补丁2  classes20  插屏判定强制走"开关未开启"分支 补丁3  classes23  云端配置字段改名(自家阅读内核版) 补丁4  classes20  云端配置字段改名(tomato 番茄内核版) 补丁5  classes23  配置类本地默认值改为关闭 补丁6  classes11  插屏广告工厂:加载立即失败(核心) 补丁7  classes13  联盟广告插屏接口:直接回调无广告(核心) -------------------------------------------------------------------------- 第 0 步  备份与打开 -------------------------------------------------------------------------- 1. 把 红果免费漫剧_7.4.0.32.APK 放到手机下载目录(或直接提取已安装的: MT管理器左侧抽屉 → 应用 → 找到红果 → 长按 → 提取安装包)。 2. 打开 MT管理器,找到该 apk,单击 → 选择「编辑」(部分版本为:长按 → 打开方式 → 编辑),进入 APK 内部目录。 3. 建议先做防闪退保险:在 APK 编辑界面点右上角「功能」→「去除签名校验」 → 方案默认 → 确定。字节系应用一般不强校验签名,但做了无害。 -------------------------------------------------------------------------- 第 1 步  打开 DEX 编辑器 -------------------------------------------------------------------------- 在 APK 根目录能看到 classes.dex、classes2.dex …… classes23.dex。 点击 classes8.dex → 选择「DEX编辑器」。 (提示:如果想一次搜多个 dex,可以长按多个 dex → 用「DEX编辑器(多开)」。) 以后每个补丁都是同样三步:搜索类名 → 打开类 → 找到方法改代码。 注意: · smali 里若看到 .line / .Prologue 开头的行是调试信息,不用管也不要删, 下面代码块只对应真正的指令行; · 逗号、空格、寄存器 v0/v6、p0/p1、数字 0x0/0x4 必须逐字符一致, 字母 O 和数字 0、字母 l 和数字 1 不要抄错; · 每改完一个类点「保存」,MT 会自动重新编译该 dex,报错就说明抄错了。 -------------------------------------------------------------------------- 第 2 步  补丁1 —— 广告总开关恒为关闭(classes8) -------------------------------------------------------------------------- 1. 打开 classes8.dex,搜索类名:ExperimentUtil 2. 打开 com.dRAGon.read.reader.ad.experiment.ExperimentUtil 3. 类内查找方法:G9G66 (这是个返回广告开关的静态方法) 4. 原代码: .method public static G9G66()Z .locals 1 ......(中间几行不用动) if-eqz v0, :cond_0 iget-boolean v0, v0, Lcom/dragon/read/base/ssconfig/model/ShortSeriesAdConfig;->shortVideoAdEnable:Z return v0 :cond_0 const/4 v0, 0x1 return v0 .end method 5. 改两处: ① 把 iget-boolean 那一整行替换为: const/4 v0, 0x0 ② 把 :cond_0 下面的 const/4 v0, 0x1 改为 const/4 v0, 0x0 6. 改后效果(两个 return 前都是 0x0,即永远返回"广告关闭"): const/4 v0, 0x0 return v0 :cond_0 const/4 v0, 0x0 return v0 -------------------------------------------------------------------------- 第 3 步  补丁2 —— 插屏判定强制走"开关未开启"分支(classes20) -------------------------------------------------------------------------- 1. 打开 classes20.dex,搜索类名:QQqQqQ9 (是个混淆名,注意大小写) 2. 打开类 QqqQqQ9.Q9G6 3. 类内搜索字符串:switch_disabled 能看到附近有一行中文「短剧中插广告总开关未开启」,就说明找对了。 4. 从 switch_disabled 往上翻约 10 行,找到这样的结构: :cond_4 :goto_2 if-nez v6, :cond_5 5. 在 :goto_2 和 if-nez 之间插入一行: const/4 v6, 0x0 改后为: :cond_4 :goto_2 const/4 v6, 0x0 if-nez v6, :cond_5 这样 v6 恒为 0,代码必定跳进"总开关未开启"的关闭分支, 后面的请求插屏广告逻辑全部跳过。 -------------------------------------------------------------------------- 第 4 步  补丁3 / 补丁4 —— 云端配置字段改名(classes23 + classes20) -------------------------------------------------------------------------- 这两个补丁是防"过几小时广告又回来"的关键:服务端配置是 JSON, 客户端靠 @SerializedName 注解里的 key 去匹配。key 改了, 服务端下发什么都匹配不上,本地值永远生效。 补丁3: 1. 打开 classes23.dex,搜索类名:ShortSeriesAdConfig 2. 打开 com.dragon.read.base.ssconfig.model.ShortSeriesAdConfig 3. 类内搜索:short_video_ad_enable 4. 找到字段注解: .field public shortVideoAdEnable:Z .annotation runtime Lcom/Google/gson/annotations/SerializedName; value = "short_video_ad_enable" .end annotation .end field 5. 只把 value 引号里的内容改为: value = "short_video_ad_enable_off" 注意:别误改下面的 short_video_ad_expired_time 等其他行。 补丁4: 1. 打开 classes20.dex,搜索类名:ShortSeriesAdConfig 2. 打开 com.bytedance.tomato.onestop.config.model.ShortSeriesAdConfig 3. 同样把 value = "short_video_ad_enable" 改为 value = "short_video_ad_enable_off" -------------------------------------------------------------------------- 第 5 步  补丁5 —— 配置类本地默认值改为关闭(classes23) -------------------------------------------------------------------------- 1. 还是在补丁3那个类里(ShortSeriesAdConfig),找到构造方法 <init> (方法列表里名字叫 <init> 的那个)。 2. 类内搜索:shortVideoAdEnable 在 <init> 里有一行赋值: iput-boolean v1, p0, Lcom/dragon/read/base/ssconfig/model/ShortSeriesAdConfig;->shortVideoAdEnable:Z (它上面一行是 ...->seriesRerankTimeInterval:J 的 iput-wide, 可以用来确认位置) 3. 在这行【上面】插入一行: const/4 v1, 0x0 (因为 0x1 被复用,必须在这里单独清零,不能改别处) -------------------------------------------------------------------------- 第 6 步  补丁6 —— 插屏广告工厂加载立即失败(classes11,核心) -------------------------------------------------------------------------- 1. 打开 classes11.dex,搜索类名:InterstitialAdFactory 2. 打开 com.ss.android.excitingvideo.interstitial.InterstitialAdFactory 3. 找到方法:requestInterstitialAd (插屏广告的统一请求入口) 4. 在方法里定位这两行(它们之间隔着十几行): 起点行:new-instance v1, Lye/QqQ; 终点行:invoke-virtual {v1}, Lye/GQG66Q;->g6Gg9GQ9()V 5. 把【起点行~终点行(含这两行本身)】整段删除,在原位置粘贴以下内容: new-instance v1, Lcom/ss/android/excitingvideo/exception/RequestException$InterstitialRequestException; const/4 v2, 0x4 const-string p1, "no ad (patched)" invoke-direct {v1, v2, p1}, Lcom/ss/android/excitingvideo/exception/RequestException$InterstitialRequestException;-><init>(ILjava/lang/String;)V invoke-static {v1}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object; move-result-object v1 invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 invoke-interface {v0, v1}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V 6. 千万注意: · 方法开头 new-instance v0, Lkotlinx/coroutines/CancellableContinuationImpl; 那几行【不要动】; · 方法结尾 invoke-virtual {v0}, ...->getResult() 之后的部分【不要动】; · 只删"起点行~终点行"这一段。 改完效果:不发起任何广告网络请求,直接按 SDK 原本的失败路径回调, 播放器收到失败后走官方"无广告填充"降级 → 自动跳过广告播下一集。 -------------------------------------------------------------------------- 第 7 步  补丁7 —— 联盟插屏接口直接回调无广告(classes13,核心) -------------------------------------------------------------------------- 1. 打开 classes13.dex,搜索类名:MUnionAdRequestService 2. 打开 com.ss.android.union_core.spi.MUnionAdRequestService 3. 找到方法:loadFeedInterstitialAd 4. 把整个方法(从 .method 到 .end method)替换为: .method public loadFeedInterstitialAd(Landroid/content/Context;Lcom/ss/android/union_API/load/MUnionSlot;Lcom/ss/android/union_api/load/MUnionInterstitialAdListener;)V .locals 2 const/4 v0, 0x4 const-string v1, "" invoke-interface {p3, v0, v1}, Lcom/ss/android/union_api/load/MUnionAdListener;->onError(ILjava/lang/String;)V return-void .end method (这个方法整段只有上面这么多行,放心全选替换。 错误消息特意用空字符串 "",原因见下方"重要提醒"。 同类里的 loadRewardAd 千万【不要动】,那是"看视频解锁/得金币", 动了会导致解锁功能异常。) 【重要提醒】classes13 这个 dex 的方法引用已经顶到 65535 上限(dex 的 64K 限制),改动它时【绝对不能】新增类、新增方法或新增字符串常量, 否则保存后该 dex 会编译成残废文件(表面看着正常,装上必闪退, 而且 MT 不会报错!)。所以:错误消息一律用现成的 "" ;别把其他类 粘进来;补丁6 的代码是加在 classes11 的(它有余量),别搞混 dex。 改完 classes13 后建议验证一下:文件大小和改前应非常接近(差几百 字节以内)。 -------------------------------------------------------------------------- 第 8 步  保存、打包、签名、安装 -------------------------------------------------------------------------- 1. 7 个补丁全部改完并保存后,一路按返回键退出。 2. MT 会弹出「APK 已修改,是否保存并更新?」→ 确定,等待自动打包 (这个包很大,140MB+,耐心等,期间别切走)。 3. 打包完成后生成新的 apk 文件(默认在原 apk 同目录)。 4. 长按新 apk → 「签名」→ 方案选 V2(或 V1+V2 都勾)→ 确定等待完成。 5. 先卸载手机上的原版红果(签名不同不能覆盖安装,会丢登录状态, 红果支持手机号验证码重登,书架进度云端同步会回来)。 6. 安装新 apk,打开即用。 -------------------------------------------------------------------------- 常见问题 -------------------------------------------------------------------------- Q1:保存 dex 时编译报错? 99% 是抄错。重点核对补丁6/7:寄存器名(v0 v1 v2 p1 p3)、 0x0 和 0x4、方法名的每个字符;确认没把方法开头/结尾误删。 Q2:安装时提示"解析包错误"或安装失败? 打包没完成就安装了,或者签名没做完。重新走第 8 步。 Q3:打开闪退? ①确认做过「去除签名校验」;②补丁6 删多/删少了,重新核对起止两行; ③重点检查补丁7:classes13 引用池已顶格(详见第 7 步的"重要提醒"), 只要往它里面新增过任何类/方法/字符串,整个 dex 就废了,装上必闪退—— 严格按教程用 "" 空字符串,不要自作主张写别的提示文字; 实在不行先只保留补丁1~5(配置层)测试,再逐个加回 6、7。 Q4:用几天后广告又出现了? 不会。补丁3/4/5 已把云端配置链路改死,服务端下发不进来; 补丁6/7 是代码级短路,跟云端无关。若真还有广告,看看广告形式: "看视频得金币/解锁"的激励视频位是特意保留的(补丁说明第 7 步), 集间自动插播的插屏广告才是本教程的目标。 Q5:以后版本升级了怎么办? 类名都是混淆/固定的,新版本里用类名全局搜索重新定位即可, 补丁思路完全一样(找 shortVideoAdEnable / InterstitialAdFactory / MUnionAdRequestService)。 -------------------------------------------------------------------------- 免责声明:本教程仅用于个人学习研究 Android 逆向技术,修改后的安装包 仅供本人使用,请勿二次分发或用于商业用途,支持请使用官方版本。 ==========================================================================

点击下方按钮前往主站获取完整资源:

跳转至 wordpress 主站原文页面

文章版权声明:除非注明,否则均为AI虎哥的工具库原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,7人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码