MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    MiraiSignHandler —— Mirai对接Sign签名服务器,解决登录code=45失败和签名消息发送风控

    项目发布
    14
    40
    8253
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • WorldLeen
      WorldLeen last edited by WorldLeen

      MiraiSignHandler —— Mirai对接Sign签名服务器,解决code=45登录失败和签名风控检测

      注意:Mirai-2.15.0的FixProtocolVersion已经内置了对签名服务器的支持,已经不再需要本项目进行支持维护,请查阅官方相关文档。本贴已弃用

      这是什么?

      最近腾讯加大了对Bot的管控,Mirai几乎全军覆没 code=45
      不过好在已经有大神完美破解了code=45的Sign签名验证
      因为Mirai官方一直没有更新,自己又比较急着用,所以我就先下手为强了
      目前本人已经成功越过code=45,Bot已完美正常工作

      使用方式:

      1.下载并使用mirai-core-all-2.15.0-抢先体验版
      因为官方的mirai还没有支持Sign签名功能,说会在2.15.0正式版支持,但大家可能急着用,因此这里构建了抢先体验版可以立刻下载
      在官方发布2.15.0正式版之后,就不需要使用我的抢先体验版了

      2.添加本插件所需的前置库
      gson
      为了处理Json数据,使用gson作为前置,请将其放到libs里
      FixProtocolVersion-1.8.4-魔改版
      不同QQ版本签名不同,这里支持了8.9.58,也就是FixProtocolVersion-1.8.4的协议版本。
      但因为FixProtocolVersion自带了一个energy(tlv544),对接后完全使用签名认证服务器的energy签名,不用FixProtocolVersion带的,防止冲突,请下载使用我魔改过移除了energy的FixProtocolVersion

      3.搭建签名认证服务器
      参见此处:https://github.com/fuqiuluo/unidbg-fetch-qsign
      需使用txlibs为8.9.58的这两个
      端口需要设定为11053(插件代码里写的端口)

      4.下载和安装我的修复插件
      MiraiSignHandler.jar
      添加到前置,在Bot运行之前加入以下代码:

      FixProtocolVersion.update(); //先执行FixProtocolVersion的修复,我的插件才能获取正确的协议版本
      MiraiSignHandler.register();
      

      5.运行Mirai
      需要以ANDROID_PHONE协议运行,使用密码登录
      你应该会看到后台在运行过程中多了很多getSign/getEnergy fire/response的日志,fire说明触发需要签名,response说明签名结果获得,如果都有说明你的程序已经正常工作

      常见问题解答:

      Q:我没能搭建好签名认证服务器/签名认证服务器工作不正常或崩溃
      A:请联系项目unidbg-fetch-qsign的作者而不是我,我是本插件的作者,但不是unidbg-fetch-qsign的作者
      Q:可以支持mirai-console或者其他的吗?
      A:可以,但我会在2.15.0正式版发布后再做支持
      Q:你一定保证我折腾之后能登录上去吗?
      A:我能告诉你我的code=45已经解决了,毫无疑问是有效果的。但没人能保证你一定登的上去,这要看tx的心情
      Q:源码会发到github上吗?
      A:会,但是还是那个原因,我会在官方更新2.15.0正式版之后再发源码到github
      Q:为什么都登录完了还一直在刷Sign的日志
      A:因为在正常发消息过程中,偶尔也会出现签名验证去检查风控你,这就是为什么某些Bot运行着突然就被踢下线或无法发送消息出去的缘故
      Q:通过code=45登录验证之后,一个小时后被冻结了
      A:这是很正常的,TX还会检测你的聊天信息,像机器人的时候就会把你冻结掉,你可以人工解冻,在这之后再次被冻结的概率会明显降低
      Q:能更换其他登陆协议吗?
      A:目前只支持安卓手机登陆,因为txlibs是从安卓QQ的apk里拿的
      Q:能更换其他协议版本吗?
      A:可以,首先你要修改Mirai的使用协议版本(如FixProtocolVersion更新导致的版本变化),然后请自行更换签名服务器里的txlibs为对应正确版本的才能登录(去QQ官方下载手机QQ.apk,然后把里面的libs so文件拿出来放到签名服务器下面)。本插件会自动获取当前协议版本运行。

      K 1 Reply Last reply Reply Quote 1
      • A
        AIPC007 last edited by

        好好好,已经成功登录了

        1 Reply Last reply Reply Quote 0
        • Deleted by  WorldLeen WorldLeen 
        • Restored by  WorldLeen WorldLeen 
        • Deleted by  WorldLeen WorldLeen 
        • Restored by  WorldLeen WorldLeen 
        • WorldLeen
          WorldLeen last edited by WorldLeen

          施工完毕!
          等到2.15.0正式版发布之后,这个插件依然是可以用的。
          届时会把插件正式发布
          群众的力量就像弹簧,你压的越紧,弹力就越大。

          起舞弄清影 1 Reply Last reply Reply Quote 1
          • Referenced by  WorldLeen WorldLeen 
          • Referenced by  WorldLeen WorldLeen 
          • Referenced by  WorldLeen WorldLeen 
          • FragyPig-香竹酱
            FragyPig-香竹酱 last edited by FragyPig-香竹酱

            "群众的力量就像弹簧,你压的越紧,弹力就越大。" 感谢楼主以及楼主的这句话。

            (可惜窝只会用mirai console 乌乌 坐等更新)

            cssxsh 1 Reply Last reply Reply Quote 0
            • 起舞弄清影
              起舞弄清影 摸鱼 @WorldLeen last edited by

              @WorldLeen tx:我******,你等着吧,我现在就加强风控力度,所有使用 Mirai 设备登录的 QQ 全部封号

              1 Reply Last reply Reply Quote 0
              • cssxsh
                cssxsh @FragyPig-香竹酱 last edited by

                @FragyPig-香竹酱

                ?
                b9edcc08-a204-440a-9ae3-2821e9679e7f-image.png

                FragyPig-香竹酱 1 Reply Last reply Reply Quote 0
                • FragyPig-香竹酱
                  FragyPig-香竹酱 @cssxsh last edited by

                  @cssxsh
                  噢噢 原来这个和楼主是一样的嘛,不好意思我去试试,谢谢你

                  1 Reply Last reply Reply Quote 0
                  • S
                    Sunosay last edited by Sunosay

                    感谢楼主 现在本地能登陆了 但是碰到了一个问题
                    在本地idea里的时候起,加载的是
                    2023-07-01 13:52:35 W/EncryptService.alert: Encrypt service was loaded: application.miraisignhandler.SignEncryptService@55d98bbb
                    但是打包完放上服务器
                    2023-07-01 13:42:19 W/EncryptService.alert: Encrypt service was loaded: xyz.cssxsh.mirai.tool.TLV544Provider@5e13f156
                    加载的就变成这样了,但是就会报错

                    然后我发现我用的FixProtocolVersion竟是1.5... 换成1.8后 本地变得和服务器上一样报错了

                    java.lang.AbstractMethodError: Receiver class xyz.cssxsh.mirai.tool.TLV544Provider does not define or inherit an implementation of the resolved method 'abstract void initialize(net.mamoe.mirai.internal.spi.EncryptServiceContext)' of interface net.mamoe.mirai.internal.spi.EncryptService.
                            at net.mamoe.mirai.internal.network.components.EcdhInitialPublicKeyUpdaterImpl.initializeSsoSecureEcdh(EcdhInitialPublicKeyUpdater.kt:123)
                    
                    WorldLeen 2 Replies Last reply Reply Quote 0
                    • WorldLeen
                      WorldLeen @Sunosay last edited by

                      @Sunosay 好的,已经发现问题,马上修复

                      1 Reply Last reply Reply Quote 0
                      • WorldLeen
                        WorldLeen @Sunosay last edited by WorldLeen

                        @Sunosay
                        已经修复了,主楼帖子已经编辑
                        因为FixProtocolVersion自带了一个energy(tlv544),对接后完全使用签名认证服务器的energy签名,不用FixProtocolVersion带的,防止冲突,请下载使用我魔改过移除了energy的FixProtocolVersion
                        请看【使用方式】的【2】,下载【FixProtocolVersion-1.8.4-魔改版】替换之即可

                        S cssxsh 2 Replies Last reply Reply Quote 0
                        • S
                          Sunosay @WorldLeen last edited by

                          @WorldLeen 非常感谢!bot终于又活了,45的这段日子太绝望了

                          1 Reply Last reply Reply Quote 0
                          • cssxsh
                            cssxsh @WorldLeen last edited by cssxsh

                            @WorldLeen

                            为什么要魔改

                            你在 MiraiSignHandler 里把 priority 覆盖一下不就行了吗

                            /**
                             * 基本 SPI 接口
                             * @since 2.8.0
                             */ // stable since 2.15
                            public interface BaseService {
                                /** 使用优先级, 值越小越先使用 */
                                public val priority: Int get() = 0
                            }
                            
                            WorldLeen 1 Reply Last reply Reply Quote 0
                            • WorldLeen
                              WorldLeen @cssxsh last edited by

                              @cssxsh 老版本接口和新版本不一样,启动了直接报抽象方法未继承错误,没办法。。。

                              1 Reply Last reply Reply Quote 0
                              • G
                                guizaipiao last edited by

                                大佬知道这是什么问题吗?
                                error.png

                                WorldLeen 1 Reply Last reply Reply Quote 0
                                • WorldLeen
                                  WorldLeen @guizaipiao last edited by WorldLeen

                                  @guizaipiao 你没有按照第二步使用我发的FixProtocolVersion-1.8.4-魔改版 替换之

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    guizaipiao @WorldLeen last edited by

                                    @WorldLeen 登上去了,感谢大佬,太牛了44e0156d-97e1-4fec-9d14-78d8e1013c3c-image.png 厉害

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      ctfshow last edited by

                                      @WorldLeen 在 MiraiSignHandler —— Mirai对接Sign签名服务器,解决登录code=45失败和签名消息发送风控 中说:

                                      4.下载和安装我的修复插件
                                      MiraiSignHandler.jar
                                      添加到前置,在Bot运行之前加入以下代码:
                                      FixProtocolVersion.update(); //先执行FixProtocolVersion的修复,我的插件才能获取正确的协议版本
                                      MiraiSignHandler.register();

                                      上面说的操作,是需要 java -jar 执行那个jar包,还是怎么操作,不太明白“添加到前置”具体是什么意思,感谢大佬回复

                                      WorldLeen 1 Reply Last reply Reply Quote 0
                                      • WorldLeen
                                        WorldLeen @ctfshow last edited by WorldLeen

                                        @ctfshow
                                        你用的是mirai-core-all吗?
                                        这篇帖子针对的是使用mirai-core-all,自行编程使用mirai的用户的,如果是其他mirai可能看不懂
                                        意思是这是个JAR库,引用这个库,然后在主类加入这部分代码就可以工作了

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          ctfshow last edited by

                                          你好师傅,是使用的mirai-core-all-2.15.0-ea.jar,然后使用docker环境部署了验证

                                          docker run -d --restart=always --name qsign -p 8080:8080 -e ANDROID_ID={android_id} xzhouqd/qsign:8.9.63

                                          然后更新了魔改版的 fix-protocol-version-1.8.4-disabletlv.jar

                                          下载了gson-2.10.1.jar 到libs目录

                                          现在就是不太会用 MiraiSignHandler.jar 这个插件,看需要怎么操作比较好

                                          T 1 Reply Last reply Reply Quote 0
                                          • C
                                            ctfshow last edited by

                                            还有就是 想请问下 ANDROID_ID={android_id} 这里的 {android_id} 在哪里获取,或者是说可以自己随便定义还是?

                                            WorldLeen 1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact