V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
goodmani
V2EX  ›  程序员

现在的微信监控机器人、qq 监控机器人都是用什么手段实现的?

  •  
  •   goodmani · 2017-07-31 09:02:13 +08:00 · 6481 次点击
    这是一个创建于 2467 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我自己会的方法:通过 web 版,登陆 web 版读取 dom 属性,通过 jquery 之类的,很容易得到内容,但是 web 版得先扫码登陆,有些麻烦。

    现在市面上那些微信批量管理工具,机器人之类的,是通过什么方法读的消息?是读桌面版的句柄吗?需要精通 MFC 吗?感觉好深奥
    16 条回复    2017-07-31 17:40:58 +08:00
    qwjhb
        1
    qwjhb  
       2017-07-31 09:10:36 +08:00
    至少我知道的 不就是扫码登陆吗?
    goodmani
        2
    goodmani  
    OP
       2017-07-31 09:17:55 +08:00
    @qwjhb 有没有监控安卓客户端的方法?监控 web 写代码是很方便,用起来不太方便啊,如果监控安卓的话,每天只要开机就 ok 了,监控 web 每天还得扫码登陆
    suixn
        3
    suixn  
       2017-07-31 09:22:07 +08:00
    @goodmani #2 看看微 X 模块
    wendellup
        4
    wendellup  
       2017-07-31 09:23:26 +08:00
    itchat
    spice630
        5
    spice630  
       2017-07-31 09:28:13 +08:00
    lgpqdwjh
        6
    lgpqdwjh  
       2017-07-31 09:31:56 +08:00
    保存登录态 发心跳包 然后各种操作封装一下 就很容易处理了, 市面上比较多的都是走的 web 版协议, 也有牛 x 的人直接封包 app 端的协议, 那个成本挺高但是比 web 稳定
    mumu
        7
    mumu  
       2017-07-31 09:34:57 +08:00
    一般的机器人是使用的 web 版的协议,就 webQQ、webWechat 这些,抓包之后写的。
    sirm2z
        8
    sirm2z  
       2017-07-31 09:53:09 +08:00
    用 web 版的 api 啊 dom 是什么鬼
    eoo
        9
    eoo  
       2017-07-31 10:01:51 +08:00 via Android
    @spice630 看到支持掉线后免扫码重登,这是什么原理?
    boyxupers
        10
    boyxupers  
       2017-07-31 10:49:22 +08:00 via iPhone
    @lgpqdwjh app 端协议封装是在哪儿看到的?
    skiplow
        11
    skiplow  
       2017-07-31 11:01:47 +08:00
    ios 逆向 稳定的都是这么做的
    spice630
        12
    spice630  
       2017-07-31 11:23:13 +08:00
    @eoo
    就是利用历史 cookie 等信息,重新调下 api,但不是非常稳定,大部分时候可以。
    bestrenxs
        13
    bestrenxs  
       2017-07-31 11:26:56 +08:00
    android 的话可以用 xposed hook 关键函数,但是要求机器必须 root
    eoo
        14
    eoo  
       2017-07-31 12:15:09 +08:00 via Android
    @spice630 我丢 这都可以? 难道历史 cookIE 都不过期的?
    breadenglish
        15
    breadenglish  
       2017-07-31 14:46:00 +08:00
    通过破解网页版的协议来做,优点是简单上手容易,缺点是 BS 结构的东西容易被微信服务器端牵着鼻子走,而且缺少一些功能比如发送名片,@某人之类的。
    还有一种做法是安卓机安装了 XP 框架,缺点是每个接口得自己一点一点试很花时间,优点是比较稳定。
    FanWall
        16
    FanWall  
       2017-07-31 17:40:58 +08:00
    按照难度等级简单说说:
    1、WEB 扫码登录,这个会写点代码的就会做了,缺点嘛,登录麻烦,HTTP 协议,所以容易丢消息容易不到达。
    2、hook 等方法读取操作 Client,这个技术门槛不高,但是并不是说简单,效果也有天差地别(真的天差地别,差点的也就是类似安卓的 XP 啥的,或者 windows 读取点自绘窗口上的消息,性能很差;底层点的则直接注入然后 call,由于微信的跨平台特性,所以很多明明在这个 Client 上不存在的功能有的时候也能实现。)缺点也是登录麻烦,但是稳如狗。
    3、直接反编译分析并模拟 PC、Android、iPad 等 Client 的数据包,这个难度最大了,但是 QQ 的也差不多泛滥了,微信的 iPad 版也有很多人做出来了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   938 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:27 · PVG 07:27 · LAX 16:27 · JFK 19:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.