12下一页
返回列表 发新帖

WiFi万能钥匙 v5.2.23 去除签名效验和广告

[复制链接]

14

主题

379

回帖

1211

积分

高中生

Rank: 4

金币
392
好评
5
信誉
100
发表于 2026-7-19 13:53:00 来自手机  | 显示全部楼层 | 阅读模式  来自 山东
本帖最后由 SoloSu 于 2026-7-20 23:27 编辑

第一部分:去签名校验
这个应用采用 SO 层为主的签名校验方案,Java 层仅有进程类型判断逻辑,不存在传统意义的签名比对代码,直接开整
1.1 Java 层(非签名校验)
搜索类 com.wifitutu.ka.manager.a
调用链 TuTuApp.attachBaseContext() → kaHelper.c() → Lsh/a;->c()
Lsh/a;->c() 方法完整逻辑:
  1. public static boolean c(String processName, String packageName) {
  2.     if (processName.endsWith(":sync") ||
  3.         processName.endsWith(":assistant") ||
  4.         processName.endsWith(":persistent") ||
  5.         processName.endsWith(":assist") ||
  6.         processName.endsWith(":assist1")) {
  7.         return true;
  8.     }
  9.     if (TextUtils.equals(processName, packageName + ".daemon")) {
  10.         return true;
  11.     }
  12.     return false;
  13. }
复制代码
1.2 SO 层(真正的签名校验)
签名校验由爱加密 (ijiami) 加固方案在 SO 层实现在:
libijm_linker.so,libijiami_ijm.so,libkey.so,ijiami_ijm.VData
二、去签名校验
2.1 Smali 修改
文件: classes2.dex
: Lijiami_ijm/NCall;
方法: <clinit>()V
用 try-catch 包裹 System.loadLibrary("ijiami_ijm"),捕获 UnsatisfiedLinkError,防止 SO 文件删除后因加载失败导致的应用崩溃。
2.2 文件删除
序号文件路径操作
1lib/arm64-v8a/libijiami_ijm.so删除
2lib/arm64-v8a/libijm_linker.so删除
3lib/arm64-v8a/libkey.so删除
4assets/ijiami_ijm.VData删除

第二部分:去广告
一、广告SDK分析
该应用集成了多个广告SDK,通过自建的广告聚合层统一管理:
广告SDK包名类型
百度 MobAdscom.baidu.mobads横幅/插屏/开屏/视频
穿山甲 CSJcom.bytedance.sdk.openadsdk信息流/开屏/激励视频
优量汇 GDTcom.qq.e横幅/插屏/开屏
Octopuscom.octopus.ad下载广告
荣耀 Adscom.hihonor.adsdk广告归因
zm.adxsdkcom.zm.adxsdk自建广告包装层
zm.wfsdkcom.zm.wfsdk自建广告落地页

广告架构: 所有第三方SDK通过 com.wifi.business.potocol.sdk 聚合层统一接入,广告对象继承 AbstractAds(实现 IWifiAd 接口),通过 BaseAdLoader 统一加载。
二、去广告修改内容
共修改 6 个类(涉及 3 个 dex 文件):
序号修改位置修改方式目标广告类型说明
1AbstractAds.isReady()返回 false所有聚合层广告广告基类就绪判断始终返回 false,所有继承此基类的广告对象被认为"未就绪"
2BaseAdLoader.onAdLoadSuc()方法体清空所有广告加载成功回调广告加载成功后的处理逻辑被清空,广告对象不会被创建和分发
3WWV2V.isReady()返回 false自建广告包装层zm.adxsdk 包装层的开屏/插屏/激励视频就绪判断始终返回 false
4LauncherActivity.T0()跳过广告加载,直接跳转主界面开屏广告启动时不再加载任何开屏广告,直接调用 d1() 跳转 MainActivity
5ActiveAppActivity.onCreate()立即 finish()加速/活跃广告页打开后立即关闭
6ReplayAdShowActivity.onCreate()立即 finish()视频回放广告页打开后立即关闭

