本贴持续更新
- 进QQ群:点我
情况1
经过大量测试发现只要在拉人的时候出现403等类似情况,接下来再用协议拉人立马就会被办forbidden,随之的即使当前协议号死亡
如何破,注意了先去看下面两张截图:
被办的是 已禁止此账号使用
解决方案很明显了,所有要拉的物料都需要进行提前筛选和过滤,首先必须要过登录接口检测,
当然这个接口是加密的,需要破解。不过小编已经解开了。这是返回结果
{"email_otp_eligible":0,"login":"xxxxxxxxx","reason":"incorrect","sms_length":6,"sms_wait":0,"status":"fail","voice_length":6,"voice_wait":0,"wa_old_eligible":0}
{"appeal_token":"Ae0Qdjsrxl6Pz8UlkpfTb7hwiICgGRU1x5VR7MHjhsTA9xnjJ3VzcIgx8TyawCZ3Hur58g3-CZcQAjZmE1dd2-oZnA1uKZ8FeGUMwecSEDUqRmHNCC9SbB0Tp36OsAYvVVaZRQi3gWm1KPv0AbI8cVLTuoQwhbAu6KWcayww1k9XyjkP0yBvKwpakw","in_app_ban_appeal":1,"login":"xxxxxxxxx","reason":"blocked","status":"fail","violation_type":"14"}
blocked意味着就是被办
部分源码:
class Accout():
def __init__(self,phone,backup_token,e_regid,id,authkey,e_skey_sig,token,expid,e_ident,cc,e_skey_id,fdid,e_skey_val,advertising_id,pid):
self.params = []
self.addParam('read_phone_permission_granted', '0')
self.addParam('lc', 'CN')
self.addParam('offline_ab', self.urlencode('{"exposure":[],"metrics":{}}'))
self.addParam('in', phone)
self.addParam('language_selector_clicked_count', '0')
self.addParam('backup_token', backup_token)
self.addParam('lg', 'zh')
self.addParam('e_regid', e_regid)
self.addParam('mistyped', '7')
self.addParam('id', id)
self.addParam('authkey', authkey)
self.addParam('e_skey_sig',e_skey_sig)
self.addParam('token', token)
self.addParam('expid', expid)
self.addParam('e_ident', e_ident)
self.addParam('language_selector_time_spent', '0')
self.addParam('feo2_query_status', 'error_security_exception')
self.addParam('rc', '0')
self.addParam('simnum', '0')
self.addParam('sim_state', '1')
self.addParam('client_metrics', self.urlencode('{"attempts":11,"was_activated_from_stub":false}'))
self.addParam('cc', cc)
self.addParam('e_skey_id', e_skey_id)
self.addParam('fdid', fdid)
self.addParam('device_name', 'oriole')
self.addParam('e_skey_val', e_skey_val)
self.addParam('hasinrc', '1')
self.addParam('network_radio_type', '1')
self.addParam('network_operator_name', '')
self.addParam('sim_operator_name','')
self.addParam('advertising_id',advertising_id)
self.addParam('e_keytype','BQ')
self.addParam('pid',pid)
这个搭建成服务了,可以post直接调用服务
def WsaReq(self):
headers = {
'Host': 'v.whatsapp.net',
'Accept-Encoding': 'zip',
'User-Agent': 'WhatsApp/2.23.7.75 Android/13 Device/Google-Pixel_6',
'request_token': WATools.generaterequest_token(),
'WaMsysRequest': str(1)
}
url = self.ReqExit()
print(url)
# try:
# proxies = {'http': '127.0.0.1:7890', 'https': '127.0.0.1:7890'}
try:
r_verify = r.get(url, headers=headers, verify=False)
except Exception as e:
return False
print('response=>', r_verify.json())
# except Exception as e:
# print(str(e))
dict1 = r_verify.json()
print(dict1.get('login'))
if dict1.get('possible_migration'):
print('商业号')
if dict1.get(f'in_app_ban_appeal') == 1:
print('账号被ban')
if dict1.get('reason') == 'incorrect':
print('账号正常')
return True
return False
def fun_test(cc, phone):
con = DataInit(cc, phone)
return con.WsaReq()
from fastapi import FastAPI, Request, Response
app = FastAPI()
# 设置跨域传参
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 设置允许的origins来源
allow_credentials=True,
allow_methods=["*"], # 设置允许跨域的http方法,比如 get、post、put等。
allow_headers=["*"]) # 允许跨域的headers,可以用来鉴别来源等作用。
class CheckForm(BaseModel):
cc: str
phone: str
@app.post("/check_phone", summary='号码检测', description='号码检测')
async def check_phone(checkForm: CheckForm):
v = fun_test(checkForm.cc, checkForm.phone)
return {"result": v}
if __name__ == '__main__':
import uvicorn
uvicorn.run("server:app", host="127.0.0.1", port=5000, proxy_headers=True, workers=1, forwarded_allow_ips='*')
同时会持续更新其他拉群问题。
比如:
其他被forbidden原因 ,
拉群策略,
gcm hcm通知问题,
authtoken问题,
管理员如何设置,
axolotl.db是干啥的,
是否需要回复各种信息,ack message等
设备信息 如何设置
公钥 私钥问题
node压缩 德国开源whatsup项目如何修改
google protobuf 各字段含义和生成
还有其他问题
- 进QQ群:点我