吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 35769|回复: 75
收起左侧

[Android 原创] 2018-12-16-绕过麻花影视抓包检测(完成)

  [复制链接]
febsky 发表于 2018-12-24 13:45
本帖最后由 febsky 于 2019-1-2 17:57 编辑

目的:能够用Charles或者fiddler抓包

因为版主说文章发的太分散了,所以整理了一下放到里第一片里面,这个系列也不再单独更新 首页地址

本来想抓包看看他的api请求,然后分析api加密和参数等问题呢,结果挂上Charles之后竟然界面没有数据并且 Toast 提示 请关闭代{过}{滤}理重试

我能猜测到的引起这种现象的有两种情况:1,证书不匹配,项目固定了证书,或者服务端对客户端证书进行了验证;2,项目里面有代{过}{滤}理检测

进一步猜测并测试,我们再尝试一个别的代{过}{滤}理。用手机上的app,packet capture尝试一下结果竟然可以访问,而且也能够抓到数据。所以猜测证书引起的可能性不大。

并且它Toast 提示 请关闭代{过}{滤}理重试。这一行提示出卖了他。说明他知道我挂了代{过}{滤}理,那么它里面很有可能进行了网络代{过}{滤}理检测。

网上搜一下判断当前wifi是否使用了代{过}{滤}理的基本方法,都是下面这段代码:

public static boolean isWifiProxy() {
    final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    String proxyAddress;
    int proxyPort;
    if (IS_ICS_OR_LATER) {
        proxyAddress = System.getProperty("http.proxyHost");
        String portStr = System.getProperty("http.proxyPort");
        proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
    } else {
        proxyAddress = android.net.Proxy.getHost(context);
        proxyPort = android.net.Proxy.getPort(context);
    }
    return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}

jadx 全局搜索 System.getProperty("http.proxyHost");

得到 com.mh.movie.core.app.i

//不就是特么这个方法吗、
    private boolean a(Context context) {
        CharSequence property;
        int parseInt;
        if ((VERSION.SDK_INT >= 14 ? 1 : null) != null) {
            property = System.getProperty("http.proxyHost");
            String property2 = System.getProperty("http.proxyPort");
            if (TextUtils.isEmpty(property2)) {
                property2 = "-1";
            }
            parseInt = Integer.parseInt(property2);
        } else {
            String host = Proxy.getHost(context);
            parseInt = Proxy.getPort(context);
            property = host;
        }
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("proxyAddress : ");
        stringBuilder.append(property);
        stringBuilder.append(", port : ");
        stringBuilder.append(parseInt);
        Log.i("checkWifiProxy", stringBuilder.toString());
        if (TextUtils.isEmpty(property) || parseInt == -1) {
            return false;
        }
        return true;
    }

直接修改 .class public Lcom/mh/movie/core/app/i; 里面的代码为,直接返回false就行了,表明没有是用代{过}{滤}理:

.method private a(Landroid/content/Context;)Z
    .locals 7

    const/4 v1, 0x0

    return v1
.end method

本来以为事情到这里就结束了,但是,TMD 、虽然能访问网络,但是抓不到包,抓不到包。。。。。why?

对于一些常用的网络库,其实是提供了我们设置的代{过}{滤}理的接口,我们只需要将其设置成无代{过}{滤}理的模式,它就不会去应用系统默认的代{过}{滤}理了。

就拿比较常用的 OkHttp 来举例,在初始化的时候,就可以通过 proxy() 方法,为 OkHttp 设置一个代{过}{滤}理。

var httpBuilder = OkHttpClient.Builder() 
                .addInterceptor(defaultInterceptor()) 
                .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) 
                .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) 
                .readTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) 
                .proxy(Proxy.NO_PROXY) 

全局搜索Proxy.NO_PROXY 这个玩意,都删了。

其实最后锁定到
是这个com.jess.arms.b.b.f 类里面的设置引起,但是目前我也没有办法直接锁定到这个类,因为这个项目用了Dagger 。我尝试出来的,jadx 全局搜索一共就是四五处用到这个NO_PROXY 的地方。然后一个个的改,而这个类最复杂,我放到最后才改。结果发现是这个类影响的。

好了终于可以,终于可以能够抓到包了。

总结一下,他这里的抓包防护总共有两处1,检查是不是用了Http代{过}{滤}理,如果是,那么客户端不再发送网络请求,2,通过Okhttp 设置默认代{过}{滤}理,那么就不会走我们的Charles代{过}{滤}理了。设计很精巧

免费评分

参与人数 17吾爱币 +18 热心值 +15 收起 理由
ttdota + 1 用心讨论,共获提升!
小白呆 + 1 我很赞同!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
无的世界零 + 1 + 1 用心讨论,共获提升!
天羽 + 1 热心回复!
莫奇 + 1 + 1 谢谢@Thanks!
wale + 1 + 1 热心回复!
黑猫探长 + 1 + 1 热心回复!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
keLink + 1 我很赞同!
「青」 + 1 谢谢@Thanks!
lookerJ + 1 谢谢@Thanks!
a2634008 + 1 + 1 热心回复!
Mr.mao + 1 + 1 谢谢@Thanks!
awzs7758520 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
wuzhigui + 1 + 1 我很赞同!
Ishmeal_zwj + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

