子弹短信是基于网易云信的,是不是意味着可以自己写一个客户端? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
tiaod
V2EX    奇思妙想

子弹短信是基于网易云信的,是不是意味着可以自己写一个客户端?

  •  
  •   tiaod 2018-08-31 14:00:21 +08:00 via Android 11074 次点击
    这是一个创建于 2648 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为使用网易云信 SDK,意味着 API 都是开放的,能不能写一个开源的客户端出来和子弹短信的用户聊天?
    第 1 条附言    2018-08-31 16:52:08 +08:00
    总结:即时通信部分是可以用 SDK,但是身份验证、好友列表 API 是子弹短信自建的服务器提供的,对这些 API 进行抓包分析属于逆向工程,虽然技术上可行,但是法律和道德不允许。
    44 条回复    2018-10-09 14:05:57 +08:00
    linuxchild
        1
    linuxchild  
       2018-08-31 14:17:12 +08:00
    不可以啊……
    你可以自己搞一套,但是和那个肯定是隔离的
    chinvo
        2
    chinvo  
       2018-08-31 14:18:51 +08:00 via iPhone
    理论上可以,毕竟 API key 在 xml 里面
    a793657136
        3
    a793657136  
       2018-08-31 14:19:11 +08:00 via Android
    网易云信有 key,然后还有包名检测,证书,你是打算把他 app 全逆了么
    tiaod
        4
    tiaod  
    OP
       2018-08-31 14:49:22 +08:00 via Android
    @linuxchild 为什么,只要使用相同的 appkey,肯定是可以互通的。
    @a793657136 用 web 端的 sdk

    我感觉最主要的困难是子弹短信的应用服务器的 API,只能靠抓包来分析,其他都不是问题
    mokeyjay
        5
    mokeyjay  
       2018-08-31 15:24:02 +08:00   1
    开玩笑,要真能这样网易云信可以立即倒闭了
    ming
        6
    ming  
       2018-08-31 15:44:28 +08:00   7
    听说支付宝也是用的阿里云?是不是可以写个客户端给自己的支付宝转钱啊?
    Tink
        7
    Tink  
    PRO
       2018-08-31 15:45:41 +08:00
    跟节点很配
    suley
        8
    suley  
       2018-08-31 15:52:40 +08:00
    @a793657136 app 全逆了也不行,创建客户端账号这一步关键操作是在服务器端进行的……
    dagger2
        9
    dagger2  
       2018-08-31 16:03:55 +08:00
    当然不能了。。
    tiaod
        10
    tiaod  
    OP
       2018-08-31 16:07:23 +08:00   2
    别着急攻击我,我也只是想来讨论下我的想法,所以也没发技术讨论啊,我发的奇思妙想→_→
    我上面也说了,主要是子弹短信应用服务器的 API 不知道,需要抓包来分析。但是感觉也不难,这一部分主要是处理了登录以及好友关系。

    写一个客户端最麻烦的部分,包括发送消息、消息同步之类的,直接用云信 SDK。

    可以参考一下 SDK 的 Demo,我还没去测试,就是看文档的话,提供 appkey,account,token 3 个参数就能用了。其中 appkey 已知(有人解包了),account 和 token 是和用户账户相关,通过请求应用服务器的 API 完成一次登录的流程就能获取到。

    https://dev.yunxin.163.com/docs/product/IM%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Web%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E6%A6%82%E8%A6%81%E4%BB%8B%E7%BB%8D

    说不能的要说下具体的理由吧……
    justff
        11
    justff  
       2018-08-31 16:23:16 +08:00
    我也想实现 6 楼的想法,有大佬一起吗?钱对半分
    tiaod
        12
    tiaod  
    OP
       2018-08-31 16:24:27 +08:00
    @mokeyjay 为啥会倒闭,很多 App 将聊天作为附加功能,网易云信就很适合这种场景。并且这种聊天一般局限于 App 内,就算你拿 SDK 出来实现一个客户端也取代不了 App 本身。所以对于网易云信目前大部分客户来说,你能拿 SDK 轻松实现一个客户端对他们都没影响。
    YvesX
        13
    YvesX  
       2018-08-31 16:30:05 +08:00
    子弹短信公开提供了这些 API 吗?没有。所以你这属于逆向了别人。
    mokeyjay
        14
    mokeyjay  
       2018-08-31 16:37:32 +08:00
    @tiaod #12 不,我指的是如果你只是拿到 appkey 就能自己写个客户端,那网易云信这鉴权机制应该立即倒闭
    hundan
        15
    hundan  
       2018-08-31 16:40:30 +08:00 via Android
    理论上可以,做三方客户端有啥不行的,QQ 都有三方客户端。但是 6 楼那种思维有点太跳了,做个客户端等于可以给自己转钱?
    hundan
        16
    hundan  
       2018-08-31 16:42:08 +08:00 via Android
    但是逆向还开源出来,你怕是没有看用户协议,一般这种用户协议里都会写不准逆向的
    lneoi
        17
    lneoi  
       2018-08-31 16:46:46 +08:00
    关键是,你要聊天得先有办法获取到用户信息,而且逆向少不了了吧,这种获取核心隐私的东西,锤子要想搞大点,分分钟进去了
    tiaod
        18
    tiaod  
    OP
       2018-08-31 16:47:54 +08:00
    @mokeyjay 不不不,我意思是使用和子弹短信相同的 appkey 就能和子弹短信的用户通信。

    @hundan 有点微妙的区别,有现成的 SDK 可以用会大量地减少了开发一个第三方客户端的工作量。相对想给 QQ 微信写个客户端要更复杂些,毕竟底层很多东西要自己写。
    xiaorui2004
        19
    xiaorui2004  
       2018-08-31 16:49:24 +08:00 via Android
    这不算什么。人家同意的
    kingme
        20
    kingme  
       2018-08-31 16:54:28 +08:00
    @tiaod #10 这个图用哪个软件画的啊
    tiaod
        21
    tiaod  
    OP
       2018-08-31 16:55:54 +08:00
    @kingme 官方文档的截图
    glues
        22
    glues  
       2018-08-31 16:58:38 +08:00 via iPhone
    3 年起步,lz 可以试试,前两天看知乎听说里面伙食不错
    CrownLeo
        23
    CrownLeo  
       2018-08-31 21:35:27 +08:00 via Android
    做过网易云信 IM WEB 的开发,你需要云信的 appkey,自己用户的 accoutId, 还有一个 token 吧,后两者是服务端 SDK 签发的,这样理论上就可以自己做一个客户端了
    tiaod
        24
    tiaod  
    OP
       2018-08-31 21:59:45 +08:00 via Android
    @CrownLeo 所以需要抓包分析他们自己的应用服务器的 API,这种操作是侵权的
    a793657136
        25
    a793657136  
       2018-08-31 22:09:57 +08:00 via Android
    Android 端,首先在 manifest.xml 注册云信的 service,加入 appkey,但是网易应用网站上有包名检测,包名对不上的可以开禁止登录,这一个过去后,登录是 app 自己的账号密码,然后在云信上获取 token,所以要知道 app 本身的注册和登录 api,验证什么的,其他获取好友列表,聊天都是云信 sdk 了。所以最少要知道 appkey,包名要一致,登录和注册的 api 和验证方式要知道,这应该是跟别人聊天的必要条件
    CrownLeo
        26
    CrownLeo  
       2018-08-31 22:15:09 +08:00 via Android
    @tiaod 只在技术上讨论下可行性而已,因为自己做过类似的,所以也大致知道自己搭个客户端能做的事情
    aLazarus
        27
    aLazarus  
       2018-09-01 02:07:26 +08:00 via Android
    额…应该需要 key 一类的,还有 token 什么的吧…可能还有那种 ID,加密的方法都是在服务器…
    ctsed
        28
    ctsed  
       2018-09-01 02:13:58 +08:00 via Android
    建议锤子可以给自己发消。再开放 api,向 pushbullet 学习,起码能用起来。
    akira
        29
    akira  
       2018-09-01 03:28:34 +08:00
    技术上而言,是的
    maplejaw
        30
    maplejaw  
       2018-09-01 07:22:27 +08:00 via Android
    appkey 会检验签名的
    pabupa
        31
    pabupa  
       2018-09-01 08:03:18 +08:00
    @justff 我也算上,我们仨对半分怎么样?
    ZaneCheney
        32
    ZaneCheney  
       2018-09-02 10:33:26 +08:00 via iPhone
    我就想问问这图啥软件画的
    Light3
        33
    Light3  
       2018-09-03 10:23:00 +08:00
    理论上是可以的 不过你需要知道人家的 appkey 啥的 你知道了 也就离要蹲不远了
    mengdisheng
        34
    mengdisheng  
       2018-09-04 10:12:44 +08:00
    我做 im 的不想说话。。。这个贴在都是啥玩意儿。。。现在人都喜欢臆想么
    tiaod
        35
    tiaod  
    OP
       2018-09-04 13:49:17 +08:00 via Android
    @mengdisheng 那您有何高见?
    weishu
        36
    weishu  
       2018-09-04 17:49:57 +08:00
    APP KEY 在服务端,可以定期刷新,你这基本不可能实现。
    tiaod
        37
    tiaod  
    OP
       2018-09-04 18:10:51 +08:00
    @weishu 文档没有看到可以修改 AppKey 的接口,AppKey 应该是固定的。能刷新的是 Secret。客户端不需要关心 Secret 是否刷新
    enenaaa
        38
    enenaaa  
       2018-09-05 11:44:24 +08:00
    当然可以实现。 连 qq 模拟客户端都有。有啥搞不了的。
    tiaod
        39
    tiaod  
    OP
       2018-09-05 12:15:33 +08:00
    @enenaaa 就是嘛,而且有 SDK 可以用,还有文档可以参考
    surfish
        40
    surfish  
       2018-09-05 15:46:31 +08:00
    除非子弹短信自己开放第三方 API,否则逆向出来也很容易被封掉。
    Eugene1024
        41
    Eugene1024  
       2018-09-07 16:40:48 +08:00
    想的太简单
    Lostars
        42
    Lostars  
       2018-09-07 16:57:06 +08:00
    @glues 社会人告诉你上海里面的伙食非常差,一周七天只有两顿荤,其余都是白饭加没什么味道的菜;表现好每周可以逛一次监狱小卖部,里面有饼干泡面火腿饮料,真空包装的鸡鸭鱼肉,价格倒不贵。
    wizardforcel
        43
    wizardforcel  
       2018-09-17 21:10:02 +08:00 via Android
    我做过贴吧的,参与制作过豆瓣的。基于我的经验,我觉得逆向是可行的。

    以上。
    lshang
        44
    lshang  
       2018-10-09 14:05:57 +08:00
    第三方客户端,逆向肯定可以实现,但是实现之后呢?换了个壳而已,基于官方 API 也不能实现不添加好友强制聊天这种牛逼的功能,意义不大啊。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1064 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 23:38 PVG 07:38 LAX 15:38 JFK 18:38
    Do have faith in what you're doing.
    ubao msn 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