【实战】MT管理器全程搞定某视频APP!SSL绕过+VPN检测拦截全流程(附配图建议+Smal...

查看 70|回复 9
作者:loveppya   
一、SSL证书绕过(搜 verify 精准定位)
[ol]
  • 进入DEX编辑器++
    打开MT→找到海狗视频APK→点击APK→选「Dex编辑器++」→全选所有 classes*.dex (多DEX必须全选,否则漏改!)。
  • 搜索关键方法 verify
    点右上角搜索→输入 verify →搜索类型选「方法名」→确定。
  • 定位 okhttp3.OkHttpClient 构造方法
    在结果中找 okhttp3 包下的 OkHttpClient ,打开其 构造方法。
  • 注入绕证书代码
    在 return-void 前插入:
    smali
    [/ol]
    new-instance p1, Lokhttp3/TrustAllCerts;
    invoke-direct {p1}, Lokhttp3/TrustAllCerts;->()V
    if-eqz p1, :cond_16e
    check-cast p1, Ljavax/net/ssl/X509TrustManager;
    iput-object p1, p0, Lokhttp3/OkHttpClient;->x509TrustManager:Ljavax/net/ssl/X509TrustManager;
    new-instance p1, Lokhttp3/TrustAllHostnameVerifier;
    invoke-direct {p1}, Lokhttp3/TrustAllHostnameVerifier;->()V
    if-eqz p1, :cond_16e
    iput-object p1, p0, Lokhttp3/OkHttpClient;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
    iget-object p1, p0, Lokhttp3/OkHttpClient;->sslSocketFactoryOrNull:Ljavax/net/ssl/SSLSocketFactory;
    if-eqz p1, :cond_16e
    iput-object p1, p0, Lokhttp3/OkHttpClient;->sslSocketFactoryOrNull:Ljavax/net/ssl/SSLSocketFactory;
    :cond_16e
  • 新建配套工具类
    在 okhttp3 目录下新建两个文件:
  • TrustAllCerts.smali :
    smali

    [/ol]
    .class public final Lokhttp3/TrustAllCerts;
    .super Ljava/lang/Object;
    .implements Ljavax/net/ssl/X509TrustManager;
    .method public checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    .registers 3
    return-void
    .end method
    .method public checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    .registers 3
    return-void
    .end method
    .method public getAcceptedIssuers()[Ljava/security/cert/X509Certificate;
    .registers 1
    const/4 v0, 0x0
    new-array v0, v0, [Ljava/security/cert/X509Certificate;
    return-object v0
    .end method
    .end class
  • TrustAllHostnameVerifier.smali :
    smali

    .class public final Lokhttp3/TrustAllHostnameVerifier;
    .super Ljava/lang/Object;
    .implements Ljavax/net/ssl/HostnameVerifier;
    .method public verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
    .registers 3
    const/4 v0, 0x1
    return v0
    .end method
    .end class
    二、VPN检测绕过(搜“VPN”字符串)
    [ol]
  • 搜索“VPN”关键词
    点右上角搜索→输入 VPN →搜索类型选「字符串」→确定。
  • 定位检测逻辑
    在结果中找弹出“网络异常,请关闭VPN”的Toast代码,例如:
    smali
    [/ol]
    const-string/jumbo v0, "网络异常,请关闭VPN后重试"
    invoke-static {v0}, Lcom/blankj/utilcode/util/ToastUtils;->v(Ljava/lang/CharSequence;)V
  • 删除检测并强制跳转
    将Toast代码删除,在检测方法后加 goto :cond_xx ( xx 为原正常逻辑标签),例如:
    smali
    [/ol]
    invoke-static {p0}, Lcom/other/s;->a(Landroid/content/Context;)Z
    move-result v0
    goto :cond_37  # 强制跳正常逻辑,不检测
    三、保存编译+测试
  • 改完所有dex后,点右上角保存→MT自动编译并签名→安装测试。
  • 效果:抓包能拿到M3U8链接(如 http://xs85.ruxiangsuisu.cn/vod/m3u8/... ),开VPN也能正常播放。

    四、避坑总结
  • 多DEX必须全选,否则漏改逻辑!
  • 搜索关键词要灵活, verify 、 VPN 、 TrustManager 都试试。
  • 代码缩进和寄存器别冲突,MT编译报错就回去检查。

    逻辑, 代码

  • loveppya
    OP
      

    手机发帖不好操作 第一次
    homehome   

    图没有插入,看下编辑上传一下截图。
    loveppya
    OP
      

    看了这个APP的介绍,不感兴趣,但是支持楼主的成果
    anorith   


    Hmily 发表于 2025-9-26 18:19
    图没有插入,看下编辑上传一下截图。

    我看看 手机上不好操作
    javajs52   

    感谢分享,又学到了知识
    loveppya
    OP
      

    mt管理器用开通会员吗?
    可以上传图片吗。
    loveppya
    OP
      


    Hmily 发表于 2025-9-26 18:19
    图没有插入,看下编辑上传一下截图。

    没找到咋重新编辑了 手机上
    Piz.liu   


    javajs52 发表于 2025-9-26 18:50
    mt管理器用开通会员吗?
    可以上传图片吗。

    不用会员 我手机上不好操作 第一次发帖 都不知道咋重新编辑
    javajs52   


    javajs52 发表于 2025-9-26 18:50
    mt管理器用开通会员吗?
    可以上传图片吗。

    改东西好像是要会员的
    您需要登录后才可以回帖 登录 | 立即注册