三、修改原理
  1. 去广告前:
  2.   LauncherActivity.onCreate()
  3.     → f1() → J0() → T0()  ← 加载开屏广告
  4.       → AbstractAds.isReady() → true → 展示广告
  5.       → 广告展示完成 → d1() → 跳转MainActivity
  6. 去广告后:
  7.   LauncherActivity.onCreate()
  8.     → f1() → J0() → T0()  ← 跳过广告加载,直接跳转
  9.       → d1() → 跳转MainActivity
  10.       → finish()
  11.   广告展示时:
  12.     AbstractAds.isReady() → false → 广告不展示
  13.     BaseAdLoader.onAdLoadSuc() → 空方法 → 广告不被处理
  14.     WWV2V.isReady() → false → 自建SDK广告不展示
复制代码

第三部分:修改汇总
文件变更清单
文件/路径操作说明
classes2.dex修改NCall.<clinit>() 添加 try-catch
classes8.dex修改AbstractAds.isReady(), BaseAdLoader.onAdLoadSuc()
classes10.dex修改WWV2V.isReady()
classes2.dex修改LauncherActivity.T0(), ActiveAppActivity.onCreate(), ReplayAdShowActivity.onCreate()
lib/arm64-v8a/libijiami_ijm.so删除爱加密辅助 SO
lib/arm64-v8a/libijm_linker.so删除爱加密核心 SO
lib/arm64-v8a/libkey.so删除密钥相关 SO
assets/ijiami_ijm.VData删除爱加密配置文件

修改效果
场景修改前修改后
首次启动有开屏广告,2-3 秒后进入主界面无开屏广告,直接进入主界面
使用过程弹出插屏/视频广告广告不弹出
信息流浏览列表中出现广告卡片广告卡片空白或不展示
签名校验修改签名后闪退不闪退
启动速度因开屏广告加载慢启动更快

注意事项
  • 必须卸载原版后再安装,签名不一致无法覆盖安装
  • 仅支持 arm64-v8a 架构设备
  • 信息流中的广告占位View可能仍会显示空白区域,但不影响正常使用
  • 应用内部有热修复框架(Meituan Robust),但修改的代码路径不涉及热修复补丁

第四部分:具体修改步骤
环境准备
  • 修改工具:MT MCP (APK 修改工具集)
  • 运行环境:Termux + Android 设备
  • 输出目录:/storage/emulated/0/MT2/mcp/

步骤一:打开 APK
  1. mt_apk_list_available_apks()
  2. mt_apk_open(path="WiFi万能钥匙.apk", temporary=false)
  3.   → workspaceId: cdbsnco2
复制代码
步骤二:打开编辑会话
  1. mt_apk_edit_open(workspaceId="cdbsnco2")
  2.   → editSessionId: bddff661
复制代码
步骤三:去签名校验
3.1 修改 NCall 类,添加 try-catch
  1. mt_apk_read_text(
  2.   workspaceId="cdbsnco2", editSessionId="bddff661",
  3.   locator="dex_method:Lijiami_ijm/NCall;-><clinit>()V"
  4. )
  5. mt_apk_edit_text(
  6.   workspaceId="cdbsnco2", editSessionId="bddff661",
  7.   locator="dex_method:Lijiami_ijm/NCall;-><clinit>()V",
  8.   targetVersion="...",
  9.   edits=[{
  10.     mode: "write_target",
  11.     writeText: ".method static constructor <clinit>()V\n    .registers 1\n\n    :try_start_0\n    const-string v0, "ijiami_ijm"\n\n    invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V\n\n    :try_end_0\n    .catch Ljava/lang/UnsatisfiedLinkError; {:try_start_0 .. :try_end_0} :catch_0\n\n    :catch_0\n    return-void\n.end method"
  12.   }]
  13. )
复制代码
3.2 删除爱加密 SO 文件
  1. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libijiami_ijm.so
  2. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libijm_linker.so
  3. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libkey.so
  4. zip -d WiFi万能钥匙.apk assets/ijiami_ijm.VData
