一个js函数求高手转成au3函数【已解决】
本帖最后由 netsmu 于 2012-2-28 19:47 编辑我已经把js函数整合到htm中了,把下面代码保存为htm直接打开就可以了。
<html>
<head>
<script type="text/javascript">
function formSubmit(qq,ww) {
var b = decrypt(qq, ww);
var d = computechildpath(b);
return d
}
function computechildpath(b) {
var c = b.charAt(0).charCodeAt();
var d = c % 30;
var a = d % 8 + 2;
return b.substring(d, d + a)
}
function decrypt(f, c) {
var b = new Array(2),
a = new Array(4),
e = "",
d;
for (var d = 0; d < 4; d++) {
a = Str4ToLong(c.slice(d * 4, (d + 1) * 4))
}
f = decodeBase64(f);
f = unescCtrlCh(f);
for (d = 0; d < f.length; d += 8) {
b = Str4ToLong(f.slice(d, d + 4));
b = Str4ToLong(f.slice(d + 4, d + 8));
decode(b, a);
e += LongToStr4(b) + LongToStr4(b)
}
e = e.replace(/\0+$/, "");
return unescape(e)
}
function decode(b, a) {
var f = b,
d = b;
var e = 2654435769,
c = e * 32;
while (c != 0) {
d -= (f << 4 ^ f >>> 5) + f ^ c + a;
c -= e;
f -= (d << 4 ^ d >>> 5) + d ^ c + a
}
b = f;
b = d
}
function Str4ToLong(c) {
var a = 0;
for (var b = 0; b < 4; b++) {
a |= c.charCodeAt(b) << b * 8
}
return isNaN(a) ? 0 : a
}
function LongToStr4(a) {
var b = String.fromCharCode(a & 255, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255);
return b
}
function unescCtrlCh(a) {
return a.replace(/!\d\d?\d?!/g,
function(b) {
return String.fromCharCode(b.slice(1, -1))
})
}
var END_OF_INPUT = -1;
var base64Chars = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/");
var reverseBase64Chars = new Array();
for (var i = 0; i < base64Chars.length; i++) {
reverseBase64Chars] = i
}
var base64Str;
var base64Count;
function setBase64Str(a) {
base64Str = a;
base64Count = 0
}
function readReverseBase64() {
if (!base64Str) {
return END_OF_INPUT
}
while (true) {
if (base64Count >= base64Str.length) {
return END_OF_INPUT
}
var a = base64Str.charAt(base64Count);
base64Count++;
if (reverseBase64Chars) {
return reverseBase64Chars
}
if (a == "A") {
return 0
}
}
return END_OF_INPUT
}
function ntos(a) {
a = a.toString(16);
if (a.length == 1) {
a = "0" + a
}
a = "%" + a;
return unescape(a)
}
function decodeBase64(d) {
setBase64Str(d);
var a = "";
var c = new Array(4);
var b = false;
while (!b && (c = readReverseBase64()) != END_OF_INPUT && (c = readReverseBase64()) != END_OF_INPUT) {
c = readReverseBase64();
c = readReverseBase64();
a += ntos((((c << 2) & 255) | c >> 4));
if (c != END_OF_INPUT) {
a += ntos((((c << 4) & 255) | c >> 2));
if (c != END_OF_INPUT) {
a += ntos((((c << 6) & 255) | c))
} else {
b = true
}
} else {
b = true
}
}
return a
}
document.write(formSubmit("gpE92T9Ko+gmNtLxITEzIX3ePqRlkmzrITM0IbeP1KbxRyEzNCHN8RuMXiExMCEqaWQufw==","xzkavoiddeszf12d"))
</script>
</head>
<body>
</body>
</html>
主要问题是要调用这个函数 formSubmit(qq,ww)
谁看得懂这段js代码呢?如何转成 au3的函数? 直接在au3中可以调用带参数的JS 找我的帖子 标题叫
带参数的JS调用方法 太多了...><全部的方法都用到了 应该是一个字符串的加密解密的方法吧! encode.js:function formSubmit(qq,ww) {
var b = decrypt(qq, ww);
var d = computechildpath(b);
return d
}
function computechildpath(b) {
var c = b.charAt(0).charCodeAt();
var d = c % 30;
var a = d % 8 + 2;
return b.substring(d, d + a)
}
function decrypt(f, c) {
var b = new Array(2),
a = new Array(4),
e = "",
d;
for (var d = 0; d < 4; d++) {
a = Str4ToLong(c.slice(d * 4, (d + 1) * 4))
}
f = decodeBase64(f);
f = unescCtrlCh(f);
for (d = 0; d < f.length; d += 8) {
b = Str4ToLong(f.slice(d, d + 4));
b = Str4ToLong(f.slice(d + 4, d + 8));
decode(b, a);
e += LongToStr4(b) + LongToStr4(b)
}
e = e.replace(/\0+$/, "");
return unescape(e)
}
function decode(b, a) {
var f = b,
d = b;
var e = 2654435769,
c = e * 32;
while (c != 0) {
d -= (f << 4 ^ f >>> 5) + f ^ c + a;
c -= e;
f -= (d << 4 ^ d >>> 5) + d ^ c + a
}
b = f;
b = d
}
function Str4ToLong(c) {
var a = 0;
for (var b = 0; b < 4; b++) {
a |= c.charCodeAt(b) << b * 8
}
return isNaN(a) ? 0 : a
}
function LongToStr4(a) {
var b = String.fromCharCode(a & 255, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255);
return b
}
function unescCtrlCh(a) {
return a.replace(/!\d\d?\d?!/g,
function(b) {
return String.fromCharCode(b.slice(1, -1))
})
}
var END_OF_INPUT = -1;
var base64Chars = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/");
var reverseBase64Chars = new Array();
for (var i = 0; i < base64Chars.length; i++) {
reverseBase64Chars] = i
}
var base64Str;
var base64Count;
function setBase64Str(a) {
base64Str = a;
base64Count = 0
}
function readReverseBase64() {
if (!base64Str) {
return END_OF_INPUT
}
while (true) {
if (base64Count >= base64Str.length) {
return END_OF_INPUT
}
var a = base64Str.charAt(base64Count);
base64Count++;
if (reverseBase64Chars) {
return reverseBase64Chars
}
if (a == "A") {
return 0
}
}
return END_OF_INPUT
}
function ntos(a) {
a = a.toString(16);
if (a.length == 1) {
a = "0" + a
}
a = "%" + a;
return unescape(a)
}
function decodeBase64(d) {
setBase64Str(d);
var a = "";
var c = new Array(4);
var b = false;
while (!b && (c = readReverseBase64()) != END_OF_INPUT && (c = readReverseBase64()) != END_OF_INPUT) {
c = readReverseBase64();
c = readReverseBase64();
a += ntos((((c << 2) & 255) | c >> 4));
if (c != END_OF_INPUT) {
a += ntos((((c << 4) & 255) | c >> 2));
if (c != END_OF_INPUT) {
a += ntos((((c << 6) & 255) | c))
} else {
b = true
}
} else {
b = true
}
}
return a
}
Global $nJS = ObjCreate("MSScriptControl.ScriptControl")
$nJS.language = "JavaScript"
$nJS.addcode(FileRead("encode.js"))
$x = $nJS.eval('formSubmit("gpE92T9Ko+gmNtLxITEzIX3ePqRlkmzrITM0IbeP1KbxRyEzNCHN8RuMXiExMCEqaWQufw==","xzkavoiddeszf12d");')
Msgbox(0,0,$x)
谢谢了,结贴吧,可以用AU3自带的直接运行JS代码,嘻嘻。 都是高手哇
页:
[1]