直接上代码:
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 账号, 文本型
.程序集变量 密码, 文本型
.程序集变量 链接返回cookie, 文本型
.程序集变量 欲取verifycode, 文本型
.程序集变量 欲取check_n, 文本型
.程序集变量 欲取check_e, 文本型
.程序集变量 欲取verrify_key, 文本型
.程序集变量 pwd, 文本型
.程序集变量 传入的数据, 文本型
.程序集变量 传入的cookie, 文本型
.程序集变量 协议头, 文本型
.程序集变量 最终返回的cookie, 文本型
.子程序 _按钮1_被单击
网页_访问_对象u (“https://ilogin.kankan.com/check/?u=15640415356&v=100”, , “u=15640415356&v=100”, , 链接返回cookie, , , , , , , , , , )
欲取verifycode = 文本_取出中间文本 (链接返回cookie, “check_result=0:”, “;PATH=”, , )
欲取check_e = 文本_取出中间文本 (链接返回cookie, “check_e=”, “;PATH=”, , )
欲取check_n = 文本_取出中间文本 (链接返回cookie, “check_n=”, “;PATH=”, , )
欲取verrify_key = 文本_取出中间文本 (链接返回cookie, “VERIFY_KEY=”, “;PATH=”, , )
欲取check_n = 编码_URL解码 (欲取check_n)
账号 = 编辑框1.内容
密码 = 编辑框2.内容
pwd = Js_getPwd (密码, 欲取verifycode, 欲取check_e, 欲取check_n)
pwd = 编码_URL编码 (pwd, 真, 真)
欲取check_n = 编码_URL编码 (欲取check_n, 真, 真)
欲取verifycode = 编码_URL编码 (欲取verifycode, 真, 真)
传入的数据 = “p=” + pwd + “&u=” + 账号 + “&n=” + 欲取check_n + “&e=” + 欲取check_e + “&v=100&verifycode=” + 欲取verifycode + “&login_enable=0&business_type=107”
传入的cookie = “gid=;blockid=;check_e=” + 欲取check_e + “;check_n=” + 欲取check_n + “;verify_type=SEA;VERIFY_KEY=” + 欲取verrify_key
网页_访问_对象u (“https://ilogin.kankan.com/sec2login/”, 1, 传入的数据, 传入的cookie, 最终返回的cookie, , , )
.如果 (寻找文本 (最终返回的cookie, “userid”, , 真) ≠ -1)
提示框 (“密码正确,最终返回的cookie为--->” + 最终返回的cookie)
.否则
提示框 (“密码错误”)
.如果结束
.子程序 Js_getPwd, 文本型, , 此代码由乐易编程网Js调试工具生成代码,请添加乐易模块使用。模块下载地址 http://www.leybc.com/thread-2843-1-1.html
.参数 password, 文本型
.参数 verifycode, 文本型
.参数 check_e, 文本型
.参数 check_n, 文本型
.局部变量 Js, 类_脚本组件
.局部变量 return, 文本型
线程_初始化COM库 ()
return = Js.执行JS函数Ex (#常量_Js, “getPwd”, password, verifycode, check_e, check_n) ' 请在常量_Js中放入调试成功的JS代码段
线程_取消COM库 ()
返回 (return)
.子程序 __启动窗口_创建完毕
其中:上面代码中的常量_Js如图
js代码如下:
for (vv = 0; vv <= 9; ++vv) {
BI_RC[rr++] = vv
}
rr = "a".charCodeAt(0);
for (vv = 10; vv < 36; ++vv) {
BI_RC[rr++] = vv
}
rr = "A".charCodeAt(0);
for (vv = 10; vv < 36; ++vv) {
BI_RC[rr++] = vv
}
function int2char(n) {
return BI_RM.charAt(n)
}
function intAt(s, i) {
var c = BI_RC[s.charCodeAt(i)];
return (c == null) ? -1 : c
}
function bnpCopyTo(r) {
for (var i = this.t - 1; i >= 0; --i) {
r[i] = this[i]
}
r.t = this.t;
r.s = this.s
}
function bnpFromInt(x) {
this.t = 1;
this.s = (x < 0) ? -1 : 0;
if (x > 0) {
this[0] = x
} else {
if (x < -1) {
this[0] = x + this.DV
} else {
this.t = 0
}
}
}
function nbv(i) {
var r = nbi();
r.fromInt(i);
return r
}
function bnpFromString(s, b) {
var k;
if (b == 16) {
k = 4
} else {
if (b == 8) {
k = 3
} else {
if (b == 256) {
k = 8
} else {
if (b == 2) {
k = 1
} else {
if (b == 32) {
k = 5
} else {
if (b == 4) {
k = 2
} else {
this.fromRadix(s, b);
return
}
}
}
}
}
}
this.t = 0;
this.s = 0;
var i = s.length,
mi = false,
sh = 0;
while (--i >= 0) {
var x = (k == 8) ? s[i] & 255 : intAt(s, i);
if (x < 0) {
if (s.charAt(i) == "-") {
mi = true
}
continue
}
mi = false;
if (sh == 0) {
this[this.t++] = x
} else {
if (sh + k > this.DB) {
this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;
this[this.t++] = (x >> (this.DB - sh))
} else {
this[this.t - 1] |= x << sh
}
}
sh += k;
if (sh >= this.DB) {
sh -= this.DB
}
}
if (k == 8 && (s[0] & 128)