复制代码
步骤四:去广告
4.1 修改 AbstractAds.isReady() → 返回 false
  1. mt_apk_read_text(
  2.   locator="dex_method:Lcom/wifi/business/potocol/sdk/base/ad/AbstractAds;->isReady()Z"
  3. )
  4. → 原始代码: const/4 v0, 0x1 → return v0
  5. mt_apk_edit_text(
  6.   edits=[{mode: "replace_match",
  7.     matchText: "    const/4 v0, 0x1\n\n    return v0\n.end method",
  8.     writeText: "    const/4 v0, 0x0\n\n    return v0\n.end method"}]
  9. )
复制代码
4.2 修改 BaseAdLoader.onAdLoadSuc() → 空方法
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifi/business/potocol/sdk/base/BaseAdLoader;->onAdLoadSuc(Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onAdLoadSuc(Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V\n    .registers 4\n\n    return-void\n.end method"}]
  5. )
复制代码
4.3 修改 WWV2V.isReady() → 返回 false
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/zm/adxsdk/WWV2V;->isReady()Z",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public isReady()Z\n    .registers 2\n\n    const/4 v0, 0x0\n\n    return v0\n.end method"}]
  5. )
复制代码
4.4 修改 LauncherActivity.T0() → 跳过广告,直接跳转
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifitutu/ui/launcher/LauncherActivity;->T0()V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method private final T0()V\n    .registers 2\n\n    invoke-virtual {p0}, Lcom/wifitutu/ui/launcher/LauncherActivity;->d1()V\n    invoke-virtual {p0}, Lcom/wifitutu/ui/launcher/LauncherActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
4.5 修改 ActiveAppActivity.onCreate() → 立即 finish
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifitutu/ui/tools/ad/ActiveAppActivity;->onCreate(Landroid/os/Bundle;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onCreate(Landroid/os/Bundle;)V\n    .registers 3\n    .param p1, "savedInstanceState"    # Landroid/os/Bundle;\n        .annotation build Lorg/jetbrains/annotations/Nullable;\n        .end annotation\n    .end param\n\n    invoke-super {p0, p1}, Lcom/wifitutu/ui/BaseActivity;->onCreate(Landroid/os/Bundle;)V\n    invoke-virtual {p0}, Lcom/wifitutu/ui/tools/ad/ActiveAppActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
4.6 修改 ReplayAdShowActivity.onCreate() → 立即 finish
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifi/business/shell/replay/ReplayAdShowActivity;->onCreate(Landroid/os/Bundle;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onCreate(Landroid/os/Bundle;)V\n    .registers 2\n\n    invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V\n    invoke-virtual {p0}, Lcom/wifi/business/shell/replay/ReplayAdShowActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
步骤五:构建并签名
  1. mt_apk_edit_check(workspaceId="cdbsnco2", editSessionId="bddff661", runBuildChecks=true)
  2. mt_apk_build(workspaceId="cdbsnco2", editSessionId="bddff661", outputName="", overwrite=false)
  3.   → 输出: /storage/emulated/0/MT2/mcp/WiFi万能钥匙_mcp_bddff661_sign.apk
  4.   → 签名: V1 + V2 + V3
复制代码
修改文件分布
DEX 文件修改的类
classes2.dexNCall, LauncherActivity, ActiveAppActivity, ReplayAdShowActivity
classes8.dexAbstractAds, BaseAdLoader
classes10.dexWWV2V




回复

使用道具 举报

14

主题

379

回帖

1211

积分

高中生

Rank: 4

金币
392
好评
5
信誉
100
发表于 2026-7-21 14:49:03 来自手机  | 显示全部楼层  来自 山东
兮夜 发表于 2026-7-20 11:20
大佬能分享下成品包吗?

@PKgodness


制作了成品

https://bbs.binmt.cc/forum.php?mod=viewthread&tid=169579
回复

使用道具 举报

0

主题

2972

回帖

6911

积分

硕士生

Rank: 6Rank: 6

金币
3330
好评
0
信誉
100

MT论坛新人考神MT论坛帅哥

发表于 2026-7-19 14:23:22 来自手机  | 显示全部楼层  来自 浙江
感谢分享
回复

使用道具 举报

54

主题

3590

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
795
好评
190
信誉
180

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员挂机大佬

发表于 2026-7-19 14:25:14 来自手机  | 显示全部楼层  来自 陕西
本帖最后由 青春向上 于 2026-7-19 14:30 编辑

推荐把文档转换一下,更好看。
在线markdown转bbcode链接:
https://qcxs.github.io/mtbbs/mt-convert/
使用方法:拖拽md文件,或者复制粘贴进去,会自动预览。如果哪里预览不满意可以编辑,点击“复制bbcode”,供发帖时使用。
已有1人评分好评 理由
SoloSu + 1

查看全部评分 总评分:好评 +1 

回复

使用道具 举报

0

主题

507

回帖

6668

积分

硕士生

Rank: 6Rank: 6

金币
2647
好评
19
信誉
98
发表于 2026-7-19 14:28:51 来自手机  | 显示全部楼层  来自 广西
码字挺多,看不完。留条评论占个前排
回复

使用道具 举报

0

主题

6414

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
835
好评
1
信誉
107
发表于 2026-7-19 14:33:48 来自手机  | 显示全部楼层  来自 广东
学习学习
回复

使用道具 举报

41

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
6142
好评
3
信誉
98
发表于 2026-7-19 15:02:37 来自手机  | 显示全部楼层  来自 山东
感谢分享
回复

使用道具 举报

12

主题

2304

回帖

7932

积分

硕士生

Rank: 6Rank: 6

金币
4379
好评
1
信誉
100

考神MT论坛帅哥

发表于 2026-7-19 15:17:21 来自手机  | 显示全部楼层  来自 广东
好像没用,去除后还是不显示免费wifi
回复

使用道具 举报

6

主题

354

回帖

1267

积分

高中生

Rank: 4

金币
383
好评
0
信誉
100
发表于 2026-7-19 15:21:56 来自手机  | 显示全部楼层  来自 广东
看看
回复

使用道具 举报

1

主题

567

回帖

1811

积分

高中生

Rank: 4

金币
723
好评
0
信誉
102

考神MT论坛新人MT论坛帅哥MT论坛最佳新人

发表于 2026-7-19 15:53:46 | 显示全部楼层  来自 山东
青春向上 发表于 2026-7-19 14:25
推荐把文档转换一下,更好看。
在线markdown转bbcode链接:
https://qcxs.github.io/mtbbs/mt-convert/

牛啊,复制完预览太清晰了
回复

使用道具 举报

1

主题

567

回帖

1811

积分

高中生

Rank: 4

金币
723
好评
0
信誉
102

考神MT论坛新人MT论坛帅哥MT论坛最佳新人

发表于 2026-7-19 15:54:31 | 显示全部楼层  来自 山东
第一部分:去签名校验
这个应用采用 SO 层为主的签名校验方案,Java 层仅有进程类型判断逻辑,不存在传统意义的签名比对代码,直接开整
1.1 Java 层(非签名校验)
搜索类 com.wifitutu.ka.manager.a
调用链 TuTuApp.attachBaseContext() → kaHelper.c() → Lsh/a;-&gt;c()
Lsh/a;-&gt;c() 方法完整逻辑:
  1. public static boolean c(String processName, String packageName) {
  2.     if (processName.endsWith(":sync") ||
  3.         processName.endsWith(":assistant") ||
  4.         processName.endsWith(":persistent") ||
  5.         processName.endsWith(":assist") ||
  6.         processName.endsWith(":assist1")) {
  7.         return true;
  8.     }
  9.     if (TextUtils.equals(processName, packageName + ".daemon")) {
  10.         return true;
  11.     }
  12.     return false;
  13. }
复制代码
1.2 SO 层(真正的签名校验)
签名校验由爱加密 (ijiami) 加固方案在 SO 层实现在:
libijm_linker.so,libijiami_ijm.so,libkey.so,ijiami_ijm.VData
二、去签名校验
2.1 Smali 修改
文件: classes2.dex  
: Lijiami_ijm/NCall;  
方法: &lt;clinit&gt;()V
用 try-catch 包裹 System.loadLibrary(&quot;ijiami_ijm&quot;),捕获 UnsatisfiedLinkError,防止 SO 文件删除后因加载失败导致的应用崩溃。
2.2 文件删除
序号文件路径操作
1lib/arm64-v8a/libijiami_ijm.so删除
2lib/arm64-v8a/libijm_linker.so删除
3lib/arm64-v8a/libkey.so删除
4assets/ijiami_ijm.VData删除

第二部分:去广告
一、广告SDK分析
该应用集成了多个广告SDK,通过自建的广告聚合层统一管理:
广告SDK包名类型
百度 MobAdscom.baidu.mobads横幅/插屏/开屏/视频
穿山甲 CSJcom.bytedance.sdk.openadsdk信息流/开屏/激励视频
优量汇 GDTcom.qq.e横幅/插屏/开屏
Octopuscom.octopus.ad下载广告
荣耀 Adscom.hihonor.adsdk广告归因
zm.adxsdkcom.zm.adxsdk自建广告包装层
zm.wfsdkcom.zm.wfsdk自建广告落地页

广告架构: 所有第三方SDK通过 com.wifi.business.potocol.sdk 聚合层统一接入,广告对象继承 AbstractAds(实现 IWifiAd 接口),通过 BaseAdLoader 统一加载。
二、去广告修改内容
共修改 6 个类(涉及 3 个 dex 文件):
序号修改位置修改方式目标广告类型说明
1AbstractAds.isReady()返回 false所有聚合层广告广告基类就绪判断始终返回 false,所有继承此基类的广告对象被认为"未就绪"
2BaseAdLoader.onAdLoadSuc()方法体清空所有广告加载成功回调广告加载成功后的处理逻辑被清空,广告对象不会被创建和分发
3WWV2V.isReady()返回 false自建广告包装层zm.adxsdk 包装层的开屏/插屏/激励视频就绪判断始终返回 false
4LauncherActivity.T0()跳过广告加载,直接跳转主界面开屏广告启动时不再加载任何开屏广告,直接调用 d1() 跳转 MainActivity
5ActiveAppActivity.onCreate()立即 finish()加速/活跃广告页打开后立即关闭
6ReplayAdShowActivity.onCreate()立即 finish()视频回放广告页打开后立即关闭

三、修改原理
  1. 去广告前:
  2.   LauncherActivity.onCreate()
  3.     → f1() → J0() → T0()  ← 加载开屏广告
  4.       → AbstractAds.isReady() → true → 展示广告
  5.       → 广告展示完成 → d1() → 跳转MainActivity
  6. 去广告后:
  7.   LauncherActivity.onCreate()
  8.     → f1() → J0() → T0()  ← 跳过广告加载,直接跳转
  9.       → d1() → 跳转MainActivity
  10.       → finish()
  11.   广告展示时:
  12.     AbstractAds.isReady() → false → 广告不展示
  13.     BaseAdLoader.onAdLoadSuc() → 空方法 → 广告不被处理
  14.     WWV2V.isReady() → false → 自建SDK广告不展示
复制代码

第三部分:修改汇总
文件变更清单
文件/路径操作说明
classes2.dex修改NCall.<clinit>() 添加 try-catch
classes8.dex修改AbstractAds.isReady(), BaseAdLoader.onAdLoadSuc()
classes10.dex修改WWV2V.isReady()
classes2.dex修改LauncherActivity.T0(), ActiveAppActivity.onCreate(), ReplayAdShowActivity.onCreate()
lib/arm64-v8a/libijiami_ijm.so删除爱加密辅助 SO
lib/arm64-v8a/libijm_linker.so删除爱加密核心 SO
lib/arm64-v8a/libkey.so删除密钥相关 SO
assets/ijiami_ijm.VData删除爱加密配置文件

修改效果
场景修改前修改后
首次启动有开屏广告,2-3 秒后进入主界面无开屏广告,直接进入主界面
使用过程弹出插屏/视频广告广告不弹出
信息流浏览列表中出现广告卡片广告卡片空白或不展示
签名校验修改签名后闪退不闪退
启动速度因开屏广告加载慢启动更快

注意事项
  • 必须卸载原版后再安装,签名不一致无法覆盖安装
  • 仅支持 arm64-v8a 架构设备
  • 信息流中的广告占位View可能仍会显示空白区域,但不影响正常使用
  • 应用内部有热修复框架(Meituan Robust),但修改的代码路径不涉及热修复补丁

第四部分:具体修改步骤
环境准备
  • 修改工具:MT MCP (APK 修改工具集)
  • 运行环境:Termux + Android 设备
  • 输出目录:/storage/emulated/0/MT2/mcp/

步骤一:打开 APK
  1. mt_apk_list_available_apks()
  2. mt_apk_open(path="WiFi万能钥匙.apk", temporary=false)
  3.   → workspaceId: cdbsnco2
复制代码
步骤二:打开编辑会话
  1. mt_apk_edit_open(workspaceId="cdbsnco2")
  2.   → editSessionId: bddff661
复制代码
步骤三:去签名校验
3.1 修改 NCall 类,添加 try-catch
  1. mt_apk_read_text(
  2.   workspaceId="cdbsnco2", editSessionId="bddff661",
  3.   locator="dex_method:Lijiami_ijm/NCall;-><clinit>()V"
  4. )
  5. mt_apk_edit_text(
  6.   workspaceId="cdbsnco2", editSessionId="bddff661",
  7.   locator="dex_method:Lijiami_ijm/NCall;-><clinit>()V",
  8.   targetVersion="...",
  9.   edits=[{
  10.     mode: "write_target",
  11.     writeText: ".method static constructor <clinit>()V\n    .registers 1\n\n    :try_start_0\n    const-string v0, "ijiami_ijm"\n\n    invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V\n\n    :try_end_0\n    .catch Ljava/lang/UnsatisfiedLinkError; {:try_start_0 .. :try_end_0} :catch_0\n\n    :catch_0\n    return-void\n.end method"
  12.   }]
  13. )
复制代码
3.2 删除爱加密 SO 文件
  1. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libijiami_ijm.so
  2. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libijm_linker.so
  3. zip -d WiFi万能钥匙.apk lib/arm64-v8a/libkey.so
  4. zip -d WiFi万能钥匙.apk assets/ijiami_ijm.VData
复制代码
步骤四:去广告
4.1 修改 AbstractAds.isReady() → 返回 false
  1. mt_apk_read_text(
  2.   locator="dex_method:Lcom/wifi/business/potocol/sdk/base/ad/AbstractAds;->isReady()Z"
  3. )
  4. → 原始代码: const/4 v0, 0x1 → return v0
  5. mt_apk_edit_text(
  6.   edits=[{mode: "replace_match",
  7.     matchText: "    const/4 v0, 0x1\n\n    return v0\n.end method",
  8.     writeText: "    const/4 v0, 0x0\n\n    return v0\n.end method"}]
  9. )
复制代码
4.2 修改 BaseAdLoader.onAdLoadSuc() → 空方法
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifi/business/potocol/sdk/base/BaseAdLoader;->onAdLoadSuc(Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onAdLoadSuc(Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V\n    .registers 4\n\n    return-void\n.end method"}]
  5. )
复制代码
4.3 修改 WWV2V.isReady() → 返回 false
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/zm/adxsdk/WWV2V;->isReady()Z",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public isReady()Z\n    .registers 2\n\n    const/4 v0, 0x0\n\n    return v0\n.end method"}]
  5. )
