.版本 2
.支持库 spec

.程序集 虎牙操作

.子程序 密码sha1, 文本型, 公开, 本程序由[城南Post助手生成]，依赖于Rs支持库！
.参数 参_pass, 文本型
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>

??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>
返回 (value)

.子程序 生成game_did, 文本型, 公开
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>

??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>
返回 (value)

.子程序 生成guid, 文本型, 公开, 本程序由[城南Post助手生成]，依赖于Rs支持库！
.参数 参_N, 文本型, 可空
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>

' // 请自行在软件启动后，调用 rsV8CreateIsolate 命令创建虚拟机！
??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>
返回 (value)

.子程序 计算act, 文本型, 公开, 本程序由[城南Post助手生成]，依赖于Rs支持库！
.参数 参_js, 文本型
.参数 参_数组, 文本型
.参数 参_huyapk, 文本型
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>
.局部变量 jscode, 文本型

jscode ＝ 子文本替换 (#Js_Code5, “[jsss]”, 参_js, , , 真)
' // 请自行在软件启动后，调用 rsV8CreateIsolate 命令创建虚拟机！
??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>

返回 (value)

.子程序 计算act_data, 文本型, 公开, 本程序由[城南Post助手生成]，依赖于Rs支持库！
.参数 参_js, 文本型
.参数 参_数组, 文本型
.参数 参_huyapk, 文本型
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>
.局部变量 jscode, 文本型

jscode ＝ 子文本替换 (#Js_Code5, “[jsss]”, 参_js, , , 真)
' 置剪辑板文本 (jscode)
' 调试输出 (“get_act(” ＋ 参_数组 ＋ “,'” ＋ 参_huyapk ＋ “')”)
' // 请自行在软件启动后，调用 rsV8CreateIsolate 命令创建虚拟机！
??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>
返回 (value)

.子程序 生成requestId, 文本型, 公开, 本程序由[城南Post助手生成]，依赖于Rs支持库！
.局部变量 value, 文本型
.局部变量 v8, , , , <!!!>

??? ()  ' <!!!>
value ＝ ??? ()  ' <!!!>
返回 (value)

.子程序 __________________________________________________________________



.子程序 hy注册, 逻辑型, 公开
.参数 参_号码, 文本型
.参数 参_context, 文本型
.参数 返回sdid, 文本型, 参考
.参数 返回requestId, 文本型, 参考
.参数 返回_authId, 文本型, 参考 可空
.参数 返回sessionData, 文本型, 参考
.局部变量 httpR, WinHttpR
.局部变量 局_IP, 文本型
.局部变量 str, 文本型
.局部变量 body, 文本型
.局部变量 requestId, 文本型
.局部变量 yyjson, json对象
.局部变量 sdid, 文本型
.局部变量 encryptSeed, 文本型
.局部变量 dataurl, 文本型
.局部变量 token, 文本型
.局部变量 reqid, 文本型
.局部变量 heareds, 文本型
.局部变量 sessionData, 文本型
.局部变量 behavior, 文本型
.局部变量 param, 文本型
.局部变量 gurl, 文本型
.局部变量 key, 文本型
.局部变量 vurl, 文本型
.局部变量 js代码, 文本型
.局部变量 mobile, 文本型
.局部变量 authId, 文本型
.局部变量 returnCode, 整数型
.局部变量 password, 文本型
.局部变量 dtuStr, 文本型
.局部变量 puzzleStr, 文本型
.局部变量 segment, 文本型
.局部变量 huyapk, 文本型
.局部变量 info, 文本型
.局部变量 局_act, 文本型
.局部变量 point, 文本型
.局部变量 code, 文本型
.局部变量 time1, 文本型
.局部变量 heareds2, 文本型
.局部变量 heareds3, 文本型

' 固定值  appSign=1ce3bf682483d03f146f58232ec10635   算法MD5(5002_2.6_bfd434f70d40433c6b57a781dbcee91a)
reqid ＝ 生成guid (“1”)
requestId ＝ 生成requestId ()
' game_did ＝ 生成game_did ()
' __yamid_new ＝ 到大写 (生成guid ())
heareds ＝ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Access-Control-Allow-Methods: PUT,GET,POST,OPTIONS” ＋ #换行符 ＋ “Content-type: application/json” ＋ #换行符 ＋ “Access-Control-Allow-Origin: *” ＋ #换行符 ＋ “Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-File-Name” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”
局_IP ＝ GetIP ()
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/token”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “encryptVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.0.1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “fingerprintVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.2.24” ＋ #引号 ＋ “}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“取token--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
token ＝ yyjson.取文本 (“data/token”)
.如果真 (token ＝ “”)
    返回sessionData ＝ “token失败”
    返回 (假)
.如果真结束

body ＝ 子文本替换 (#常量token2, “[token]”, token, , , 真)
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/collect”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“sdid--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
sdid ＝ yyjson.取文本 (“data/sdid”)
.如果真 (sdid ＝ “”)
    返回sessionData ＝ “sdid失败”
    返回 (假)
.如果真结束

heareds2 ＝ “Host: udbreg.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Content-Length: 1498” ＋ #换行符 ＋ “reqid: 57969273” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “uri: 60003” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “content-type: application/json;charset=UTF-8” ＋ #换行符 ＋ “context: ” ＋ 参_context ＋ #换行符 ＋ “lcid: 2052” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://udbreg.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://udbreg.huya.com/web/middle/2.6/57952181/https/d3831f83d3d44c7783f35bd7c6657152”



time1 ＝ 时间_取现行时间戳 ()

behavior ＝ 编码_URL编码_JS (“{” ＋ #引号 ＋ “furl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://www.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “curl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://www.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “user_action” ＋ #引号 ＋ “:[{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “31” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:660,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:377,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:6097,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “25” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:7648,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “25” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:8580,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “26” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:8580,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “26” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:11840,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “28” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:11840,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “28” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:15724,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “26” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:15724,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “26” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:16960,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “27” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:629,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:176,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:17120,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “}]}”, 1)

body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60003” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ behavior ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbreg.huya.com/sms/v2/send/reg”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds2)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“发送短信1--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (httpR.GetStatus () ≠ 200)
    返回sessionData ＝ “发送短信失败”
    返回 (假)

.如果真结束
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取整数 (“returnCode”)
sessionData ＝ yyjson.取文本 (“data/sessionData”)
调试输出 (“returnCode*----”, returnCode)
.判断开始 (returnCode ＝ 0)
    返回sdid ＝ sdid
    返回requestId ＝ requestId
    返回sessionData ＝ sessionData

    返回 (真)
.判断 (returnCode ＝ 10030)
    dataurl ＝ yyjson.取文本 (“data/strategys/0/data”)
    param ＝ 文本_取出中间文本 (dataurl, “param=”, “&”)
    mobile ＝ 文本_取出中间文本 (dataurl, “mobile=”, “&”)
    .如果真 (param ＝ “”)
        返回sessionData ＝ “param失败”
        返回 (假)
    .如果真结束

.默认
    返回sessionData ＝ str
    返回 (假)
.判断结束

heareds3 ＝ “Host: udbrtt.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Content-Length: 1042” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “accept: application/json, text/plain, */*” ＋ #换行符 ＋ “content-type: application/json” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“config3--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
gurl ＝ yyjson.取文本 (“data/gurl”)
key ＝ yyjson.取文本 (“data/key”)
vurl ＝ yyjson.取文本 (“data/vurl”)
js代码 ＝ yyjson.取文本 (“data/js”)
.如果真 (gurl ＝ “”)
    返回sessionData ＝ “config3取参失败”
    返回 (假)
.如果真结束

调试输出 (gurl)

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, gurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“gurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
    返回sessionData ＝ “服务器开小差”
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
dtuStr ＝ yyjson.取文本 (“data/dtuStr”)
puzzleStr ＝ yyjson.取文本 (“data/puzzleStr”)
segment ＝ yyjson.取文本 (“data/segment”)
huyapk ＝ yyjson.取文本 (“data/huyapk”)
code ＝ yyjson.取文本 (“data/code”)
调试输出 (“segment---”, segment)
.如果真 (segment ＝ “”)
    返回sessionData ＝ “segment取参失败”
    返回 (假)
.如果真结束


' 局_act ＝ 计算act (js代码, segment, huyapk)

' 返回 (假)
httpR.Open (“POST”, “http://127.0.0.1:6001/get_authId”)
yyjson.清空 ()
yyjson.置文本 (“huyapk”, huyapk)
yyjson.置文本 (“segment”, segment)
yyjson.置文本 (“hyjs”, js代码)
yyjson.置文本 (“dtuStr”, dtuStr)
yyjson.置文本 (“puzzleStr”, puzzleStr)
httpR.SetRequestHeaders (“content-type: application/json”)
httpR.Send (yyjson.到JSON ())
str ＝ httpR.GetResponseTextU2A ()
调试输出 (“get_authId---”, str)
yyjson.清空 ()
yyjson.解析 (str)
point ＝ yyjson.取文本 (“data”)
.如果真 (yyjson.取整数 (“code”) ＝ 500)
    返回sessionData ＝ “authId滑块失败”
    返回 (假)
.如果真结束



局_act ＝ “[” ＋ 计算act_data (js代码, 文本_替换 (#常量act_data, , , , “[point]”, point, “[code]”, code), huyapk) ＋ “]”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, vurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A56%2C%22clientY%22%3A205%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A1000%2C%22nowTime%22%3A1731503011000%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A72%2C%22clientY%22%3A203%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A4000%2C%22nowTime%22%3A1731503014000%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 局_act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“vurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
authId ＝ yyjson.取文本 (“data/authId”)
.如果真 (authId ＝ “”)
    返回sessionData ＝ “提交滑块失败：” ＋ str
    返回 (假)
.如果真结束



behavior ＝ “%7B%22furl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%2231%22%2C%22x%22%3A690%2C%22y%22%3A383%2C%22d%22%3A953624%2C%22time%22%3A1731651784322%7D%2C%7B%22id%22%3A%2225%22%2C%22d%22%3A954523%2C%22time%22%3A1731651785221%7D%2C%7B%22id%22%3A%2225%22%2C%22d%22%3A961283%2C%22time%22%3A1731651791981%7D%2C%7B%22id%22%3A%2227%22%2C%22x%22%3A626%2C%22y%22%3A173%2C%22d%22%3A961411%2C%22time%22%3A1731651792109%7D%5D%7D”
body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60003” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “authCode” ＋ #引号 ＋ “:” ＋ #引号 ＋ authId ＋ #引号 ＋ “,” ＋ #引号 ＋ “sessionData” ＋ #引号 ＋ “:” ＋ #引号 ＋ sessionData ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ behavior ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbreg.huya.com/sms/v2/send/reg”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds2)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“发送短信222---”, 参_号码, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
.如果真 (yyjson.取文本 (“returnCode”) ＝ “0”)
    返回sessionData ＝ yyjson.取文本 (“data/sessionData”)
    返回_authId ＝ authId
    返回sdid ＝ sdid
    返回requestId ＝ requestId
    返回 (真)
.如果真结束

返回sessionData ＝ “发送短信失败：” ＋ str
返回 (假)

.子程序 hy提交, 逻辑型
.参数 参_号码, 文本型
.参数 参_短信, 文本型
.参数 参_pass, 文本型
.参数 参_context, 文本型
.参数 参_sdid, 文本型
.参数 参_requestId, 文本型
.参数 参_sessionData, 文本型
.参数 参_authId, 文本型, 可空
.参数 返回Cookie, 文本型, 参考
.局部变量 局_IP, 文本型
.局部变量 httpR, WinHttpR
.局部变量 heareds, 文本型
.局部变量 yyjson, json对象
.局部变量 str, 文本型

heareds ＝ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Access-Control-Allow-Methods: PUT,GET,POST,OPTIONS” ＋ #换行符 ＋ “Content-type: application/json” ＋ #换行符 ＋ “Access-Control-Allow-Origin: *” ＋ #换行符 ＋ “Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-File-Name” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”

局_IP ＝ GetIP ()
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbreg.huya.com/web/v2/mobileReg”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60001” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_authId ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “password” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_pass ＋ #引号 ＋ “,” ＋ #引号 ＋ “smsCode” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_短信 ＋ #引号 ＋ “,” ＋ #引号 ＋ “sessionData” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_sessionData ＋ #引号 ＋ “,” ＋ #引号 ＋ “domainList” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%7B%22furl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%2225%22%2C%22d%22%3A1949%2C%22time%22%3A1731664474692%7D%2C%7B%22id%22%3A%2225%22%2C%22d%22%3A4569%2C%22time%22%3A1731664477312%7D%2C%7B%22id%22%3A%2227%22%2C%22x%22%3A639%2C%22y%22%3A168%2C%22d%22%3A4681%2C%22time%22%3A1731664477424%7D%2C%7B%22id%22%3A%2226%22%2C%22d%22%3A4975%2C%22time%22%3A1731664477718%7D%2C%7B%22id%22%3A%2226%22%2C%22d%22%3A7662%2C%22time%22%3A1731664480405%7D%2C%7B%22id%22%3A%2226%22%2C%22d%22%3A56130%2C%22time%22%3A1731664528873%7D%2C%7B%22id%22%3A%2226%22%2C%22d%22%3A63169%2C%22time%22%3A1731664535912%7D%2C%7B%22id%22%3A%2228%22%2C%22d%22%3A63169%2C%22time%22%3A1731664535912%7D%2C%7B%22id%22%3A%2228%22%2C%22d%22%3A65901%2C%22time%22%3A1731664538644%7D%2C%7B%22id%22%3A%2224%22%2C%22x%22%3A369%2C%22y%22%3A348%2C%22d%22%3A65997%2C%22time%22%3A1731664538740%7D%2C%7B%22id%22%3A%2229%22%2C%22x%22%3A429%2C%22y%22%3A311%2C%22d%22%3A66685%2C%22time%22%3A1731664539428%7D%5D%7D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“提交短信”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
.如果真 (yyjson.取文本 (“returnCode”) ＝ “0”)
    返回Cookie ＝ httpR.GetAllResponseCookies ()
    返回 (真)
.如果真结束


返回Cookie ＝ “注册失败：” ＋ str
返回 (假)

.子程序 _________________________________



.子程序 hy登录, 逻辑型, 公开
.参数 参_user, 文本型
.参数 参_pass, 文本型
.参数 参_cook, 文本型
.参数 返回Cookie, 文本型, 参考
.局部变量 httpR, WinHttpR
.局部变量 局_IP, 文本型
.局部变量 str, 文本型
.局部变量 body, 文本型
.局部变量 requestId, 文本型
.局部变量 yyjson, json对象
.局部变量 sdid, 文本型
.局部变量 encryptSeed, 文本型
.局部变量 dataurl, 文本型
.局部变量 token, 文本型
.局部变量 reqid, 文本型
.局部变量 heareds, 文本型
.局部变量 sessionData, 文本型
.局部变量 behavior, 文本型
.局部变量 param, 文本型
.局部变量 gurl, 文本型
.局部变量 key, 文本型
.局部变量 vurl, 文本型
.局部变量 js代码, 文本型
.局部变量 mobile, 文本型
.局部变量 authId, 文本型
.局部变量 returnCode, 整数型
.局部变量 password, 文本型
.局部变量 dtuStr, 文本型
.局部变量 puzzleStr, 文本型
.局部变量 segment, 文本型
.局部变量 huyapk, 文本型
.局部变量 info, 文本型
.局部变量 局_act, 文本型
.局部变量 point, 文本型
.局部变量 code, 文本型
.局部变量 局_context, 文本型
.局部变量 heareds2, 文本型
.局部变量 局_CK, 文本型

' 固定值  appSign=1ce3bf682483d03f146f58232ec10635   算法MD5(5002_2.6_bfd434f70d40433c6b57a781dbcee91a)
httpR.SetTimeouts (8000, 8000, 8000, 8000)

局_context ＝ “WB-” ＋ 生成guid () ＋ “-” ＋ 到大写 (生成guid ()) ＋ “-” ＋ 生成guid ()

reqid ＝ 生成guid (“1”)
requestId ＝ 生成requestId ()
' game_did ＝ 生成game_did ()
' __yamid_new ＝ 到大写 (生成guid ())
heareds ＝ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Access-Control-Allow-Methods: PUT,GET,POST,OPTIONS” ＋ #换行符 ＋ “Content-type: application/json” ＋ #换行符 ＋ “Access-Control-Allow-Origin: *” ＋ #换行符 ＋ “Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-File-Name” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”
局_IP ＝ GetIP ()
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/token”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “encryptVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.0.1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “fingerprintVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.2.23” ＋ #引号 ＋ “}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“取token--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
token ＝ yyjson.取文本 (“data/token”)
.如果真 (token ＝ “”)
    返回Cookie ＝ “token失败”
    返回 (假)
.如果真结束


body ＝ 子文本替换 (#常量token, “[token]”, token, , , 真)
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/collect”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“sdid--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
sdid ＝ yyjson.取文本 (“data/sdid”)
.如果真 (sdid ＝ “”)
    返回Cookie ＝ “sdid失败”
    返回 (假)
.如果真结束



body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “30001” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 局_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “userName” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_user ＋ #引号 ＋ “,” ＋ #引号 ＋ “password” ＋ #引号 ＋ “:” ＋ #引号 ＋ 密码sha1 (参_pass) ＋ #引号 ＋ “,” ＋ #引号 ＋ “domainList” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “remember” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%7B%22furl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%227%22%2C%22d%22%3A2055%2C%22time%22%3A1731711055829%7D%2C%7B%22id%22%3A%227%22%2C%22d%22%3A6100%2C%22time%22%3A1731711059874%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A6100%2C%22time%22%3A1731711059874%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A14235%2C%22time%22%3A1731711068009%7D%2C%7B%22id%22%3A%2211%22%2C%22x%22%3A466%2C%22y%22%3A274%2C%22d%22%3A14539%2C%22time%22%3A1731711068313%7D%5D%7D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “randomStr” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”

调试输出 (“passwordLogin-body---”, body)
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/passwordLogin”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“登录1--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取整数 (“returnCode”)
sessionData ＝ yyjson.取文本 (“data/sessionData”)
调试输出 (“returnCode*----”, returnCode)
.判断开始 (returnCode ＝ 0)
    返回Cookie ＝ httpR.GetAllResponseCookies ()
    返回 (真)
.判断 (returnCode ＝ 10030 或 returnCode ＝ 10039)
    dataurl ＝ yyjson.取文本 (“data/strategys/0/data”)
    param ＝ 文本_取出中间文本 (dataurl, “param=”, “&”)
    mobile ＝ 文本_取出中间文本 (dataurl, “mobile=”, “&”)
    .如果真 (param ＝ “”)
        返回Cookie ＝ “param失败”
        返回 (假)
    .如果真结束

.默认
    返回Cookie ＝ str
    返回 (假)
.判断结束

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
    httpR.SetCookie (参_cook)
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“config3--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
gurl ＝ yyjson.取文本 (“data/gurl”)
key ＝ yyjson.取文本 (“data/key”)
vurl ＝ yyjson.取文本 (“data/vurl”)
js代码 ＝ yyjson.取文本 (“data/js”)
.如果真 (gurl ＝ “”)
    返回Cookie ＝ “config3取参失败”
    返回 (假)
.如果真结束


.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, gurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)

    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“gurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
    返回Cookie ＝ “服务器开小差”
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
dtuStr ＝ yyjson.取文本 (“data/dtuStr”)
puzzleStr ＝ yyjson.取文本 (“data/puzzleStr”)
segment ＝ yyjson.取文本 (“data/segment”)
huyapk ＝ yyjson.取文本 (“data/huyapk”)
code ＝ yyjson.取文本 (“data/code”)
调试输出 (“segment---”, segment)
.如果真 (segment ＝ “”)
    返回Cookie ＝ “segment取参失败”
    返回 (假)
.如果真结束


' 局_act ＝ 计算act (js代码, segment, huyapk)

' 返回 (假)
httpR.Open (“POST”, “http://127.0.0.1:6001/get_authId”)
yyjson.清空 ()
yyjson.置文本 (“huyapk”, huyapk)
yyjson.置文本 (“segment”, segment)
yyjson.置文本 (“hyjs”, js代码)
yyjson.置文本 (“dtuStr”, dtuStr)
yyjson.置文本 (“puzzleStr”, puzzleStr)
httpR.SetRequestHeaders (“content-type: application/json”)
httpR.Send (yyjson.到JSON ())
str ＝ httpR.GetResponseTextU2A ()
调试输出 (“get_authId---”, str)
yyjson.清空 ()
yyjson.解析 (str)
point ＝ yyjson.取文本 (“data”)
.如果真 (yyjson.取整数 (“code”) ＝ 500)
    返回Cookie ＝ “authId滑块失败”
    返回 (假)
.如果真结束



局_act ＝ “[” ＋ 计算act_data (js代码, 文本_替换 (#常量act_data, , , , “[point]”, point, “[code]”, code), huyapk) ＋ “]”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, vurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A67%2C%22clientY%22%3A213%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A80846%2C%22nowTime%22%3A1731708597128%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 局_act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“vurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
authId ＝ yyjson.取文本 (“data/authId”)
.如果真 (authId ＝ “”)
    返回Cookie ＝ “提交滑块失败：” ＋ str
    返回 (假)
.如果真结束


body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “30001” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 局_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ authId ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “userName” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_user ＋ #引号 ＋ “,” ＋ #引号 ＋ “password” ＋ #引号 ＋ “:” ＋ #引号 ＋ 密码sha1 (参_pass) ＋ #引号 ＋ “,” ＋ #引号 ＋ “authcode” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sessionData” ＋ #引号 ＋ “:” ＋ #引号 ＋ sessionData ＋ #引号 ＋ “,” ＋ #引号 ＋ “domainList” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “remember” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%7B%22furl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%227%22%2C%22d%22%3A1090%2C%22time%22%3A1731708503578%7D%2C%7B%22id%22%3A%227%22%2C%22d%22%3A5490%2C%22time%22%3A1731708507978%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A5490%2C%22time%22%3A1731708507978%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A10015%2C%22time%22%3A1731708512503%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A13081%2C%22time%22%3A1731708515569%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A13083%2C%22time%22%3A1731708515571%7D%2C%7B%22id%22%3A%2211%22%2C%22x%22%3A535%2C%22y%22%3A291%2C%22d%22%3A13270%2C%22time%22%3A1731708515758%7D%2C%7B%22id%22%3A%2211%22%2C%22d%22%3A98329%2C%22time%22%3A1731708600817%7D%5D%7D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “randomStr” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/passwordLogin”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“登录222---”, 参_user, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取整数 (“returnCode”)
sessionData ＝ yyjson.取文本 (“data/sessionData”)
.判断开始 (returnCode ＝ 0)
    返回Cookie ＝ httpR.GetAllResponseCookies ()
    返回 (真)
.判断 (returnCode ＝ 10030 或 returnCode ＝ 10039)
    dataurl ＝ yyjson.取文本 (“data/strategys/0/data”)
    param ＝ 文本_取出中间文本 (dataurl, “param=”, “&”)
    mobile ＝ 文本_取出中间文本 (dataurl, “mobile=”, “&”)
    .如果真 (param ＝ “”)
        返回Cookie ＝ “param失败”
        返回 (假)
    .如果真结束

.默认
    返回Cookie ＝ str
    返回 (假)
.判断结束


.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
    httpR.SetCookie (参_cook)
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“config3--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
gurl ＝ yyjson.取文本 (“data/gurl”)
key ＝ yyjson.取文本 (“data/key”)
vurl ＝ yyjson.取文本 (“data/vurl”)
js代码 ＝ yyjson.取文本 (“data/js”)
.如果真 (gurl ＝ “”)
    返回Cookie ＝ “config3取参失败”
    返回 (假)
.如果真结束


.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, gurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)

    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“gurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
    返回Cookie ＝ “服务器开小差”
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
dtuStr ＝ yyjson.取文本 (“data/dtuStr”)
puzzleStr ＝ yyjson.取文本 (“data/puzzleStr”)
segment ＝ yyjson.取文本 (“data/segment”)
huyapk ＝ yyjson.取文本 (“data/huyapk”)
code ＝ yyjson.取文本 (“data/code”)
调试输出 (“segment---”, segment)
.如果真 (segment ＝ “”)
    返回Cookie ＝ “segment取参失败”
    返回 (假)
.如果真结束


' 局_act ＝ 计算act (js代码, segment, huyapk)

' 返回 (假)
httpR.Open (“POST”, “http://127.0.0.1:6001/get_authId”)
yyjson.清空 ()
yyjson.置文本 (“huyapk”, huyapk)
yyjson.置文本 (“segment”, segment)
yyjson.置文本 (“hyjs”, js代码)
yyjson.置文本 (“dtuStr”, dtuStr)
yyjson.置文本 (“puzzleStr”, puzzleStr)
httpR.SetRequestHeaders (“content-type: application/json”)
httpR.Send (yyjson.到JSON ())
str ＝ httpR.GetResponseTextU2A ()
调试输出 (“get_authId---”, str)
yyjson.清空 ()
yyjson.解析 (str)
point ＝ yyjson.取文本 (“data”)
.如果真 (yyjson.取整数 (“code”) ＝ 500)
    返回Cookie ＝ “authId滑块失败”
    返回 (假)
.如果真结束



局_act ＝ “[” ＋ 计算act_data (js代码, 文本_替换 (#常量act_data, , , , “[point]”, point, “[code]”, code), huyapk) ＋ “]”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, vurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “4” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A67%2C%22clientY%22%3A213%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A80846%2C%22nowTime%22%3A1731708597128%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 局_act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)

    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“vurl---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
authId ＝ yyjson.取文本 (“data/authId”)
.如果真 (authId ＝ “”)
    返回Cookie ＝ “提交滑块失败：” ＋ str
    返回 (假)
.如果真结束




body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “30001” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 局_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ authId ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “userName” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_user ＋ #引号 ＋ “,” ＋ #引号 ＋ “password” ＋ #引号 ＋ “:” ＋ #引号 ＋ 密码sha1 (参_pass) ＋ #引号 ＋ “,” ＋ #引号 ＋ “authcode” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sessionData” ＋ #引号 ＋ “:” ＋ #引号 ＋ sessionData ＋ #引号 ＋ “,” ＋ #引号 ＋ “domainList” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “remember” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%7B%22furl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fwww.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%227%22%2C%22d%22%3A1090%2C%22time%22%3A1731708503578%7D%2C%7B%22id%22%3A%227%22%2C%22d%22%3A5490%2C%22time%22%3A1731708507978%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A5490%2C%22time%22%3A1731708507978%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A10015%2C%22time%22%3A1731708512503%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A13081%2C%22time%22%3A1731708515569%7D%2C%7B%22id%22%3A%228%22%2C%22d%22%3A13083%2C%22time%22%3A1731708515571%7D%2C%7B%22id%22%3A%2211%22%2C%22x%22%3A535%2C%22y%22%3A291%2C%22d%22%3A13270%2C%22time%22%3A1731708515758%7D%2C%7B%22id%22%3A%2211%22%2C%22d%22%3A98329%2C%22time%22%3A1731708600817%7D%5D%7D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “randomStr” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/passwordLogin”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“登录33---”, 参_user, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取整数 (“returnCode”)
sessionData ＝ yyjson.取文本 (“data/sessionData”)
.如果真 (returnCode ＝ 0)
    返回Cookie ＝ httpR.GetAllResponseCookies ()
    返回 (真)
.如果真结束

返回Cookie ＝ “登录失败：” ＋ str
返回 (假)


.子程序 hy注册_发送短信, 逻辑型, 公开
.参数 参_号码, 文本型
.参数 参_context, 文本型
.参数 返回sdid, 文本型, 参考
.参数 返回sessionData, 文本型, 参考
.局部变量 httpR, WinHttpR
.局部变量 局_IP, 文本型
.局部变量 str, 文本型
.局部变量 body, 文本型
.局部变量 requestId, 文本型
.局部变量 yyjson, json对象
.局部变量 sdid, 文本型
.局部变量 encryptSeed, 文本型
.局部变量 dataurl, 文本型
.局部变量 token, 文本型
.局部变量 reqid, 文本型
.局部变量 heareds, 文本型
.局部变量 sessionData, 文本型
.局部变量 behavior, 文本型
.局部变量 param, 文本型
.局部变量 gurl, 文本型
.局部变量 key, 文本型
.局部变量 vurl, 文本型
.局部变量 js代码, 文本型
.局部变量 mobile, 文本型
.局部变量 authId, 文本型
.局部变量 returnCode, 整数型
.局部变量 password, 文本型
.局部变量 dtuStr, 文本型
.局部变量 puzzleStr, 文本型
.局部变量 segment, 文本型
.局部变量 huyapk, 文本型
.局部变量 info, 文本型
.局部变量 局_act, 文本型
.局部变量 point, 文本型
.局部变量 code, 文本型
.局部变量 time1, 文本型
.局部变量 heareds2, 文本型
.局部变量 heareds3, 文本型
.局部变量 CK1, 文本型
.局部变量 hZiStr, 文本型
.局部变量 nextAuthUrl, 文本型
.局部变量 返回act, 文本型
.局部变量 str2, 文本型

' 固定值  appSign=1ce3bf682483d03f146f58232ec10635   算法MD5(5002_2.6_bfd434f70d40433c6b57a781dbcee91a)
httpR.SetTimeouts (5000, 5000, 5000, 5000)
reqid ＝ 生成guid (“1”)
requestId ＝ 生成requestId ()
调试输出 (reqid, , requestId)
' game_did ＝ 生成game_did ()
' __yamid_new ＝ 到大写 (生成guid ())
heareds ＝ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Access-Control-Allow-Methods: PUT,GET,POST,OPTIONS” ＋ #换行符 ＋ “Content-type: application/json” ＋ #换行符 ＋ “Access-Control-Allow-Origin: *” ＋ #换行符 ＋ “Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-File-Name” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”
局_IP ＝ GetIP ()

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/token”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “encryptVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.0.1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “fingerprintVersion” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1.2.23” ＋ #引号 ＋ “}”)
    str ＝ httpR.GetResponseTextU2A ()
    ' 调试输出 (“取token--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
token ＝ yyjson.取文本 (“data/token”)
.如果真 (token ＝ “”)
    返回sessionData ＝ “token失败”
    返回 (假)
.如果真结束

body ＝ 子文本替换 (#常量token2, “[token]”, token, , , 真)
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://df.huya.com/web/df/collect”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“sdid--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
CK1 ＝ httpR.GetAllResponseCookies ()

yyjson.清空 ()
yyjson.解析 (str)
sdid ＝ yyjson.取文本 (“data/sdid”)
.如果真 (sdid ＝ “”)
    返回sessionData ＝ “sdid失败”
    返回 (假)
.如果真结束


heareds2 ＝ “Host: udblgn.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “reqid: ” ＋ requestId ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “uri: 60027” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “content-type: application/json;charset=UTF-8” ＋ #换行符 ＋ “context: WB-b5bbf465f0074002ad9fdb8732b08bd1-CAFDFB9704C0000157EE16E0B3809C50-” ＋ #换行符 ＋ “lcid: 2052” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://udblgn.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://udblgn.huya.com/web/middle/2.6/59139808/https/b5bbf465f0074002ad9fdb8732b08bd1”



time1 ＝ 时间_取现行时间戳 ()

behavior ＝ 编码_URL编码_JS (“{” ＋ #引号 ＋ “furl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://i.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “curl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://i.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “user_action” ＋ #引号 ＋ “:[{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “12” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:568,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:52,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:1649,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:4403,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:7761,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:13314,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:16380,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “18” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:628,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:178,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:16507,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “}]}”, 1)

body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60027” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%7B%22furl%22%3A%22https%3A%2F%2Fi.huya.com%2F%22%2C%22curl%22%3A%22https%3A%2F%2Fi.huya.com%2F%22%2C%22user_action%22%3A%5B%7B%22id%22%3A%2212%22%2C%22x%22%3A568%2C%22y%22%3A52%2C%22d%22%3A1649%2C%22time%22%3A1732868741434%7D%2C%7B%22id%22%3A%2217%22%2C%22d%22%3A4403%2C%22time%22%3A1732868744188%7D%2C%7B%22id%22%3A%2217%22%2C%22d%22%3A7761%2C%22time%22%3A1732868747546%7D%2C%7B%22id%22%3A%2217%22%2C%22d%22%3A13314%2C%22time%22%3A1732868753099%7D%2C%7B%22id%22%3A%2217%22%2C%22d%22%3A16380%2C%22time%22%3A1732868756165%7D%2C%7B%22id%22%3A%2218%22%2C%22x%22%3A628%2C%22y%22%3A178%2C%22d%22%3A16507%2C%22time%22%3A1732868756292%7D%5D%7D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fi.huya.com%2F” ＋ #引号 ＋ “}}”
' 调试输出 (body)
' 网页_访问_对象 (“https://udblgn.huya.com/web/v2/smsCode”, 1, body, , , heareds2)
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/smsCode”)
    httpR.SetCookie (CK1)
    httpR.SetRequestHeaders (heareds2)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“1111GetAllResponseCookies---”, httpR.GetAllResponseCookies ())
    调试输出 (“发送短信1--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (httpR.GetStatus () ≠ 200)
    返回sessionData ＝ “发送短信失败”
    返回 (假)

.如果真结束
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取整数 (“returnCode”)
sessionData ＝ yyjson.取文本 (“data/sessionData”)
' 调试输出 (“returnCode*----”, returnCode)
.判断开始 (returnCode ＝ 0)
    返回sdid ＝ sdid
    返回sessionData ＝ sessionData
    返回 (真)

.判断 (returnCode ＝ 10030)

    dataurl ＝ yyjson.取文本 (“data/strategys/0/data”)
    param ＝ 文本_取出中间文本 (dataurl, “param=”, “&”)
    mobile ＝ 文本_取出中间文本 (dataurl, “mobile=”, “&”)
    调试输出 (“dataurl===”, dataurl, param, mobile)
    .如果真 (param ＝ “”)
        返回sessionData ＝ “param失败”
        返回 (假)
    .如果真结束

.默认
    返回sessionData ＝ str
    返回 (假)
.判断结束

' 调试输出 (“mobile---”, mobile)
heareds3 ＝ “Host: udbrtt.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “accept: application/json, text/plain, */*” ＋ #换行符 ＋ “content-type: application/json” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=1732867200000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
    str ＝ httpR.GetResponseTextU2A ()
    ' 调试输出 (“config3--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
gurl ＝ yyjson.取文本 (“data/gurl”)
key ＝ yyjson.取文本 (“data/key”)
vurl ＝ yyjson.取文本 (“data/vurl”)
js代码 ＝ yyjson.取文本 (“data/js”)
.如果真 (gurl ＝ “”)
    返回sessionData ＝ “config3取参失败”
    返回 (假)
.如果真结束


.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, gurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://aq.huya.com/p/udb_login.html?v=” ＋ 取文本左边 (时间_取现行时间戳 (), 8) ＋ “00000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    ' 调试输出 (“gurl--00000-”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
    返回sessionData ＝ “服务器开小差”
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
dtuStr ＝ yyjson.取文本 (“data/dtuStr”)
puzzleStr ＝ yyjson.取文本 (“data/puzzleStr”)
segment ＝ yyjson.取文本 (“data/segment”)
huyapk ＝ yyjson.取文本 (“data/huyapk”)
code ＝ yyjson.取文本 (“data/code”)
' 调试输出 (“segment---”, segment)
.如果真 (segment ＝ “”)
    返回sessionData ＝ “segment取参失败”
    返回 (假)
.如果真结束


' 局_act ＝ 计算act (js代码, segment, huyapk)
yyjson.清空 ()
yyjson.置文本 (“huyapk”, huyapk)
yyjson.置文本 (“segment”, segment)
yyjson.置文本 (“hyjs”, js代码)
yyjson.置文本 (“dtuStr”, dtuStr)
yyjson.置文本 (“puzzleStr”, puzzleStr)

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“http://127.0.0.1:6221/get_authId”, 1, yyjson.到JSON (), , , “content-type: application/json”, ))
调试输出 (“get_authId---”, str)
yyjson.清空 ()
yyjson.解析 (str)
point ＝ yyjson.取文本 (“data”)
.如果真 (yyjson.取整数 (“code”) ＝ 500)
    返回sessionData ＝ “authId滑块失败”
    返回 (假)
.如果真结束



局_act ＝ “[” ＋ 计算act_data (js代码, 文本_替换 (#常量act_data, , , , “[point]”, point, “[code]”, code), huyapk) ＋ “]”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, vurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds3)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “page=https://aq.huya.com/p/udb_login.html?v=1732867200000” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A56%2C%22clientY%22%3A205%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A1000%2C%22nowTime%22%3A1731503011000%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A72%2C%22clientY%22%3A203%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A4000%2C%22nowTime%22%3A1731503014000%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 局_act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“str---”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “验证失败”, , 假) ≠ -1)
    返回sessionData ＝ “滑块验证失败”
    返回 (假)

.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
authId ＝ yyjson.取文本 (“data/authId”)
.如果真 (authId ＝ “”)
    .如果 (寻找文本 (str, “nextAuthUrl”, , 假) ≠ -1)
        返回sessionData ＝ “出现文字点选”
        nextAuthUrl ＝ yyjson.取文本 (“data/nextAuthUrl”)
        ' 调试输出 (“nextAuthUrl---”, nextAuthUrl)
        param ＝ 文本_取出中间文本 (nextAuthUrl, “param=”, “&”)
        ' mobile ＝ 文本_取出中间文本 (nextAuthUrl, “mobile=”, “&”)
        .如果真 (param ＝ “”)
            返回sessionData ＝ “param失败”
            返回 (假)
        .如果真结束


        .计次循环首 (5, )
            httpR.SetProxy (局_IP)
            httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
            httpR.SetCookie ()
            httpR.SetRequestHeaders (heareds3)
            httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ dataurl ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
            str ＝ httpR.GetResponseTextU2A ()
            ' 调试输出 (“config3--”, str)
            .如果 (httpR.GetStatus () ＝ 200)
                跳出循环 ()
            .否则
                局_IP ＝ GetIP ()
            .如果结束

        .计次循环尾 ()
        yyjson.清空 ()
        yyjson.解析 (str)
        gurl ＝ yyjson.取文本 (“data/gurl”)
        key ＝ yyjson.取文本 (“data/key”)
        vurl ＝ yyjson.取文本 (“data/vurl”)
        js代码 ＝ yyjson.取文本 (“data/js”)
        .如果真 (gurl ＝ “”)
            返回sessionData ＝ “config3取参失败”
            返回 (假)
        .如果真结束


        .计次循环首 (5, )
            httpR.SetProxy (局_IP)
            httpR.Open (“POST”, gurl)
            httpR.SetCookie ()
            httpR.SetRequestHeaders (heareds3)
            httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “16” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ dataurl ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
            str ＝ httpR.GetResponseTextU2A ()
            .如果 (httpR.GetStatus () ＝ 200)
                跳出循环 ()
            .否则
                局_IP ＝ GetIP ()
            .如果结束

        .计次循环尾 ()
        .如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
            返回sessionData ＝ “服务器开小差”
            返回 (假)
        .如果真结束

        yyjson.清空 ()
        yyjson.解析 (str)
        dtuStr ＝ yyjson.取文本 (“data/dTuStr”)
        hZiStr ＝ yyjson.取文本 (“data/hZiStr”)
        huyapk ＝ yyjson.取文本 (“data/huyapk”)
        code ＝ yyjson.取文本 (“data/code”)
        .如果真 (code ＝ “”)
            返回sessionData ＝ “code取参失败”
            返回 (假)
        .如果真结束


        yyjson.清空 ()
        yyjson.置文本 (“huyapk”, huyapk)
        yyjson.置文本 (“hyjs”, js代码)
        yyjson.置文本 (“dTuStr”, dtuStr)
        yyjson.置文本 (“hZiStr”, hZiStr)
        yyjson.置文本 (“code”, code)
        yyjson.置文本 (“vurl”, vurl)
        yyjson.置文本 (“nextAuthUrl”, nextAuthUrl)
        str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“http://127.0.0.1:6221/get_authId_dx”, 1, yyjson.到JSON (), , , “content-type: application/json”, , , , , , 30))
        yyjson.清空 ()
        yyjson.解析 (str)
        返回act ＝ yyjson.取文本 (“data”)
        ' 调试输出 (“返回act---”, 返回act)
        .如果真 (返回act ＝ “”)
            返回sessionData ＝ “authId点选失败”
            返回 (假)
        .如果真结束



        ' 提交汉字点选
        .计次循环首 (5, )
            httpR.SetProxy (局_IP)
            httpR.Open (“POST”, vurl)
            httpR.SetCookie ()
            httpR.SetRequestHeaders (heareds3)
            httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ dataurl ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A286%2C%22clientY%22%3A111%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A14660%2C%22nowTime%22%3A1739773070122%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%22%2C%22clientX%22%3A214%2C%22clientY%22%3A140%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A15724%2C%22nowTime%22%3A1739773071186%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%5Cn2%22%2C%22clientX%22%3A147%2C%22clientY%22%3A163%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A16956%2C%22nowTime%22%3A1739773072418%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 返回act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)

            str2 ＝ httpR.GetResponseTextU2A ()
            ' 调试输出 (“str2---”, str2)
            .如果 (httpR.GetStatus () ＝ 200)
                跳出循环 ()
            .否则
                局_IP ＝ GetIP ()
            .如果结束

        .计次循环尾 ()
        yyjson.清空 ()
        yyjson.解析 (str2)

        .如果真 (yyjson.取文本 (“data/authId”) ＝ “”)
            返回sessionData ＝ “提交滑块失败：” ＋ str2
            返回 (假)

        .如果真结束


    .否则
        返回sessionData ＝ “提交滑块失败：” ＋ str
        返回 (假)
    .如果结束


.如果真结束


behavior ＝ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A212%2C%22clientY%22%3A122%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A5150%2C%22nowTime%22%3A1734936183084%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%22%2C%22clientX%22%3A115%2C%22clientY%22%3A103%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A6358%2C%22nowTime%22%3A1734936184292%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%5Cn2%22%2C%22clientX%22%3A64%2C%22clientY%22%3A118%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A6921%2C%22nowTime%22%3A1734936184855%7D%5D”


' time1 ＝ 时间_取现行时间戳 ()
' behavior ＝ 编码_URL编码_JS (“{” ＋ #引号 ＋ “furl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://i.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “curl” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https://i.huya.com/” ＋ #引号 ＋ “,” ＋ #引号 ＋ “user_action” ＋ #引号 ＋ “:[{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “12” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:568,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:52,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:1649,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:4403,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:7761,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:13314,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “17” ＋ #引号 ＋ “,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:16380,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “},{” ＋ #引号 ＋ “id” ＋ #引号 ＋ “:” ＋ #引号 ＋ “18” ＋ #引号 ＋ “,” ＋ #引号 ＋ “x” ＋ #引号 ＋ “:628,” ＋ #引号 ＋ “y” ＋ #引号 ＋ “:178,” ＋ #引号 ＋ “d” ＋ #引号 ＋ “:16507,” ＋ #引号 ＋ “time” ＋ #引号 ＋ “:” ＋ time1 ＋ “}]}”, 1)

body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60027” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ requestId ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ behavior ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fi.huya.com%2F” ＋ #引号 ＋ “}}”

.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/smsCode”)
    httpR.SetCookie (CK1)
    httpR.SetRequestHeaders (heareds2)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“发送短信222---”, 参_号码, str)
    ' 调试输出 (“GetAllResponseCookies---”, httpR.GetAllResponseCookies ())
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
.如果真 (yyjson.取文本 (“returnCode”) ＝ “0”)
    返回sdid ＝ sdid
    返回sessionData ＝ yyjson.取文本 (“data/sessionData”)

    返回 (真)
.如果真结束

返回sessionData ＝ “发送短信失败：” ＋ str
返回 (假)

.子程序 hy提交_短信登录, 逻辑型
.参数 参_号码, 文本型
.参数 参_短信, 文本型
.参数 参_context, 文本型
.参数 参_sdid, 文本型
.参数 参_sessionData, 文本型
.参数 返回Cookie, 文本型, 参考
.局部变量 局_IP, 文本型
.局部变量 httpR, WinHttpR
.局部变量 heareds, 文本型
.局部变量 yyjson, json对象
.局部变量 str, 文本型
.局部变量 body, 文本型
.局部变量 behavior, 文本型
.局部变量 reqid, 文本型
.局部变量 returnCode, 文本型
.局部变量 dataurl, 文本型
.局部变量 sessionData, 文本型

reqid ＝ 生成guid (“1”)

heareds ＝ “Host: udblgn.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “reqid: ” ＋ reqid ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “uri: 60025” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “content-type: application/json;charset=UTF-8” ＋ #换行符 ＋ “context: ” ＋ 参_context ＋ #换行符 ＋ “lcid: 2052” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Origin: https://udblgn.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://udblgn.huya.com/web/middle/2.6/59139808/https/b5bbf465f0074002ad9fdb8732b08bd1”

behavior ＝ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A212%2C%22clientY%22%3A122%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A5150%2C%22nowTime%22%3A1734936183084%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%22%2C%22clientX%22%3A115%2C%22clientY%22%3A103%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A6358%2C%22nowTime%22%3A1734936184292%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%5Cn2%22%2C%22clientX%22%3A64%2C%22clientY%22%3A118%2C%22clientWidth%22%3A350%2C%22clientHeight%22%3A268%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A6921%2C%22nowTime%22%3A1734936184855%7D%5D”

body ＝ “{” ＋ #引号 ＋ “uri” ＋ #引号 ＋ “:” ＋ #引号 ＋ “60025” ＋ #引号 ＋ “,” ＋ #引号 ＋ “version” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2.6” ＋ #引号 ＋ “,” ＋ #引号 ＋ “context” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_context ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appSign” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1ce3bf682483d03f146f58232ec10635” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “sdid” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_sdid ＋ #引号 ＋ “,” ＋ #引号 ＋ “lcid” ＋ #引号 ＋ “:” ＋ #引号 ＋ “2052” ＋ #引号 ＋ “,” ＋ #引号 ＋ “byPass” ＋ #引号 ＋ “:” ＋ #引号 ＋ “3” ＋ #引号 ＋ “,” ＋ #引号 ＋ “requestId” ＋ #引号 ＋ “:” ＋ #引号 ＋ reqid ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “phone” ＋ #引号 ＋ “:” ＋ #引号 ＋ “086” ＋ 参_号码 ＋ #引号 ＋ “,” ＋ #引号 ＋ “authId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “authcode” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_短信 ＋ #引号 ＋ “,” ＋ #引号 ＋ “sessionData” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_sessionData ＋ #引号 ＋ “,” ＋ #引号 ＋ “domainList” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “remember” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ behavior ＋ #引号 ＋ “,” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ “https%3A%2F%2Fwww.huya.com%2F” ＋ #引号 ＋ “}}”

调试输出 (“body==================================”, body)
局_IP ＝ GetIP ()
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/smsLogin”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (body)
    str ＝ httpR.GetResponseTextU2A ()
    ' str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://udblgn.huya.com/web/v2/smsLogin”, 1, body, , , heareds, , , 真, , 局_IP))

    调试输出 (“提交短信”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
returnCode ＝ yyjson.取文本 (“returnCode”)
.如果真 (returnCode ＝ “0”)
    返回Cookie ＝ httpR.GetAllResponseCookies ()
    返回 (真)
.如果真结束
.如果真 (returnCode ＝ “10030”)
    dataurl ＝ yyjson.取文本 (“data/strategys/0/data”)
    .如果真 (点选提交 (dataurl, 参_sdid, 返回Cookie) ＝ 假)
        返回Cookie ＝ “点选失败”
        返回 (假)
    .如果真结束

    程序_延时 (1000)

    局_IP ＝ GetIP ()
    .计次循环首 (5, )
        httpR.SetProxy (局_IP)
        httpR.Open (“POST”, “https://udblgn.huya.com/web/v2/smsLogin”)
        httpR.SetCookie ()
        httpR.SetRequestHeaders (heareds)
        httpR.Send (body)
        str ＝ httpR.GetResponseTextU2A ()

        调试输出 (“提交短信222”, str)
        .如果 (httpR.GetStatus () ＝ 200)
            跳出循环 ()
        .否则
            局_IP ＝ GetIP ()
        .如果结束

    .计次循环尾 ()
    yyjson.清空 ()
    yyjson.解析 (str)
    returnCode ＝ yyjson.取文本 (“returnCode”)
    .如果真 (returnCode ＝ “0”)
        返回Cookie ＝ httpR.GetAllResponseCookies ()
        返回 (真)
    .如果真结束

.如果真结束




返回Cookie ＝ “注册失败：” ＋ str
返回 (假)

.子程序 点选提交, 逻辑型
.参数 参_url, 文本型
.参数 参_sdid, 文本型
.参数 返回err0, 文本型, 参考
.局部变量 param, 文本型
.局部变量 httpR, WinHttpR
.局部变量 局_IP, 文本型
.局部变量 heareds, 文本型
.局部变量 mobile, 文本型
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 gurl, 文本型
.局部变量 key, 文本型
.局部变量 vurl, 文本型
.局部变量 js代码, 文本型
.局部变量 dtuStr, 文本型
.局部变量 hZiStr, 文本型
.局部变量 huyapk, 文本型
.局部变量 code, 文本型
.局部变量 返回act, 文本型
.局部变量 str2, 文本型

heareds ＝ “Host: udbrtt.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “accept: application/json, text/plain, */*” ＋ #换行符 ＋ “content-type: application/json” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Origin: https://aq.huya.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://aq.huya.com/”
param ＝ 文本_取出中间文本 (参_url, “param=”, “&”)
mobile ＝ 文本_取出中间文本 (参_url, “mobile=”, “&”)
.如果真 (param ＝ “”)
    返回err0 ＝ “取param失败”
    返回 (假)
.如果真结束

局_IP ＝ GetIP ()
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, “https://udbrtt.huya.com/auth/client/config3”)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “20” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_url ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0UnHUgv0_qmfD4KAKlwzhqXulp4jLyvH0eB65-yW4VUvcvTEg65KxqTd0R4n042jT6HwkclZgBLxOXXiciYxj9ybzpsjNuFcvQLLfzSPLjw7WVkn9LtfFJw_Qo4kgKr8OZHDqNnuwg612sGyflFn1dlAMlnZhIeR7EriL7VyM-8evFAoMNIxINRCkVMhyGszI” ＋ #引号 ＋ “,” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0}}”)
    str ＝ httpR.GetResponseTextU2A ()
    调试输出 (“config3--”, str)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
gurl ＝ yyjson.取文本 (“data/gurl”)
key ＝ yyjson.取文本 (“data/key”)
vurl ＝ yyjson.取文本 (“data/vurl”)
js代码 ＝ yyjson.取文本 (“data/js”)
.如果真 (gurl ＝ “”)
    返回err0 ＝ “config3取参失败”
    返回 (假)
.如果真结束


.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, gurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “20” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_url ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0UnHUgv0_qmfD4KAKlwzhqXulp4jLyvH0eB65-yW4VUvcvTEg65KxqTd0R4n042jT6HwkclZgBLxOXXiciYxj9ybzpsjNuFcvQLLfzSPLjw7WVkn9LtfFJw_Qo4kgKr8OZHDqNnuwg612sGyflFn1dlAMlnZhIeR7EriL7VyM-8evFAoMNIxINRCkVMhyGszI” ＋ #引号 ＋ “,” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “cTuIndex” ＋ #引号 ＋ “:0,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str ＝ httpR.GetResponseTextU2A ()
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
.如果真 (寻找文本 (str, “服务器开小差”, , 假) ≠ -1)
    返回err0 ＝ “服务器开小差”
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (str)
dtuStr ＝ yyjson.取文本 (“data/dTuStr”)
hZiStr ＝ yyjson.取文本 (“data/hZiStr”)
huyapk ＝ yyjson.取文本 (“data/huyapk”)
code ＝ yyjson.取文本 (“data/code”)
.如果真 (code ＝ “”)
    返回err0 ＝ “code取参失败”
    返回 (假)
.如果真结束


yyjson.清空 ()
yyjson.置文本 (“huyapk”, huyapk)
yyjson.置文本 (“hyjs”, js代码)
yyjson.置文本 (“dTuStr”, dtuStr)
yyjson.置文本 (“hZiStr”, hZiStr)
yyjson.置文本 (“code”, code)
yyjson.置文本 (“vurl”, vurl)
yyjson.置文本 (“nextAuthUrl”, 参_url)
str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“http://127.0.0.1:6221/get_authId_dx”, 1, yyjson.到JSON (), , , “content-type: application/json”, , , , , , 30))
yyjson.清空 ()
yyjson.解析 (str)
返回act ＝ yyjson.取文本 (“data”)

调试输出 (“返回act---”, 返回act)
.如果真 (返回act ＝ “”)
    返回err0 ＝ “authId点选失败”
    返回 (假)
.如果真结束


' 提交汉字点选
.计次循环首 (5, )
    httpR.SetProxy (局_IP)
    httpR.Open (“POST”, vurl)
    httpR.SetCookie ()
    httpR.SetRequestHeaders (heareds)
    httpR.Send (“{” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “data” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “urlParamMap” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “hideShareButton” ＋ #引号 ＋ “:” ＋ #引号 ＋ “1” ＋ #引号 ＋ “,” ＋ #引号 ＋ “param” ＋ #引号 ＋ “:” ＋ #引号 ＋ param ＋ #引号 ＋ “,” ＋ #引号 ＋ “sceneType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “20” ＋ #引号 ＋ “,” ＋ #引号 ＋ “appId” ＋ #引号 ＋ “:” ＋ #引号 ＋ “5002” ＋ #引号 ＋ “,” ＋ #引号 ＋ “mobile” ＋ #引号 ＋ “:” ＋ #引号 ＋ mobile ＋ #引号 ＋ “,” ＋ #引号 ＋ “allowRefresh” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0” ＋ #引号 ＋ “},” ＋ #引号 ＋ “page” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_url ＋ #引号 ＋ “,” ＋ #引号 ＋ “behavior” ＋ #引号 ＋ “:” ＋ #引号 ＋ “%5B%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%22%22%2C%22clientX%22%3A287%2C%22clientY%22%3A632%2C%22clientWidth%22%3A1483%2C%22clientHeight%22%3A1015%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A7876%2C%22nowTime%22%3A1739787037016%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%22%2C%22clientX%22%3A884%2C%22clientY%22%3A469%2C%22clientWidth%22%3A1483%2C%22clientHeight%22%3A1015%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A8996%2C%22nowTime%22%3A1739787038136%7D%2C%7B%22action%22%3A%22mousedown%22%2C%22id%22%3A%22%22%2C%22txt%22%3A%221%5Cn2%22%2C%22clientX%22%3A641%2C%22clientY%22%3A596%2C%22clientWidth%22%3A1483%2C%22clientHeight%22%3A1015%2C%22isTrusted%22%3Atrue%2C%22timeStamp%22%3A10228%2C%22nowTime%22%3A1739787039368%7D%5D” ＋ #引号 ＋ “,” ＋ #引号 ＋ “info” ＋ #引号 ＋ “:” ＋ #引号 ＋ “0UnHUgv0_qmfD4KAKlwzhqXulp4jLyvH0eB65-yW4VUvcvTEg65KxqTd0R4n042jT6HwkclZgBLxOXXiciYxj9ybzpsjNuFcvQLLfzSPLjw7WVkn9LtfFJw_Qo4kgKr8OZHDqNnuwg612sGyflFn1dlAMlnZhIeR7EriL7VyM-8evFAoMNIxINRCkVMhyGszI” ＋ #引号 ＋ “,” ＋ #引号 ＋ “wupData” ＋ #引号 ＋ “:” ＋ #引号 ＋ “” ＋ #引号 ＋ “,” ＋ #引号 ＋ “act” ＋ #引号 ＋ “:” ＋ 返回act ＋ “,” ＋ #引号 ＋ “ver” ＋ #引号 ＋ “:5}}”)
    str2 ＝ httpR.GetResponseTextU2A ()
    调试输出 (“str2---”, str2)
    .如果 (httpR.GetStatus () ＝ 200)
        跳出循环 ()
    .否则
        局_IP ＝ GetIP ()
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str2)
.如果真 (yyjson.取文本 (“data/authId”) ≠ “”)
    返回 (真)
.如果真结束

返回err0 ＝ “点选失败：” ＋ str2
返回 (假)

