手机 APP 上面的内容 python 有办法抓取到吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
/span> Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sun1534
V2EX    Python

手机 APP 上面的内容 python 有办法抓取到吗?

  •  
  •   sun1534 2014-07-01 10:39:33 +08:00 17304 次点击
    这是一个创建于 4123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    微信、秘密这些手机端上面生成的内容,有办法抓取吗?
    我想做一个程序,抓取手机APP上面更新的内容,然后发送到邮箱
    15 条回复    2017-04-26 20:53:26 +08:00
    pythoner
        1
    pythoner  
       2014-07-01 10:46:42 +08:00   1
    可以,但是不提倡这种行为
    1,在手机上设置代理,代理到你的电脑上
    2,再在电脑上用tcpdump或者其他图形化的抓包工具获得数据包,分析这些数据包找到你要的数据
    3,根据前两步的结果,写代码模拟app的操作获得你需要的数据
    sun1534
        2
    sun1534  
    OP
       2014-07-01 10:50:14 +08:00
    @pythoner 不这样不行啊 对方提交的服务 数据只是在APP上面展示 没有WEB展示页面
    pythoner
        3
    pythoner  
       2014-07-01 11:00:17 +08:00
    @sun1534
    为何不行?

    web页面只是因为服务器返回了Html而已
    app里面有可能返回的是json格式数据,或者一堆加密过的数据
    本质都是一样:数据包
    multiple1902
        4
    multiple1902  
       2014-07-01 11:06:20 +08:00   6
    严格地说技术上可以不可以,是可以的。实践中可以不可以,不一定。

    比如楼上提到的截取网络通信学习接口格式的方法,如果 app 在传输时用了 TLS,那你抓到的内容就没法解密。有没有办法绕过呢?有的,你可以用 TLS 中间人攻击,如果 app 会检查证书那就替换 App 里的证书。

    在 general 一点,app 无论是显示什么东西,都是通过代码完成的,而这个代码可能是底层的 ARM 汇编,也可能是 Java 字节码,都在你手机上。你是汇编达人的话,当然通过阅读汇编代码可以 *完全* 知道这个程序在干什么。完全吗?也不完全,因为你能看懂每行汇编,不代表你能理解它们连起来的含义。

    所以你其实总能看到某种形式的源代码,技术上说你当然可以模仿它的行为。但是考虑到成本和收益,基本很少有人这么做。
    mac2man
        5
    mac2man  
       2014-07-01 11:10:56 +08:00
    @multiple1902 这个回复才是靠谱的 点赞
    viila
        6
    viila  
       2014-07-01 11:13:49 +08:00
    java与c#的反编译代码已经十分友好,可以反编译后给向外暴露接口。
    当然这个跟python没关系。
    sun1534
        7
    sun1534  
    OP
       2014-07-01 11:35:12 +08:00
    @multiple1902 这样一说,我明白了,不过比我预期的复杂很多很多
    其实我最初的想法很简单,最近在学PYTHON,想找个想法练手
    我想自动抓取手机APP(比如 秘密)上面更新的内容,
    然后将抓取到的内容自动更新到微博上面。
    multiple1902
        8
    multiple1902  
       2014-07-01 11:46:25 +08:00
    想法其实挺好的,作为练手的题目也不错。我的建议是试试,比如抓包之类的方法都可以试试,如果用了 TLS 连接那可以试试做 MITM 攻击来截取,说不定人家程序里没有检验证书呢。

    我主要是想说,这种问题没有通用的简单方法。针对某个突破口的简单方法那就不通用。你可以看看这个程序整个环节里有没有什么比较薄弱的地方,作为练习哪怕失败了也能学到东西。此外,在加密解密这块,想要加密到让你没法轻易解密,还是比较容易的。我不是单说密码学上的加密解密。
    dianso
        9
    dianso  
       2014-07-01 11:59:02 +08:00
    都在一个网段,然后抓包即可
    wgqzlj
        10
    wgqzlj  
       2014-07-01 12:07:06 +08:00
    可以,但是(妈妈说,一旦出现“但是”,前面的都是废话)微信的通信协议是私有的协议比较难。
    可以先用其他的简单练练手,用charles或者wireshark之类的工具抓抓包看看
    mhycy
        11
    mhycy  
       2014-07-01 12:13:40 +08:00
    想当年我还只是抓绅士站。。。。
    少年,有前途!
    MASAILA
        12
    MASAILA  
       2014-07-01 12:16:58 +08:00 via Android
    刚学Python 还是抓网页把
    qiongqi
        13
    qiongqi  
       2014-07-01 12:28:03 +08:00
    微信的会很难,信息肯定会加密,要想获取加密模块的话,至少得反编译微信才行。
    lz想抓的话,可以从小点的APP入手,一般都是走http协议的,http的header模拟下,再注意下频率就可以了。
    不过,抓别人的内容在道德上总是说不过去的。
    KotiyaSanae
        14
    KotiyaSanae  
       2014-07-01 19:39:55 +08:00
    mitmproxy,这个和手机上的proxydroid一起用,可以抓包。其它的还是问逆向大神吧
    wisefree
        15
    wisefree  
       2017-04-26 20:53:26 +08:00
    @multiple1902 回答很棒!谢谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     919 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:02 PVG 06:02 LAX 15:02 JFK 18:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86