.版本 2
.支持库 spec
.支持库 dp1
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
_临时子程序 () ' 在初始化代码执行完毕后调用测试代码
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 _临时子程序
.局部变量 a, 文本型
' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
' 提示 加壳工具作者用的改版 你们请 置入代码自行删掉或自行加上结束
' 子程序1 ()
' 调试输出 (取随机安卓id ())
' 调试输出 (yd_发送验证码 (“18883322791”, “65be2a5f0df788f9”, “E4:46:DA:47:FD:DE”))
' 手机号登陆 (“15583268896”, “1234”)
' 调试输出 (yd_关注 (“65be2a5f0df788f9”, “1A:80:B1:CB:EC:96”, “609d2f7e7b8c38bad58592769cebdd75”, “eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MzIwMjYwNjksImV4cGlyZV9hdCI6IjIwMjAtMDQtMjIgMjA6MTM6MTcgKzA4MDAiLCJkZXZpY2VfaWQiOiI2NWJlMmE1ZjBkZjc4OGY5IiwiZ2lvaWQiOiI0OGVhMWZmMS1hYWZhLTMzY2ItYTRiOS04NWY0NDk5YTdkMWMiLCJ5ZGlkIjoiNTJiZjE0Y2QtMjUwMi00NmQ2LWE3Y2EtMmYwZTFkMDk2Mzc3XyIsImNoYW5uZWxfbmFtZSI6Im1hcmtldF9ndWFud2FuZyJ9.3eibPi6U2Wm_dRIuhtQWok5fth9VX2LZOhazowWj_lk”, , , “504cabb682f75682f85fd42579f00d9d”))
' yd_私信 (“65be2a5f0df788f9”, “1A:80:B1:CB:EC:96”, “609d2f7e7b8c38bad58592769cebdd75”, “eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MzIwMjYwNjksImV4cGlyZV9hdCI6IjIwMjAtMDQtMjIgMjA6MTM6MTcgKzA4MDAiLCJkZXZpY2VfaWQiOiI2NWJlMmE1ZjBkZjc4OGY5IiwiZ2lvaWQiOiI0OGVhMWZmMS1hYWZhLTMzY2ItYTRiOS04NWY0NDk5YTdkMWMiLCJ5ZGlkIjoiNTJiZjE0Y2QtMjUwMi00NmQ2LWE3Y2EtMmYwZTFkMDk2Mzc3XyIsImNoYW5uZWxfbmFtZSI6Im1hcmtldF9ndWFud2FuZyJ9.3eibPi6U2Wm_dRIuhtQWok5fth9VX2LZOhazowWj_lk”, “121.497859”, “31.247678”, “3680609397”, “你打我的”)
.子程序 yd_专用app_post, 文本型, , 伊对专用
.参数 api, 文本型, , 请求地址
.参数 请求方式, 文本型, , GET post PUT
.参数 post_data, 文本型, 可空, 请求参数
.参数 IMEI, 文本型, , 协议头 IMEI(device_id ) 例 IMEI: 65be2a5f0df788f9
.参数 MAC, 文本型, , 协议头 MAC 例 MAC: E4:46:DA:47:FD:DE
.参数 MEMBERID, 文本型, 可空, 协议头 MEMBERID(ID) 例 MEMBERID: 609d2f7e7b8c38bad58592769cebdd75
.参数 Authorization, 文本型, 可空, 协议头 Authorization(token) 例 Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MzIwMjYwNjksImV4cGlyZV9hdCI6IjIwMjAtMDQtM.........
.参数 Longitude, 文本型, 可空, 经度 Longitude: 121.497859 为空用默认
.参数 Latitude, 文本型, 可空, 维度 Latitude: 31.247678 为空用默认
.参数 Content, 文本型, 可空, Content-Type 私聊用:“multipart/form-data; boundary=f24e9601-e65f-494f-9a5d-0c51b44a1f6c”
.局部变量 http, WinHttpR
.局部变量 局_提交协议头, 文本型
.局部变量 局_返回, 文本型
置入代码 (#VM开始_超级)
置入代码 (#VM函数头保护)
http.Auto (真)
http.Open (请求方式, api)
http.SetRequestHeader (“APIKEY”, “7e08df24”)
http.SetRequestHeader (“CODETAG”, “yidui-6.9.4”)
http.SetRequestHeader (“CHANNEL”, “market_guanwang”)
http.SetRequestHeader (“IMEI”, IMEI)
http.SetRequestHeader (“IMEI1”, “”)
http.SetRequestHeader (“MEID”, “”)
http.SetRequestHeader (“OAID”, “”)
http.SetRequestHeader (“Android-Id”, IMEI)
http.SetRequestHeader (“MAC”, “”)
http.SetRequestHeader (“WIFIMAC”, MAC)
http.SetRequestHeader (“MEMBERID”, MEMBERID)
http.SetRequestHeader (“OsVersion”, “5.1.1”)
http.SetRequestHeader (“brand”, “HUAWEI”)
http.SetRequestHeader (“User-Agent”, “Yidui-Android-Mozilla/5.0 (Linux; Android 5.1.1; DUK-AL20 Build/LMY48Z; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.100 Safari/537.36”)
http.SetRequestHeader (“Timestamp”, “”)
.如果真 (Longitude = “”)
Longitude = “121.497859”
.如果真结束
.如果真 (Latitude = “”)
Longitude = “31.247678”
.如果真结束
http.SetRequestHeader (“WifiAddr”, “”)
http.SetRequestHeader (“WifiName”, “”)
http.SetRequestHeader (“Longitude”, Longitude)
http.SetRequestHeader (“Latitude”, Latitude)
http.SetRequestHeader (“Authorization”, Authorization)
.如果真 (请求方式 ≠ “PUT”)
.如果 (是否为空 (Content) = 真)
http.SetRequestHeader (“Content-Type”, “application/json; charset=UTF-8”)
.否则
http.SetRequestHeader (“Content-Type”, Content)
.如果结束
.如果真结束
http.SetRequestHeader (“Host”, “api.520yidui.com”)
http.SetRequestHeader (“Connection”, “Keep-Alive”)
.如果 (是否为空 (post_data) = 假)
http.Send (post_data, )
.否则
http.Send (, )
.如果结束
局_返回 = http.GetResponseTextUtf8ToAnsi ()
返回 (局_返回)
.子程序 yd_发送验证码, 文本型, , 成功返回“成功” 失败返回原结果
.参数 手机号, 文本型
.参数 IMEI, 文本型, , 协议头 IMEI(device_id ) 例 IMEI: 65be2a5f0df788f9
.参数 MAC, 文本型, , 协议头 MAC 例 MAC: E4:46:DA:47:FD:DE
.参数 Longitude, 文本型, 可空, 经度 Longitude: 121.497859 为空用默认
.参数 Latitude, 文本型, 可空, 维度 Latitude: 31.247678 为空用默认
.局部变量 时间10位, 文本型
.局部变量 sign, 文本型
.局部变量 局_结果, 文本型
置入代码 (#VM开始_超级)
置入代码 (#VM函数头保护)
时间10位 = 时间_取现行时间戳 (真)
sign = 校验_取md5 (到字节集 (时间10位 + “.” + 文本_取随机数字 (6, 0)))
局_结果 = yd_专用app_post (“https://api.520yidui.com/v2/auths/send_captcha.json?”, “PUT”, “phone=” + 手机号 + “×tamp=” + 时间10位 + “&sign=” + sign, IMEI, MAC, , , Latitude, Latitude)
调试输出 (局_结果)
' {"result":"success"}
.如果 (寻找文本 (局_结果, “result” + #引号 + “:” + #引号 + “success” + #引号, , 假) ≠ -1)
返回 (“成功”)
.否则
返回 (局_结果)
.如果结束
.子程序 yd_手机号登陆, 文本型, , 验证码》 返回 验证码错误 登陆》成功返回f_CHANNEL以下所有参数 且 返回 空 失败返回原结果
.参数 手机号, 文本型
.参数 验证码, 文本型
.参数 IMEI, 文本型, , 协议头 IMEI(device_id ) 例 IMEI: 65be2a5f0df788f9
.参数 MAC, 文本型, , 协议头 MAC 例 MAC: E4:46:DA:47:FD:DE
.参数 Longitude, 文本型, 可空, 经度 Longitude: 121.497859 为空用默认
.参数 Latitude, 文本型, 可空, 维度 Latitude: 31.247678 为空用默认
.参数 f_MEMBERID, 文本型, 参考 可空, 登陆ID
.参数 f_Authorization, 文本型, 参考 可空, 登陆TOKEN
.参数 nickname, 文本型, 参考 可空, 登陆昵称
.局部变量 局_结果, 文本型
.局部变量 js, 类_json
.局部变量 id, 文本型
.局部变量 code, 文本型
.局部变量 device_id, 文本型
.局部变量 cs, 文本型
.局部变量 token, 文本型
.局部变量 局_nickname, 文本型
置入代码 (#VM开始_超级)
置入代码 (#VM函数头保护)
device_id = “0000” + 时间_到时间戳 (取现行时间 ())
局_结果 = yd_专用app_post (“https://api.520yidui.com/v2/auths/phone_auth.json?phone=” + 手机号 + “&captcha=” + 验证码 + “&unique_id=” + device_id, “post”, , IMEI, MAC, , , Longitude, Latitude)
' {"code":50100,"error":"验证码错误"}
' {"id":"609d2f7e7b8c38bad58592769cebdd75","token":"638d06d74c3fe53be5392736536e349b61d8a8aaec5fac3f152eb8f3838f72ff","rose_count":1,"bucket_action_id":null,"first_paid_at":0,"register_at":1563442489,"age":25,"nickname":"不拘小节的大象","sex":0,"location_id":16,"action":"login","consume_rose_count":1,"is_vip":false,"vip":false,"avatar":{"url":"https://img.520yidui.com/uploads/tuiguang/image/2017-12-19/_20171125090856.jpg","status":2},"is_matchmaker":false,"phone_validate":true}
.如果 (取文本长度 (局_结果) < 25)
返回 (“验证码错误”)
.否则
js.解析 (局_结果)
id = js.取通用属性 (“id”)
code = js.取通用属性 (“token”)
局_nickname = js.取通用属性 (“nickname”)
' {"code":"638d06d74c3fe53be5392736536e349b61d8a8aaec5fac3f152eb8f3838f72ff","id":"609d2f7e7b8c38bad58592769cebdd75","info":{"device_id":"00001587534271640","mac":"E4:46:DA:47:FD:DE"}} ‘登陆过
' {"auth_id":"960e94bf3197926e4c9f197f0e7ce20e","nickname":"正直的柑橘"} ‘未登录过
.如果真 (id = “” 或 code = “”)
调试输出 (“未注册未注册未注册未注册未注册token|” + code)
id = js.取通用属性 (“auth_id”)
局_nickname = js.取通用属性 (“nickname”)
cs = 子文本替换 (#未注册提交, “auth_id_”, id, , , 真)
cs = 子文本替换 (cs, “device_mac_”, MAC, , , 真)
cs = 子文本替换 (cs, “nickname_”, 局_nickname, , , 真)
' https://api.520yidui.com/v2/members/create.json
' {"api_key":"7e08df24","auth_id":"960e94bf3197926e4c9f197f0e7ce20e","channel_key":"market_guanwang","device_mac":"1A:80:B1:CB:EC:96","device_token":"McJ_jfg9R1DZStlERcZZo_QOytxZRZJERc+_j1MWy_s5yKDoyRgnR7Soy_yOo5oZyZRRjtAGjcJE55yWocSvj1dVoc+OjcMoR5DEjcJ_jcMRRR5VyoRJjcyjoRyRj1ZWjc+WRkRGoZyRR1ZoRZSOoZZGRRJZocyvRcMvo1+QRZ+ooZDQQRQGjtougfeHsf+ZZ_JsnK75Z5DZs9gAWfeURZMZs9gAWfeURZMZyH_35KeFntx_o_e4Z5xnyK_qQRDvRkRWRRMvQRDZRtRvQRMZRc00","education":-1,"marriage":0,"member":{"birthday":"1996-01-01","city_id":0,"height":0,"location_id":1,"nickname":"正直的柑橘","push_channel":"getui","push_id":"fbe99da5e813b0aa75aa33e37b2ac393","sex":0},"salary":0}
' {"api_key":"7e08df24","auth_id":"auth_id_","channel_key":"market_guanwang","device_mac":"device_mac_","device_token":"","education":-1,"marriage":0,"member":{"birthday":"","city_id":0,"height":0,"location_id":1,"nickname":"nickname_","push_channel":"getui","push_id":"","sex":0},"salary":0}
局_结果 = yd_专用app_post (“https://api.520yidui.com/v2/members/create.json”, “post”, cs, IMEI, MAC, id, , Longitude, Latitude)
调试输出 (局_结果)
js.解析 (局_结果)
id = js.取通用属性 (“id”)
code = js.取通用属性 (“token”)
局_nickname = js.取通用属性 (“nickname”)
.如果真结束
cs = 子文本替换 (#login_js_cs, “code_”, code, , , 真)
cs = 子文本替换 (cs, “id_”, id, , , 真)
局_结果 = yd_专用app_post (“https://api.520yidui.com/v2/login.json”, “post”, cs, IMEI, MAC, id, , Longitude, Latitude)
js.解析 (局_结果)
token = js.取通用属性 (“token”)
.如果 (token ≠ “”)
f_MEMBERID = id
f_Authorization = token
nickname = 局_nickname
返回 (“”)
.否则
返回 (局_结果)
.如果结束
.如果结束
返回 (“”)
.子程序 yd_取随机MAC, 文本型, , 随机返回一个MAC地址
.局部变量 临时整数, 整数型
.局部变量 l1, 整数型
.局部变量 MAC, 文本型
.计次循环首 (6, l1)
临时整数 = 到整数 (文本_取随机范围数字 (16, 255)) ' 代表16进制的00-FF范围
.如果真 (l1 = 1)
.如果真 (临时整数 % 2 = 1) ' 取随机数后判断是否为偶数不是就+1
.判断开始 (临时整数 = 255)
临时整数 = 临时整数 - 1
.默认
临时整数 = 临时整数 + 1
.判断结束
.如果真结束
.如果真结束
.判断开始 (l1 = 6) ' 判断否是最后一组是就不加分隔符
MAC = MAC + 取十六进制文本 (临时整数)
.默认
MAC = MAC + 取十六进制文本 (临时整数) + “:”
.判断结束
.计次循环尾 ()
返回 (MAC)
.子程序 yd_取随机安卓id, 文本型
取数据摘要 (到字节集 (文本_取随机字符 (20) + 文本_取随机汉字 (3)))
返回 (取文本左边 (取数据摘要 (到字节集 (文本_取随机字符 (20) + 文本_取随机汉字 (3))), 16))
.子程序 yd_关注, 文本型, , 成功返回conversation_id 失败返回 “失败”
.参数 IMEI, 文本型, , 协议头 IMEI(device_id ) 例 IMEI: 65be2a5f0df788f9
.参数 MAC, 文本型, , 协议头 MAC 例 MAC: E4:46:DA:47:FD:DE
.参数 MEMBERID, 文本型, , 登陆账号ID
.参数 Authorization, 文本型, , 登陆账号token
.参数 Longitude, 文本型, 可空, 经度 Longitude: 121.497859 为空用默认
.参数 Latitude, 文本型, 可空, 维度 Latitude: 31.247678 为空用默认
.参数 member_id, 文本型, , 被关注ID 例 504cabb682f75682f85fd42579f00d9d
.局部变量 局_结果, 文本型
.局部变量 js, 类_json
.局部变量 conversation_id, 文本型
置入代码 (#VM开始_超级)
置入代码 (#VM函数头保护)
局_结果 = yd_专用app_post (“https://api.520yidui.com/v3/relations/follow?member_id=” + member_id, “post”, , IMEI, MAC, MEMBERID, Authorization, Longitude, Latitude)
js.解析 (局_结果)
conversation_id = js.取通用属性 (“conversation_id”)
' {"conversation_id":"3680647780","result":"success"}
.如果 (conversation_id = “”)
返回 (“失败”)
.否则
返回 (conversation_id)
.如果结束
.子程序 yd_私信
.参数 IMEI, 文本型, , 协议头 IMEI(device_id ) 例 IMEI: 65be2a5f0df788f9
.参数 MAC, 文本型, , 协议头 MAC 例 MAC: E4:46:DA:47:FD:DE
.参数 MEMBERID, 文本型, , 登陆账号ID
.参数 Authorization, 文本型, , 登陆账号token
.参数 Longitude, 文本型, 可空, 经度 Longitude: 121.497859 为空用默认
.参数 Latitude, 文本型, 可空, 维度 Latitude: 31.247678 为空用默认
.参数 conversation_id, 文本型, , 私聊对象ID 例 3680647780
.参数 私聊内容, 文本型, , 私聊内容
.局部变量 局_结果, 文本型
.局部变量 cs, 文本型
置入代码 (#VM开始_超级)
置入代码 (#VM函数头保护)
cs = 子文本替换 (#私信_cs, “在吗”, 私聊内容, , , 真)
局_结果 = yd_专用app_post (“https://api.520yidui.com/v2/conversations/” + conversation_id + “/msgs.json?member_id=” + MEMBERID + “&meta_type=text&scene_type=default&scene_id=0&is_copy=0&enter_time=1061”, “post”, cs, IMEI, MAC, MEMBERID, Authorization, Longitude, Latitude, “multipart/form-data; boundary=f24e9601-e65f-494f-9a5d-0c51b44a1f6c”)
调试输出 (局_结果)
api.520yidui.com