微信通讯协议。自动加人

      最后更新:2022-04-07 23:03

      这篇文章是魏博特别报导的一部分许多个人渴望建立自己的方案。登录、启动、阅读联系名单、发送微信、接收微信等等。实际上,许多人在网上这样做了。HTPANAlyzer是我的主要工具。我认为这是分析http/https协议的最佳工具。比铁沙和小提琴更清晰建议对http/https议定书的内容进行审查和利用。事实上,分析协议 和自己写代码 很简单。

      以下是自行开发的接收和发送微信应用程序的基本程序:

      1. 获取会话 UUID

      邮件的网络版本要小心, 不使用用户名和密码登录, 而是使用扫描二维登录, 服务器必须先提供单会话 ID 来识别当前登录 。

      使用get方法,通过请求地址:https://login.weixin.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=时间戳

      这些标记的时间印记是林威治目前标准时间的毫秒。

      获取后返回: window.QR Login.Code = 200; window.QR Login.uid = 'XX'

      我们需要的是XXxx

      2、获取登录二维码

      这篇文章是我们2011年埃及抗议活动特别报导的一部分。

      这就是我们刚刚得到的:XX。这个网站显示了两个维度的数字。

      3. 考虑是否扫描二维日志。

      在看到二维代码后, 用户必须用手机微信扫描二维代码 。 (有人会问, “ 为什么微型字母设计得这么精细? ” 这想法很奇怪。 我经常使用计算机, 因为我的手机不在那里。 它是为了安全 。

      使用get方法,查询地址:https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?uuid=XXXXXX&tip=1&_=时间戳

      以下是我们刚刚获得的 XX 号, 以及时间戳。 初始获取时提示的数量应该为 1, 而这个数量应该为每次调查修改 。

      如果服务器返回: window.Code = 201, 表示用户此时已在手机末尾被扫描, 但尚未点击验证, 并继续使用上述地址查询, 但提示为零 ;

      如果服务器返回:

      window.code=200

      window.redirect_uri='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

      这表明用户已经验证了目前移动电话上的登录, 窗口 。 redirect_ uri = 此地址应保存并稍后访问 。

      如果服务器返回: window.Code = 408, 表示它正在等待加班, 请使用上面的查询地址, 但提示 = 1 。

      4. 访问 viin、 sid、 过关票和密钥登录地址

      用get方法,访问在上一步骤获得访问地址,并在参数后面加上:&fun=new,会返回一个xml格式的文本,类似这样:

      <error>

      <ret>0</ret>

      <message>OK</message>

      <skey>xxx</skey>

      <wxsid>xxx</wxsid>

      <wxuin>xxx</wxuin>

      <pass_ticket>xxx</pass_ticket>

      <isgrayscale>1</isgrayscale>

      </error>

      注意所有的 wxin, wxsid, skey, 和过锁值 。

      5、微信初始化

      这是一个关键阶段,我为此努力工作。

      要使用POST方法,访问地址:https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=时间戳&lang=ch_ZN&pass_ticket=XXXXXX

      Pass_ ticket 是一长串字符 我们得到它, 与时间邮票不同, 时间邮票不需要解释。

      一个json字符串就是POST的意义所在。{'BaseRequest':{'Uin':'XXXXXXXX','Sid':'XXXXXXXX','Skey':XXXXXXXXXXXXX','DeviceID':'e123456789012345'}}

      在以上第4步中获取的字符串对应于 uin, sid, 和 skey, 而设备ID 是e 之后的一个随机整数 15 字节 。

      请在应用程序中使用 UTF8 编码 。

      POST 成功从服务器上返回一个大 JSON 字符串, 其格式如下 :

      {

      'BaseResponse': {

      'Ret': 0,

      'ErrMsg': ''

      },

      'Count': 8,

      'ContactList': [...],

      'SyncKey': {

      'Count': 4,

      'List': [

      {

      'Key': 1,

      'Val': 635705559

      },

      ...

      ]

      },

      'User': {

      'Uin': xxx,

      'UserName': xxx,

      'NickName': xxx,

      'HeadImgUrl': xxx,

      'RemarkName': '',

      'PYInitial': '',

      'PYQuanPin': '',

      'RemarkPYInitial': '',

      'RemarkPYQuanPin': '',

      'HideInputBarFlag': 0,

      'StarFriend': 0,

      'Sex': 1,

      'Signature': 'Apt-get install B',

      'AppAccountFlag': 0,

      'VerifyFlag': 0,

      'ContactFlag': 0,

      'WebWxPluginSwitch': 0,

      'HeadImgFlag': 1,

      'SnsFlag': 17

      },

      'ChatSet': xxx,

      'SKey': xxx,

      'ClientVersion': 369297683,

      'SystemTime': 1453124908,

      'GrayScale': 1,

      'InviteStartCount': 40,

      'MPSubscribeMsgCount': 2,

      'MPSubscribeMsgList': [...],

      'ClickReportInterval': 600000

      }

      这其中,用户内部是他自己的信息。用户名是一个假名 。昵称是一个名符其实的代名词。应当指出,用户名每次都有变化。。。也就是说,作为一个身份,获得独特和一致的身份是不可行的。无语。。。同步键通常有四个字符长。为了在这里记录钥匙和Val的名字每次返回时,信息都得到利用。让我们从计数和联系名单开始

      6、获取好友列表

      com/cgi-bin/mmwebwxbin/webwgetconfact?r=时间戳。

      POST 内容为空。 成功返回 JSON 格式的所有联系人信息。 格式相似 :

      {

      'BaseResponse': {

      'Ret': 0,

      'ErrMsg': ''

      },

      'MemberCount': 21,

      'MemberList': [

      {

      'Uin': 0,

      'UserName': xxx,

      'NickName': 'Urinx',

      'HeadImgUrl': xxx,

      'ContactFlag': 3,

      'MemberCount': 0,

      'MemberList': [],

      'RemarkName': '',

      'HideInputBarFlag': 0,

      'Sex': 0,

      'Signature': 'xxxx',

      'VerifyFlag': 8,

      'OwnerUin': 0,

      'PYInitial': 'URINX',

      'PYQuanPin': 'Urinx',

      'RemarkPYInitial': '',

      'RemarkPYQuanPin': '',

      'StarFriend': 0,

      'AppAccountFlag': 0,

      'Statues': 0,

      'AttrStatus': 0,

      'Province': '',

      'City': '',

      'Alias': 'Urinxs',

      'SnsFlag': 0,

      'UniFriend': 0,

      'DisplayName': '',

      'ChatRoomId': 0,

      'KeyWord': 'gh_',

      'EncryChatRoomId': ''

      },

      ...

      ],

      'Seq': 0

      }

      例如,AmberCount展示了联系人的总数,内容更加明显。

      7. 启用电子邮件状况通知。

      com/cgi-bin/mmwebwxbin/webwxstatnony 。

      POST 的内容是 JSON 字符串, 格式如下:

      {

      BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx },

      Code: 3,

      自定义身份, 来自用户Name :

      您的代号, 用户名 :

      客户MsgID:日期和时间戳

      }

      8. 心胸包包,与服务器同步,获得状态

      完成这些程序后,用户可以开始发送和接收微型邮件的周期,这些微型邮件可用于以线性方式发送心跳包。

      使用get方法,设置超时为60秒,@mmwebwx-bin/mcgi-bin/synccheck?sid=XXXXXX&uin=XXXXXX&synckey=XXXXXX&r=时间戳&skey=XXXXXX&deviceid=XXXXXX&_=时间戳

      其他设置不言自明。 此处的同步密钥必须声明在 json 字符串中有许多关键信息, 这些关键信息必须从初始步骤、 键值(_val) 中合并, 并分开, 如下文所示:

      1_652651920|2_652651939|3_652651904|1000_0

      服务器返回以下内容 : window. == ==

      重新编码成功为零,选择2和6显示新的数据。 4 关于公共编号的新数据。

      9、读取新信息

      检测到有信息以后,用POST方法,访问:https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=XXXXXX&skey=XXXXXX

      POST的内容:

      “基础请求 ” : “ DeviceID ” :, “ sid ” : “ 关键 ”, “ Uin ”,, “ SyncKey ” : 计数 : 4, “ List ” : “ Key” : 1, “ Val” : 65265 3204, 键 : 2, “ Val” : 652653674, 键: 3, “ Val” : 652653544, 键: 1 00, “ Val ” :

      请注意同步键格式,并参考前述指示。

      当请求成功时, 服务器会发送一个 JSON 字符串, 其中 AddMsgCount 显示有多少信息可用, AddMsgList 包含一系列新消息, MgType 指定了信息类型, 而内容是信息的内容 。

      应当指出,归还的信息将包括一个新的同步键。新的密钥将用于下一次获取信息,以更新此信息。

      10、发送信息

      如果使用 POST 方法, 这个功能更容易操作 : https://wx2. I'm not sure, qq.

      POST仍是一个json格式,如下所示:

      “ Mg” : “ 字元 ” : 1, “ 类型 ” : “ 测试信息 ”, “ 用户名称 ” : “ XX ”, “ 用户名称 ” : “ XX ”, “ 本地ID ” : “ 时戳 ”, “ ClietMsgID ” : “ 时戳 ”, “ 基准请求 ” : “ XX ”, “ id” : “ XX ”, “ 键 ”

      字体是信息内容,本地ID和客户MsgID使用目前的时间戳。

      这是基本的微信程序。 您可以以此为起点, 自行创建更相关的材料 。

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类