前言:
某日,同事打王者和队友产生分歧,游戏里互相问候对方双亲,本以为游戏结束就结束了。没想到他两加了游戏好友互骂,对方说这是小号让同事加他QQ大号。结果,同事加了,然后又被对方骂了一顿,当同事反应过来,对方已经将其删好友了。此时同事愤愤不平,找到我,问我有没有什么方法恶搞他,本来我不想趟这趟浑水。但是同事甩了个红包过来,那就勉为其难的帮他一下吧。
通过QQ找手机号,原理枚举对方肯能的电话号码(不知道对方的地址就劝退了,如果想知道对方位置也有办法,后续我会分享获取对方位置的方法【误差10km以内】)
方法:
通过QQ官方的找回密码网页,然后输入他qq账号,会出现这个界面
至此我们获得的了对方手机号的5位数186******49
众所周知手机号码前三位是运营商,然后接着4位是区号,一般区号都是有36种,那么没确定的就只剩下2位了。所以,这样就能把范围缩小到3600个里面。
列如:对方是江苏盐城的,则有25个号段,
那么对方手机号码就是1860150**49等,一共25*100,2500种可能。
下一步,就是通过excl枚举出所有可能的手机号码。(这里就各显神通喽)
接着将excl数据导入手机通讯录(建议导入前备份一下通讯录,方便之后恢复自己的通讯录)
excl导入通讯录,可以通过QQ同步助手导入(前提是你得开会员!)咱不做大冤种,导入通讯录的文件格式是.vcf,根据cvs格式,我用python写了个脚本,把excl转换成vcf。
在运行代码之前,要先将excl转成csv格式,然后右击用记事本打开,点击另存为,将ascll编码改成utf-8编码。然后再运行此代码。
转换代码
import os
csv_filename ='E:/wyy.csv'
with open(csv_filename, 'r', encoding='utf-8') as filename:f= filename.readlines()print(f)filename.close()vcards = ''for line in f[1:]:# tel_numbers = ''name_tel_list = line.strip().split(',')if name_tel_list[0]:tel_name = name_tel_list[0] # 姓名xing = tel_name[0] # 姓ming = tel_name[1:] # 名org = name_tel_list[1] # 单位short_tel = name_tel_list[2]long_tel = name_tel_list[3]vcard = f'BEGIN:VCARD\nVERSION:3.0\nN:{xing};{ming};;;\nFN:{ming} {xing}\nORG:{org};\nTEL;TYPE=CELL;TYPE=pref;TYPE=VOICE:{long_tel}\nTEL;TYPE=WORK;TYPE=VOICE:{short_tel}\nPRODID:-//Apple Inc.//iCloud Web Address Book 2021B82//EN\nREV:2020-11-26T19:51:27Z\nEND:VCARD\n'vcards += vcard# 保存转换后的vcf格式文件(fpath, temp_fname) = os.path.split(csv_filename)(fname, fextension) = os.path.splitext(temp_fname)with open(f'{fpath}{fname}_ios.vcf', "w", encoding='utf-8') as f:try:f.write(vcards)finally:f.close()
运行完成通过qq或者微信将.vcf的文件发送到手机。手机下载后用通讯录打开。
点击存储,这样就搞定了。
下一步,就是去qq,找到此好友,点击资料-详细资料-他的线索。会出现通讯录这个字段。去通讯录找找到这个字段就知道他的手机号了。
如果这里没有通讯录字段,那就麻烦了,可以通过登录小号,点击联系人-通讯录好友。等待更新,然后一个一个看,头像一模一样的那就八九不离十了。