1520 lines
112 KiB
Plaintext
1520 lines
112 KiB
Plaintext
.版本 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
|
||
返回 (假)
|
||
|