本贴持续更新

情况1

经过大量测试发现只要在拉人的时候出现403等类似情况,接下来再用协议拉人立马就会被办forbidden,随之的即使当前协议号死亡

如何破,注意了先去看下面两张截图:

Image 1 Image 2
是不是很清楚了,可以用的手机号 登录的时候 会弹出 需要编辑电话号码?

被办的是 已禁止此账号使用

解决方案很明显了,所有要拉的物料都需要进行提前筛选和过滤,首先必须要过登录接口检测,

当然这个接口是加密的,需要破解。不过小编已经解开了。这是返回结果

{"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 各字段含义和生成

还有其他问题