吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9841|回复: 47
收起左侧

[Android 原创] 利用Hook技术实现对Instagram的抓包

  [复制链接]
十一七 发表于 2021-4-25 22:36
本帖最后由 十一七 于 2021-4-26 19:57 编辑

前言

听别人说Instagram没法抓包,于是这篇文章诞生了。

Instagram的防护做的很好,自己实现了一层SSL,直接过掉了r0capture等一些常见的工具,既然大佬的轮子用不了,那就只能自己动手了。

分析样本:Instagram 184.0.0.30.117

思路

使用反编译工具导入,发现对变量名进行了混淆,先捋一下思路:

抓不到包,看不到关键字,那就只能根据经验猜测字段了,APP有登录功能,尝试搜索常见的API名称 loginlogin/login""login""login 。定位到URI的处理点在附近查看有没有关于协议头,URL和HTTP的处理。找到底层Send函数,Hook,拿到HTTP报文。

定位迷途

一番查找之后,初步断定URI的处理在X.6s1

45796a2342d262c63b655f4ce0a7ea27.png

这里的参数生成的过程及算法暂时不去管,先抓到包才是首要的~

通过参数r3,追到了X.0uU,翻看之后看到了一堆像是协议头的操作

0356dfb9c029aa1703f3e01e14ec5931.png

又发现了https链接的格式化,Hook试了试,URL就出来了。

601302481ddf62a44c1d51df9285c974.png

之后线索就断了,堆栈回溯看了都没什么发现,突破点是在查看交叉引用向上找,在X.222.A7c,发现了一个用于打印错误的函数。

b3b8d59818e17cb503c2fa519caaf586.png

本着死马当活马医的想法,搜了一下builder.,发现了可疑点

f78ebddde2ece72ef0ae6296bab92963.png

跟进去看,尝试Hook了一下,调用到了这个类

fa157cf4396d67c9bfac1f68535357b5.png

再Hook看了看调用的A02方法,看看有没有找歪~

19df90a60e4050faec7ecf24e132e095.png

既然没找错,看A02方法,发现JADX反编译不出来,换用GDA。

f266cc0e4df97c889d48eb749f0576ba.png

明显的协议头,明显的http,引用了apache开源的HTTP框架

7dff15220ac5e613bea299c51f067f3b.png

executeWithDefragmentation调用了sendHeadersWithBodyAndEom

3f231760682fd5c54c79de33d5233747.png

继续往下看

4aec7bac4911705be36a5b38286d17ab.png

已经到底了...再往下就是Native,再追下去没什么意义,所以下面就是最终的Hook了~

HOOK打印HTTP报文

综上分析,只需要Hook com.facebook.proxygen.JniHandler.sendHeadersWithBodyAndEom 就能得到包数据了。

google了一下org.apache.http的源码:org.apache.http - Google

function getClassName(obj) {
    const objClass = Java.use("java.lang.Object").getClass.apply(obj);
    return Java.use("java.lang.Class").getName.apply(objClass);
}
function getNetPack() {
    Java.perform(function(){
        var jString = Java.use("java.lang.String");
        var jHttpMessage = Java.use("org.apache.http.HttpMessage");
        var JniHandler = Java.use("com.facebook.proxygen.JniHandler");
        var jBasicHeader = Java.use("org.apache.http.message.BasicHeader");
        JniHandler.sendRequestWithBodyAndEom.overload('org.apache.http.client.methods.HttpUriRequest', '[B', 'int', 'int').implementation = function(jHttpUriRequest,bArr,i,i2){
            console.log("\n-------------------------Headers-------------------------\n");
            console.log(jhttpUriRequest.getURI() + "\n");
            var headers = Java.cast(jhttpUriRequest, jHttpMessage).getAllHeaders();
            for(var i = 0; i < headers.length; i++) {
                if (getClassName(headers[i]) === "org.apache.http.message.BasicHeader") {
                    console.log(Java.cast(headers[i], jBasicHeader).toString());
                } else {
                    console.log(headers[i].toString());
                }
            }
            console.log("\n" + jString.$new(bArr) + "\n");
            return this.sendRequestWithBodyAndEom(jHttpUriRequest,bArr,i,i2);
        }
    })
}
setImmediate(function(){
    setTimeout(getNetPack,10);
})

1dbe159d8ddde227a078bbe8ff71af20.png

你以为就这样完了?

没错,就这样完了。response暂时没找到简单的办法去Hook,先咕咕咕了

题外话

看了看enc_password的加密,看起来是RSA+AES-GCM,满心欢喜。

仔细一看native层调用,动态加载so… dump出来一看是vmp,mmp…

免费评分

参与人数 22威望 +1 吾爱币 +38 热心值 +20 收起 理由
正己 + 3 + 1 MasOn大佬tqlllll!!!
pinhai + 1 谢谢@Thanks!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
那一年的白洁啊 + 1 + 1 热心回复!
原来是大飞哥啊 + 1 + 1 还是屌
笙若 + 1 + 1 谢谢@Thanks!
nishidagea + 1 热心回复!
HongHu106 + 1 + 1 热心回复!
不会逆向 + 1 + 1 谢谢@Thanks!
shudong2021 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
我的小鱼干 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
nws0507 + 1 + 1 谢谢@Thanks!
MXGT + 1 我很赞同!
wuti90 + 1 + 1 用心讨论,共获提升!
yuqc + 1 + 1 谢谢@Thanks!真的牛
Ah0NoR + 1 + 1 谢谢@Thanks!
2dx3906 + 1 + 1 谢谢@Thanks!
c_chenf + 1 谢谢@Thanks!
ancientry + 1 想做个ins的app数据爬取,可以接受外包吗?QQ1274135463
nullable + 1 热心回复!
moriz + 1 谢谢@Thanks!
zecore + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

头像被屏蔽
ancientry 发表于 2021-4-26 08:59
提示: 该帖被管理员或版主屏蔽
Poorwood 发表于 2023-1-13 18:33
要是只是单纯的想要图片的话,推荐走web 爬虫更方便抓数据。如果是挑战apk的话,那就当我没说了哈
summer398 发表于 2021-4-25 22:45
不苦小和尚 发表于 2021-4-25 22:48
学习了,以前一直没用过GDA,下次试试
超人强 发表于 2021-4-25 22:53
burpsuite能抓吗?
wangxd 发表于 2021-4-25 23:40
精髓。厉害厉害
zecore 发表于 2021-4-26 00:01
厉害了,学习
不一般 发表于 2021-4-26 00:11
大牛厉害
夜泉 发表于 2021-4-26 00:52
最后我看笑了,,,哈哈,,卖麻批~~

xixicoco 发表于 2021-4-26 02:06
支持啊,大佬就是牛逼
china08 发表于 2021-4-26 05:38
思路清晰
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 12:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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