V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ques
V2EX  ›  程序员

APP 抓包问题

  •  
  •   ques · 2018-01-29 10:41:47 +08:00 · 7120 次点击
    这是一个创建于 2526 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 现在好多 app 发现手机有 wlan 代理,就直接抛出异常了,提示网络连接有问题。这就导致根本没法使用代理的方式抓包。
    2. 虽然使用 Wireshark 可以从网卡抓取,但是对于 HTTPS 好像并没有什么用,加密数据也解析不了,求助大神还有啥好的方法不
    33 条回复    2018-06-26 17:07:04 +08:00
    qwjhb
        1
    qwjhb  
       2018-01-29 10:55:43 +08:00
    在家里的话 手机不是可以连自己的路由么
    locoz
        2
    locoz  
       2018-01-29 11:33:00 +08:00
    试试 Packet Capture 之类的?
    ques
        3
    ques  
    OP
       2018-01-29 12:23:47 +08:00
    @qwjhb 这个可以解决 https 证书的问题吗 没用过这个
    ques
        4
    ques  
    OP
       2018-01-29 12:25:14 +08:00
    @locoz 没用过这个 刚初步试了下 好像真可以哎 我再具体研究下 多谢多谢
    junbaor
        5
    junbaor  
       2018-01-29 12:52:12 +08:00   ❤️ 3
    最近发现的,很好的一款抓包工具 https://github.com/avwo/whistle
    usedname
        6
    usedname  
       2018-01-29 13:00:30 +08:00
    卧槽,app 发现手机有 wlan 代理,就直接抛出异常 ?厉害了,这大概也是我赵国特色吧
    ques
        7
    ques  
    OP
       2018-01-29 13:01:32 +08:00
    @junbaor 看说明还不错,但是我看还是要设置代理才可以,并不满足我的需求。 不过还是多谢推荐,啥时候试用下。
    exp1ore
        8
    exp1ore  
       2018-01-29 13:03:56 +08:00
    thor 试试看
    v2410117
        9
    v2410117  
       2018-01-29 13:27:29 +08:00
    用 Charles+官方的 https 证书,可以抓包查看 Https 数据,或者用楼上说的 thor(要给钱)
    ctsed
        10
    ctsed  
       2018-01-29 13:29:38 +08:00 via Android
    postern proxdroid 了解一下
    xio
        11
    xio  
       2018-01-29 13:35:25 +08:00
    1. 你这个应该是属于 https certificate pinning 导致的。
    2. 你需要 MitM
    pyfan
        12
    pyfan  
       2018-01-29 14:08:33 +08:00
    防代理就是判断 host 和 port,返回 host 和 port 不为空抛出异常,反编译 apk,找到判断代理的代码,将 host 和 port 随便设置个值,重新打包
    iwtbauh
        13
    iwtbauh  
       2018-01-29 14:23:58 +08:00 via Android   ❤️ 1
    还有更麻烦的
    代理抓包对于直接建立 socket 没用。如果 App 直接用 socket 发送网络请求设置 HTTP 代理丝毫没有用
    如果 App 不使用系统的证书库,而是将公钥证书硬编码进 App (参考老版本 chrome 绑定 Google 公钥证书发现 CNNIC 签发 Google 域名的证书这一安全事件)。这时候只能反编译 App 否则根本没法抓包
    chroming
        14
    chroming  
       2018-01-29 14:27:28 +08:00 via Android
    路由器抓包,可以设置路由转发到你本机的 charles 或 fiddler
    darksand
        15
    darksand  
       2018-01-29 15:45:09 +08:00
    没遇到过,学习一下
    hyyou2010
        16
    hyyou2010  
       2018-01-29 17:03:25 +08:00
    估计是查看 https 证书而不是检查 wlan 有没有代理
    qsnow6
        17
    qsnow6  
       2018-01-29 17:12:41 +08:00
    ios 好像还没遇到挂 proxy 直接抛出异常的
    ltux
        18
    ltux  
       2018-01-29 17:26:40 +08:00 via Android
    服嘞,就算他不抛出异常你也不可能解密 https 呦
    SingeeKing
        19
    SingeeKing  
       2018-01-29 17:28:39 +08:00
    除了网银我还没见到过不能挂代理的。。。

    Surge + MitM 试试
    ChristopherWu
        20
    ChristopherWu  
       2018-01-29 17:34:58 +08:00   ❤️ 1
    @iwtbauh 像我这个小工具的奇技淫巧有用吗?(把 arm 的 tcpdump 直接打进去跑)

    https://github.com/YongHaoWu/AndroidNetMonitor

    顺道借路问问,目前有类似的 app 用这样的做法吗?
    BXLR
        21
    BXLR  
       2018-01-29 17:46:37 +08:00
    哪个 app
    TimePPT
        22
    TimePPT  
       2018-01-29 18:06:33 +08:00
    @iwtbauh 公钥证书硬编码进 App 这个遇到过一次,简直要哭死
    iwtbauh
        23
    iwtbauh  
       2018-01-29 18:20:12 +08:00 via Android   ❤️ 1
    @ChristopherWu 如果是 tcpdump 的话,对硬编码证书不行的,但可以抓 socket
    硬编码证书是某个 app 只信任某一个他们自己签发的证书,导入证书抓 https 的方法就不行了,只能反编译
    hyyou2010
        24
    hyyou2010  
       2018-01-29 19:24:24 +08:00
    socket 也可以硬塞证书吧
    sobigfish
        25
    sobigfish  
       2018-01-29 19:35:58 +08:00
    @v2410117 #9 Charles 只能从他们网站下他们自己签的(而不是本地) 所以。。。
    txx
        26
    txx  
       2018-01-29 23:54:23 +08:00
    1. Surge 3.0 直接 app 开 中间人证书
    2. Charles 代理开证书
    3. AOP 编程,用 Xposed / cydia substrate 直接 hook 网络请求,打印出来。
    ques
        27
    ques  
    OP
       2018-01-30 10:44:25 +08:00
    @ctsed proxdroid 使用过不可以的,还是能被识别出来。
    @txx 因为是 Android 所以 1 没法验证,Charles 类似 fiddler 把,fiddler 是不行的,浏览器的 https 请求可以正常捕捉,我试的这个 app 不行。 麻烦能简单说下 3 么,是要自己编码,还是有现成模块,网上搜的没看明白。
    txx
        28
    txx  
       2018-01-30 12:22:42 +08:00
    @ques 当然要自己写代码啦... 说白了就是 Hook 网络请求的 API 直接把传入的参数打印出来。
    bitlaoyuan
        29
    bitlaoyuan  
       2018-01-30 14:25:16 +08:00
    亚马逊的 app 就是这样,不服的可以试试
    xi_lin
        30
    xi_lin  
       2018-02-01 16:46:06 +08:00
    whistle 真的好用,主要是配置简单
    xi_lin
        31
    xi_lin  
       2018-02-01 16:46:54 +08:00
    不过 lz 说的不支持代理的话只剩 vpn 可以试试了,像上面说的 surge
    gylearner
        32
    gylearner  
       2018-06-26 16:45:19 +08:00
    请问楼主,遇到相同问题,最后解决了么?
    ques
        33
    ques  
    OP
       2018-06-26 17:07:04 +08:00
    @gylearner 我要抓取 APP,用二楼说的 Packet Capture 可以抓到包。你可以试下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:10 · PVG 23:10 · LAX 07:10 · JFK 10:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.