五月何欢 发表于 2018-12-24 14:55
麻花难得的良心了,,没有那种不良广告,界面也算是清爽,这点还是能忍,毕竟要吃饭,生存。
狂暴补师亚丝娜 发表于 2018-12-26 11:15
yunruifuzhu 发表于 2018-12-25 17:32
我看过,它这个可以抓到包,但播放视频的时候就抓不到了。m3u8的加密视频      http://yunruiml.cn/com.o ...

已分析。
视频接口:
GET //mov/browse?movId=108939&version=v2&server=http%3A%2F%2Fapi1.jinsuiyumi.com%2F&url=mov%2Fbrowse HTTP/1.1
Cookie: JSESSIONID=50EC15A54B8723C725E251519BDF025E
X-Auth-Key: 368480924a6c78e2e8681551a7cf4c21
flowId: d6479aa9-fa48-4690-a67f-11aecdb20d911545793630617
X-Auth-Nonce: 88127698
Version: 114002201
Ip: 10.0.3.15
Response-Content-Type: application/json
Seq: 2953087ced728c6bda082C30mC3WuEJKvDpG
X-Auth-TimeStamp: 1545793630617
X-Auth-Sign: 9g7EdKcsiEyATA7d25va7Juz0rA%3D
User-Agent: Dalvik/2.1.0 (Linux; U; Android 6.0.1; MuMu Build/V417IR)
Host: api1.jinsuiyumi.com
Connection: Keep-Alive
Accept-Encoding: gzip, deflate


播放地址:
http://php.gamexbk.com/video/42/1sdde00470/93bef1sdde00470_360P.m3u8


播放地址加密了,解析ts为:
http://php.gamexbk.com/video/42/1sdde00470/93bef1sdde00470_360P_TS/1sdde00470_360P_0000.ts


最后的0000改成0001又是一个新的ts~~~自行写脚本跑就可以了
star321123 发表于 2018-12-24 14:25
看不懂,大佬把麻花的视频地址搞出来能播放那就美滋滋了
Hmily 发表于 2018-12-24 14:29
@febsky 要是讨论贴就发讨论区,如果是同样类型的分享,你就合并到一个帖子就行了别刷一堆主题,把这个帖子内容编辑到之前的,然后回复我,我给你删除这个。
狂暴补师亚丝娜 发表于 2018-12-24 15:05
本帖最后由 狂暴补师亚丝娜 于 2018-12-24 15:11 编辑

感谢楼主告知APP,为了答谢楼主,送麻花影视海王接口一份:

接口如下:GET /api/app/video/ver2/user/clickPlayVideo_tv/7/1450?videoId=100856&time=1545634798226 HTTP/1.1
Content-Type: application/json
Accept: application/json
accessToken: f1c8cc0689c442fb1fad6ae6e8f0db195e42652273f257a8519a863da2a8e0b8
X-Client-NonceStr: TfibHpw33t
X-Client-IP: 127.0.0.1
X-Client-TimeStamp: 1543592259810
X-Client-Version: 1.0.1
X-Client-Sign: 0a9e3fb9a7b2c3dd6fdda9d33bc2cf7480827952891d1d8bfb682b4aeb63f13f
X-Auth-Token: mb_token:25361603:b22edbb38c1f8474bcb64a3165a2b079
X-Client-Token:
Host: api.zztxwj.com
Connection: Keep-Alive
User-Agent: okhttp/3.10.0
Accept-Encoding: identity

直接用fiddler,get一下,拿到json过后拼接即可。
如:
http://v.yimohui2017.com/v2/m_20 ... 1fe8b623_1080P.m3u8

后续:
区区一个麻花影视的本地代{过}{滤}理,证书绑定,不足以让人畏惧。

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
眷恋 + 2 + 1 66666666666666666

查看全部评分

狂暴补师亚丝娜 发表于 2018-12-24 15:14
star321123 发表于 2018-12-24 14:25
看不懂,大佬把麻花的视频地址搞出来能播放那就美滋滋了

楼下 发布
罗茂松 发表于 2018-12-24 15:21
谢谢分享,太好了,试试
PJGeek 发表于 2018-12-24 15:30
都是能人 看不明白 太高深了属于 哪方面的内容
zhouminglong 发表于 2018-12-24 15:46
看不懂,玩不转!!!!
 楼主| febsky 发表于 2018-12-24 15:48
Hmily 发表于 2018-12-24 14:29
@febsky 要是讨论贴就发讨论区,如果是同样类型的分享,你就合并到一个帖子就行了别刷一堆主题,把这个帖子 ...

抱歉哈,我没搞懂这些区到底怎么分的,我感觉是技术分享,怎么能是讨论帖呢?而且,每一篇是不同的技术点,合并到一篇文章里面怎么看?

点评

分段写,你这一个文章也不长,完全可以搞成xxx分析,然后第一段抓包检测,第二段xxxx这样,搞这么分散反而不好阅读。  详情 回复 发表于 2018-12-24 15:59
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 18:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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