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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5693|回复: 35

[Android 原创] 记一次 Hook 与 抓包

  [复制链接]
junkboy 发表于 2018-12-7 01:24

记一次 Hook 与 抓包

网友说有个 APP 直接去抓包抓不着,于是我又可以水一篇。

用了 sslkiller 也没有报网络错误;  

  • 可见不是 SSL Pinning,猜测只是没走代{过}{滤}理。

日志中暴露了关键字;   

  • 可以用来快速定位。

下载,反编译,kkp

利用朋友提供的、日志中暴露的关键字定位到网络请求的位置,发现 cz.msebera.android.httpclient   

谷歌发现好像是对 android-async-http 的一种封装(?)  

不管它是什么吧,走进去发现会 new 了一个 com.loopj.android.http.AsyncHttpClient

这个就很眼熟了,直接搜 proxy 发现:

    public void setProxy(String arg4, int arg5) {
        this.httpClient.getParams().setParameter("http.route.default-proxy", new HttpHost(arg4, arg5));
    }

这还有什么好说的,hook 之,然后在构造之后反射调用 setProxy,让它走我需要的代{过}{滤}理。

这里又有一个问题,我们知道这些乱七八糟多种多样的 httpClient 通常默认都要校验证书,那就继续尝试搜 cert,发现:

    private static SchemeRegistry getDefaultSchemeRegistry(boolean arg5, int arg6, int arg7) {
        if(arg5) {
            AsyncHttpClient.log.d("AsyncHttpClient", "Beware! Using the fix is insecure, as it doesn\'t verify SSL certificates.");
        }

        if(arg6 < 1) {
            arg6 = 80;
            AsyncHttpClient.log.d("AsyncHttpClient", "Invalid HTTP port number specified, defaulting to 80");
        }

        if(arg7 < 1) {
            arg7 = 443;
            AsyncHttpClient.log.d("AsyncHttpClient", "Invalid HTTPS port number specified, defaulting to 443");
        }

        SSLSocketFactory v0 = arg5 ? MySSLSocketFactory.getFixedSocketFactory() : SSLSocketFactory.getSocketFactory();
        SchemeRegistry v1 = new SchemeRegistry();
        v1.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), arg6));
        v1.register(new Scheme("https", ((SocketFactory)v0), arg7));
        return v1;
    }

Beware! Using the fix is insecure, as it doesn\'t verify SSL certificates.   

???太直白啦,那就让这个参数一直传入 true 好了,(其实看代码可以知道 false 的时候会调用 SSLSocketFactory.getSocketFactory,用 justtrustme 之类的工具也可以过掉)。

打开 AS 撸代码吧:


            Class<?> cls = XposedHelpers.findClass("com.loopj.android.http.AsyncHttpClient", lpparam.classLoader);
            Log.e(TAG, cls.toString());

            XposedBridge.hookAllConstructors(cls,
                    new XC_MethodHook() {
                        protected void afterHookedMethod(XC_MethodHook.MethodHookParam mhparam) throws Throwable {
                            super.afterHookedMethod(mhparam);
                            de.robv.android.xposed.XposedHelpers.callMethod(mhparam.thisObject, "setProxy",
                                    "192.168.125.2",
                                    8888
                            );
                        }
                    }
            );

            //getDefaultSchemeRegistry
            Class[] cArgs = {boolean.class, int.class, int.class};
            Method m = cls.getDeclaredMethod("getDefaultSchemeRegistry", cArgs);
            m.setAccessible(true);
            Log.e(TAG, m.toString());

            XposedBridge.hookMethod(m, new XC_MethodHook() {
                protected void beforeHookedMethod(XC_MethodHook.MethodHookParam mhparam) throws Throwable {
                    super.beforeHookedMethod(mhparam);
                    mhparam.args[0] = true;
                }
            });

安装上测试,成功√  

这里的闻不是听,是闻到隔壁炖的鸡汤好香啊。

肚子好饿啊早知道不学Android逆向了.jpg   

下载.jpg

总结

很简单的过程,希望能帮到入门的朋友,下期再见

免费评分

参与人数 9吾爱币 +20 热心值 +7 收起 理由
cnmsh + 1 感谢您的宝贵建议,我们会努力争取做得更好!
qtfreet00 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
生如上善若水 + 1 + 1 谢谢@Thanks!
时光/荏苒 + 1 + 1 我很赞同!
F时光机 + 1 热心回复!
oranges + 1 + 1 谢谢@Thanks!
c00kie + 1 + 1 热心回复!
mscsky + 1 + 1 我很赞同!
一个板栗 + 1 + 1 谢谢@Thanks!

查看全部评分

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

唯有的知己 发表于 2018-12-7 20:13
求大佬教我怎么抓取自己家的IPTV播放源, 网上找遍了好多方法都不适合  
wangxd 发表于 2019-1-2 04:58
8taizi 发表于 2018-12-10 14:23
方便给点tips吗?我就是脚本里验证的包抓不到


我一直很好奇 大家抓包为什么这样麻烦 我都是直接截模拟器的 send 和recv
一个板栗 发表于 2018-12-7 07:53
xgxxx 发表于 2018-12-7 08:06
学习一下。。
幻象 发表于 2018-12-7 08:36 来自手机
能透露一下哪个软件吗?想跟着楼主做一下
nizhenyoumo 发表于 2018-12-7 08:37
学习了  虽然看不懂  
tonmy007 发表于 2018-12-7 08:43
小白完全看不懂代码
ericqi 发表于 2018-12-7 08:53
感谢分享
8taizi 发表于 2018-12-7 09:19
按键精灵的授权包用这方法抓不到
lang0721 发表于 2018-12-7 09:35
谢谢@Thanks!可惜看不懂
wubo777 发表于 2018-12-7 09:45
学习一下。大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

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

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

GMT+8, 2019-5-26 09:19

Powered by Discuz!

© 2001-2017 Comsenz Inc.

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