【背景】
需求:
想要判断一个手机号,是否已经注册了微信了。
【折腾过程】
1.搜:
判断手机号 是否已注册微信
微信客户端->添加好友->添加手机联系人->
如果右边有出现 添加,则说明该手机号已开通微信
如果右边出现 邀请,则说明该手机号没有开通微信
->
所以可以想办法,模拟网页版,登陆微信
然后再去做此判断
模拟此过程
或许就可以实现:
用代码,判断一个手机号是否已注册微信了。
2.先去:
然后网页版的微信里面,好像找不到,添加朋友,这个功能。
搜索手机号,也找不到要添加的朋友。
3.然后发现淘宝中,有很多人在卖对应的服务和软件:
以及其他人提供的服务:
判断手机是否注册微信服务 | 花儿SFDS | 照片 | jhbj22的立方时空 | 立方网
说明这个事情,技术上是可行的。
4.后来朋友说的一种办法:
- 拿个新手机和新手机号去注册微信
- 但是前提是:新手机上装了抓包工具,比如fiddler等等,然后再去注册微信
- 这样,微信注册期间,去访问对应的服务器,抓包工具就可以分析出对应的http的请求和相关数据了。
- 然后知道了逻辑后,就可以去写代码去模拟了。
理论上可行,实际上估计不容易。
5.然后就去试试:
6.并去:
【记录】用Wireshark抓包分析移动端Android的HTTP请求
7.期间调试得到的一些数据:
Full request URI: http://minorshort.weixin.qq.comhttp://minorshort.weixin.qq.com/cgi-bin/micromsg-bin/reportkvcomm 6310 87.249680000 172.27.35.2 101.226.129.190 HTTP 446 POST http://short.weixin.qq.com/cgi-bin/micromsg-bin/getmfriend HTTP/1.1 (application/octet-stream) "6310","87.249680000","172.27.35.2","101.226.129.190","HTTP","446","POST http://short.weixin.qq.com/cgi-bin/micromsg-bin/getmfriend HTTP/1.1 (application/octet-stream)" H]`#BbE*@@W#e}Pv9cLZyP7LPOST http://short.weixin.qq.com/cgi-bin/micromsg-bin/getmfriend HTTP/1.1 Accept: */* Cache-Control: no-cache Connection: close Content-Length: 136 Content-Type: application/octet-stream Host: short.weixin.qq.com User-Agent: MicroMessenger Client _&61GHGgZ(X%v39/0:2r%] OF ;Fy6(>:G]$b2&!9%l}0<TO!bc#9v3@ H]`#BbE@@#eUP*qKPZPOST http://short.weixin.qq.com/cgi-bin/micromsg-bin/batchgetheadimg HTTP/1.1 Accept: */* Cache-Control: no-cache Connection: close Content-Length: 360 Content-Type: application/octet-stream Host: short.weixin.qq.com User-Agent: MicroMessenger Client _&61GHGgZ({ Hh+8iDn\H7m>J=#QMp2 V"#_N|)#9GdRAnJpg{B>H5t|pZ?2 cL%2w>>YLBpB}S/>sFbdWPyC$iV We=IrJ:[8 Y~-/:Zlk{<e~J<`6 j8/x$57;_w(n}sUFS/U H]`#Bb E@@#e UP*qKPZ POST http://short.weixin.qq.com/cgi-bin/micromsg-bin/batchgetheadimg HTTP/1.1 Accept: */* Cache-Control: no-cache Connection: close Content-Length: 360 Content-Type: application/octet-stream Host: short.weixin.qq.com User-Agent: MicroMessenger Client _&61GHGgZ({ Hh+8iDn\H7m>J=#QMp2 V"#_N|)#9GdRAnJpg{B>H5t|pZ?2 cL%2w>>YLBpB}S/>sFbdWPyC$iV We=IrJ:[8 Y~-/:Zlk{<e~J<`6 j8/x$57;_w(n}sUFS/U _&61GHGgZ({ Hh+8iDn\H7m>J=#QMp2 V"#_N|)#9GdRAnJpg{B>H5t|pZ?2 cL%2w>>YLBpB}S/>sFbdWPyC$iV We=IrJ:[8 Y~-/:Zlk{<e~J<`6 j8/x$57;_w(n}sUFS/U H]`#BbEeQ@@#=)P?.pPPOST http://minorshort.weixin.qq.com/cgi-bin/micromsg-bin/reportkvcomm HTTP/1.1 Accept: */* Cache-Control: no-cache Connection: close Content-Length: 425 Content-Type: application/octet-stream Host: minorshort.weixin.qq.com User-Agent: MicroMessenger Client _&61GHGgZ(%v39/0:2r%] OF ;Fy6(>:G]$b2&!9%sbPq"P8^3Y`U[3d+wm7zV);<g&tJNs((sYqJ3DzreH;.sy T418 vr^ ?05\lCD\YD?(`+ V=`i|tc pIQoW jfI $.U8b]`d"gJlHWk)?|H][
8.其他一些值得参考的资料:
微信源码结构(ios版) – Xoneday – 博客频道 – CSDN.NET
微信注册请求链接 – macwhirr123 – 博客频道 – CSDN.NET
【总结】
最终的结果是:
目前只能看到基本的微信的一些API的URL,比如:
http://minorshort.weixin.qq.com/cgi-bin/micromsg-bin/reportkvcomm
http://short.weixin.qq.com/cgi-bin/micromsg-bin/batchgetheadimg
http://short.weixin.qq.com/cgi-bin/micromsg-bin/getmfriend
但是对于POST的数据,好像都是二进制octet-stream,不知道具体数据的格式和含义,并且这些数据十有八九是加了密的,现在也不知道加解密算法。所以还是无法分析出逻辑。
转载请注明:在路上 » 【未解决】如何判断一个手机号是否已经注册微信