复制代码
4.4 修改 LauncherActivity.T0() → 跳过广告,直接跳转
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifitutu/ui/launcher/LauncherActivity;->T0()V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method private final T0()V\n    .registers 2\n\n    invoke-virtual {p0}, Lcom/wifitutu/ui/launcher/LauncherActivity;->d1()V\n    invoke-virtual {p0}, Lcom/wifitutu/ui/launcher/LauncherActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
4.5 修改 ActiveAppActivity.onCreate() → 立即 finish
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifitutu/ui/tools/ad/ActiveAppActivity;->onCreate(Landroid/os/Bundle;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onCreate(Landroid/os/Bundle;)V\n    .registers 3\n    .param p1, "savedInstanceState"    # Landroid/os/Bundle;\n        .annotation build Lorg/jetbrains/annotations/Nullable;\n        .end annotation\n    .end param\n\n    invoke-super {p0, p1}, Lcom/wifitutu/ui/BaseActivity;->onCreate(Landroid/os/Bundle;)V\n    invoke-virtual {p0}, Lcom/wifitutu/ui/tools/ad/ActiveAppActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
4.6 修改 ReplayAdShowActivity.onCreate() → 立即 finish
  1. mt_apk_edit_text(
  2.   locator="dex_method:Lcom/wifi/business/shell/replay/ReplayAdShowActivity;->onCreate(Landroid/os/Bundle;)V",
  3.   edits=[{mode: "write_target",
  4.     writeText: ".method public onCreate(Landroid/os/Bundle;)V\n    .registers 2\n\n    invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V\n    invoke-virtual {p0}, Lcom/wifi/business/shell/replay/ReplayAdShowActivity;->finish()V\n    return-void\n.end method"}]
  5. )
复制代码
步骤五:构建并签名
  1. mt_apk_edit_check(workspaceId="cdbsnco2", editSessionId="bddff661", runBuildChecks=true)
  2. mt_apk_build(workspaceId="cdbsnco2", editSessionId="bddff661", outputName="", overwrite=false)
  3.   → 输出: /storage/emulated/0/MT2/mcp/WiFi万能钥匙_mcp_bddff661_sign.apk
  4.   → 签名: V1 + V2 + V3
复制代码
修改文件分布
DEX 文件修改的类
classes2.dexNCall, LauncherActivity, ActiveAppActivity, ReplayAdShowActivity
classes8.dexAbstractAds, BaseAdLoader
classes10.dexWWV2V


大概就是这样,,,
我帮楼主转换一下看看
回复

使用道具 举报

60

主题

920

回帖

2533

积分

大学生

吹牛逼

Rank: 5Rank: 5

金币
537
好评
14
信誉
102

MT论坛帅哥MT论坛新人考神MT论坛最佳新人

QQ
发表于 2026-7-19 16:44:04 来自手机  | 显示全部楼层  来自 河北
感谢分享
回复

使用道具 举报

0

主题

46

回帖

228

积分

小学生

Rank: 2

金币
129
好评
0
信誉
100
发表于 2026-7-19 17:24:12 来自手机  | 显示全部楼层  来自 福建
看看
回复

使用道具 举报

8

主题

1480

回帖

2901

积分

大学生

Rank: 5Rank: 5

金币
555
好评
1
信誉
100
发表于 2026-7-19 18:13:17 来自手机  | 显示全部楼层  来自 河南
看看分享
回复

使用道具 举报

11

主题

729

回帖

2082

积分

大学生

f

Rank: 5Rank: 5

金币
104
好评
1
信誉
98

MT论坛最佳新人考神MT论坛新人

发表于 2026-7-19 18:15:03 来自手机  | 显示全部楼层  来自 河南
不行吧
回复

使用道具 举报

0

主题

878

回帖

1727

积分

高中生

Rank: 4

金币
346
好评
0
信誉
100
发表于 2026-7-19 20:30:33 | 显示全部楼层  来自 浙江
感谢大佬的分享,过来支持一下!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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