【背景】
需求:
想要判断一个手机号,是否已经注册了微信了。
【折腾过程】
1.搜:
判断手机号 是否已注册微信
微信客户端->添加好友->添加手机联系人->
如果右边有出现 添加,则说明该手机号已开通微信
如果右边出现 邀请,则说明该手机号没有开通微信
->
所以可以想办法,模拟网页版,登陆微信
然后再去做此判断
模拟此过程
或许就可以实现:
用代码,判断一个手机号是否已注册微信了。
2.先去:
然后网页版的微信里面,好像找不到,添加朋友,这个功能。
搜索手机号,也找不到要添加的朋友。
3.然后发现淘宝中,有很多人在卖对应的服务和软件:
以及其他人提供的服务:
判断手机是否注册微信服务 | 花儿SFDS | 照片 | jhbj22的立方时空 | 立方网
说明这个事情,技术上是可行的。
4.后来朋友说的一种办法:
- 拿个新手机和新手机号去注册微信
- 但是前提是:新手机上装了抓包工具,比如fiddler等等,然后再去注册微信
- 这样,微信注册期间,去访问对应的服务器,抓包工具就可以分析出对应的http的请求和相关数据了。
- 然后知道了逻辑后,就可以去写代码去模拟了。
理论上可行,实际上估计不容易。
5.然后就去试试:
6.并去:
【记录】用Wireshark抓包分析移动端Android的HTTP请求
7.期间调试得到的一些数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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,不知道具体数据的格式和含义,并且这些数据十有八九是加了密的,现在也不知道加解密算法。所以还是无法分析出逻辑。
转载请注明:在路上 » 【未解决】如何判断一个手机号是否已经注册微信