|
我们知道 磁力是这样的 magnet:?xt=urn:btih: 94EF7E99BE4C42A8CE8C293826850C5F754C2365&xl= 2357506850&dn= %E7%94%B5%E9%94%AF%E6%83%8A%E9%AD%827.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95%EF%BF%A1%E5%9C%A3%E5%9F%8E%E6%89%93%E4%BD%9B
其实我们要的只是 94EF7E99BE4C42A8CE8C293826850C5F754C2365罢了后面那些参数是给下载软件使用的(可以获取到文件名(下载参数)啦),但是我们要的就是那40位hash. 现在支持解析的磁力方法并不多。有QQ旋风、还有迅雷(现在的迅雷,呵呵嗒),QQ旋风还是很不错的。一些热门的资源都有。 本文章就以QQ旋风为列说说吧 可以有的开发者会使用PHP就行QQ旋风的操作。因为PHP操作的旋风使用的IP是固定的。不论使用者在山东也好江苏也好。还是西藏也好。都是一个IP。 但是如果使用易语言或者其它开发语言去写。直接使用易语言登录不但不安全(可能会被抓包,导致QQ被盗(图什么呢?))还会出现验证码等等一系列杂七乱八的东西。因为你登陆的IP不是固定的一会是山东一会是新疆的。而且还有可能"占线"。反正怎么说就是不安全。建议使用PHP。 关于PHP网上教程甚多。就不怎么详细说了。我也是New hand(新手)
其实我们要首先要登录腾讯的QQ旋风服务器 我这里演示就不使用PHP了。使用易语言本身登录吧。 PS:易语言登录坑爹 要JS代码还有一系列杂七乱八的东西 反正不好玩 编辑框1=帐号 编辑框2=密码 编辑框3=验证码 首先获取pt_verifysession_v1 - .版本 2
- .子程序 Get_pt_verifysession_v1
- .局部变量 cookies_, 文本型
- .局部变量 state, 文本型
- .局部变量 json, 类_json
- state = 到文本 (网页_访问 (“http://check.ptlogin2.qq.com/check?regmaster=&pt_tea=1&pt_vcode=1&uin=” + 编辑框1.内容 + “&appid=715030901&js_ver=10127&js_type=1&login_sig=jJBceXvWs2HK1OnKnIQSAThPRVoPMbqvxi00NIWRVDsOpJWC53kYB79RbKr3Wo29&u1=http://qun.qq.com/index.html#&r=” + 时间_取随机时间戳 (), , , , cookies_, , ))
- Ver_Code = 文本_取出中间文本 (state, “,'”, “','\”)
- 编辑框3.内容 = Ver_Code
- pt_verifysession_v1 = 文本_取出中间文本 (文本_取出中间文本 (state, “\”, “,'0');”), “','”, “'”)
cookies__sig - .版本 2
- .子程序 Get_cookies__sig
- 网页_访问 (“http://ui.ptlogin2.qq.com/cgi-bin/login?appid=715030901&daid=73&pt_no_auth=1&s_url=http%3A%2F%2Fqun.qq.com%2Findex.html%23”, , , , cookies__sig, )
- cookies__sig = 文本_取出中间文本 (cookies__sig, “_sig=”, “; pt_clie”)
还要计算一个G_tk - .版本 2
- .子程序 计算G_tk, 文本型
- .参数 skey, 文本型
- .局部变量 hash, 整数型
- .局部变量 计次, 整数型
- hash = 5381
- .变量循环首 (1, 取文本长度 (skey), 1, 计次)
- hash = hash + hash × 求次方 (2, 5) + 取字节集数据 (ANSI转UNICODE (取文本中间 (skey, 计次, 1)), 3, )
- .变量循环尾 ()
- 返回 (到文本 (位与 (hash, 十六到十 (“7fffffff”))))
JS代码为 - var window=window|| {};
- RSA = function () {
- function g(z, t) {
- return new ar(z, t);
- }
- function ah(aA, aB) {
- var t = "";
- var z = 0;
- while (z + aB < aA.length) {
- t += aA.substring(z, z + aB) + "\n";
- z += aB;
- }
- return t + aA.substring(z, aA.length);
- }
- function r(t) {
- if (t < 16) {
- return "0" + t.toString(16);
- } else {
- return t.toString(16);
- }
- }
- function af(aB, aE) {
- if (aE < aB.length + 11) {
- uv_alert("Message too long for RSA");
- return null;
- }
- var aD = new Array();
- var aA = aB.length - 1;
- while (aA >= 0 && aE > 0) {
- var aC = aB.charCodeAt(aA--);
- aD[--aE] = aC;
- }
- aD[--aE] = 0;
- var z = new ad();
- var t = new Array();
- while (aE > 2) {
- t[0] = 0;
- while (t[0] == 0) {
- z.nextBytes(t);
- }
- aD[--aE] = t[0];
- }
- aD[--aE] = 2;
- aD[--aE] = 0;
- return new ar(aD);
- }
- function L() {
- this.n = null;
- this.e = 0;
- this.d = null;
- this.p = null;
- this.q = null;
- this.dmp1 = null;
- this.dmq1 = null;
- this.coeff = null;
- }
- function o(z, t) {
- if (z != null && t != null && z.length > 0 && t.length > 0) {
- this.n = g(z, 16);
- this.e = parseInt(t, 16);
- } else {
- uv_alert("Invalid RSA public key");
- }
- }
- function W(t) {
- return t.modPowInt(this.e, this.n);
- }
- function p(aA) {
- var t = af(aA, (this.n.bitLength() + 7) >> 3);
- if (t == null) {
- return null;
- }
- var aB = this.doPublic(t);
- if (aB == null) {
- return null;
- }
- var z = aB.toString(16);
- if ((z.length & 1) == 0) {
- return z;
- } else {
- return "0" + z;
- }
- }
- L.prototype.doPublic = W;
- L.prototype.setPublic = o;
- L.prototype.encrypt = p;
- var aw;
- var ai = 244837814094590;
- var Z = ((ai & 16777215) == 15715070);
- function ar(z, t, aA) {
- if (z != null) {
- if ("number" == typeof z) {
- this.fromNumber(z, t, aA);
- } else {
- if (t == null && "string" != typeof z) {
- this.fromString(z, 256);
- } else {
- this.fromString(z, t);
- }
- }
- }
- }
- function h() {
- return new ar(null);
- }
- function b(aC, t, z, aB, aE, aD) {
- while (--aD >= 0) {
- var aA = t * this[aC++] + z[aB] + aE;
- aE = Math.floor(aA / 67108864);
- z[aB++] = aA & 67108863;
- }
- return aE;
- }
- function ay(aC, aH, aI, aB, aF, t) {
- var aE = aH & 32767, aG = aH >> 15;
- while (--t >= 0) {
- var aA = this[aC] & 32767;
- var aD = this[aC++] >> 15;
- var z = aG * aA + aD * aE;
- aA = aE * aA + ((z & 32767) << 15) + aI[aB] + (aF & 1073741823);
- aF = (aA >>> 30) + (z >>> 15) + aG * aD + (aF >>> 30);
- aI[aB++] = aA & 1073741823;
- }
- return aF;
- }
- function ax(aC, aH, aI, aB, aF, t) {
- var aE = aH & 16383, aG = aH >> 14;
- while (--t >= 0) {
- var aA = this[aC] & 16383;
- var aD = this[aC++] >> 14;
- var z = aG * aA + aD * aE;
- aA = aE * aA + ((z & 16383) << 14) + aI[aB] + aF;
- aF = (aA >> 28) + (z >> 14) + aG * aD;
- aI[aB++] = aA & 268435455;
- }
- return aF;
- }
- ar.prototype.am = b;
- aw = 26;
- ar.prototype.DB = aw;
- ar.prototype.DM = ((1 << aw) - 1);
- ar.prototype.DV = (1 << aw);
- var aa = 52;
- ar.prototype.FV = Math.pow(2, aa);
- ar.prototype.F1 = aa - aw;
- ar.prototype.F2 = 2 * aw - aa;
- var ae = "0123456789abcdefghijklmnopqrstuvwxyz";
- var ag = new Array();
- var ap, v;
- ap = "0".charCodeAt(0);
- for (v = 0; v <= 9; ++v) {
- ag[ap++] = v;
- }
- ap = "a".charCodeAt(0);
- for (v = 10; v < 36; ++v) {
- ag[ap++] = v;
- }
- ap = "A".charCodeAt(0);
- for (v = 10; v < 36; ++v) {
- ag[ap++] = v;
- }
- function az(t) {
- return ae.charAt(t);
- }
- function A(z, t) {
- var aA = ag[z.charCodeAt(t)];
- return (aA == null) ? -1 : aA;
- }
- function Y(z) {
- for (var t = this.t - 1; t >= 0; --t) {
- z[t] = this[t];
- }
- z.t = this.t;
- z.s = this.s;
- }
- function n(t) {
- this.t = 1;
- this.s = (t < 0) ? -1 : 0;
- if (t > 0) {
- this[0] = t;
- } else {
- if (t < -1) {
- this[0] = t + DV;
- } else {
- this.t = 0;
- }
- }
- }
- function c(t) {
- var z = h();
- z.fromInt(t);
- return z;
- }
- function w(aE, z) {
- var aB;
- if (z == 16) {
- aB = 4;
- } else {
- if (z == 8) {
- aB = 3;
- } else {
- if (z == 256) {
- aB = 8;
- } else {
- if (z == 2) {
- aB = 1;
- } else {
- if (z == 32) {
- aB = 5;
- } else {
- if (z == 4) {
- aB = 2;
- } else {
- this.fromRadix(aE, z);
- return;
- }
- }
- }
- }
- }
- }
- this.t = 0;
- this.s = 0;
- var aD = aE.length, aA = false, aC = 0;
- while (--aD >= 0) {
- var t = (aB == 8) ? aE[aD] & 255 : A(aE, aD);
- if (t < 0) {
- if (aE.charAt(aD) == "-") {
- aA = true;
- }
- continue;
- }
- aA = false;
- if (aC == 0) {
- this[this.t++] = t;
- } else {
- if (aC + aB > this.DB) {
- this[this.t - 1] |= (t & ((1 << (this.DB - aC)) - 1)) << aC;
- this[this.t++] = (t >> (this.DB - aC));
- } else {
- this[this.t - 1] |= t << aC;
- }
- }
- aC += aB;
- if (aC >= this.DB) {
- aC -= this.DB;
- }
- }
- if (aB == 8 && (aE[0] & 128) != 0) {
- this.s = -1;
- if (aC > 0) {
- this[this.t - 1] |= ((1 << (this.DB - aC)) - 1) << aC;
- }
- }
- this.clamp();
- if (aA) {
- ar.ZERO.subTo(this, this);
- }
- }
- function O() {
- var t = this.s & this.DM;
- while (this.t > 0 && this[this.t - 1] == t) {
- --this.t;
- }
- }
- function q(z) {
- if (this.s < 0) {
- return "-" + this.negate().toString(z);
- }
- var aA;
- if (z == 16) {
- aA = 4;
- } else {
- if (z == 8) {
- aA = 3;
- } else {
- if (z == 2) {
- aA = 1;
- } else {
- if (z == 32) {
- aA = 5;
- } else {
- if (z == 4) {
- aA = 2;
- } else {
- return this.toRadix(z);
- }
- }
- }
- }
- }
- var aC = (1 << aA) - 1, aF, t = false, aD = "", aB = this.t;
- var aE = this.DB - (aB * this.DB) % aA;
- if (aB-- > 0) {
- if (aE < this.DB && (aF = this[aB] >> aE) > 0) {
- t = true;
- aD = az(aF);
- }
- while (aB >= 0) {
- if (aE < aA) {
- aF = (this[aB] & ((1 << aE) - 1)) << (aA - aE);
- aF |= this[--aB] >> (aE += this.DB - aA);
- } else {
- aF = (this[aB] >> (aE -= aA)) & aC;
- if (aE <= 0) {
- aE += this.DB;
- --aB;
- }
- }
- if (aF > 0) {
- t = true;
- }
- if (t) {
- aD += az(aF);
- }
- }
- }
- return t ? aD : "0";
- }
- function R() {
- var t = h();
- ar.ZERO.subTo(this, t);
- return t;
- }
- function al() {
- return (this.s < 0) ? this.negate() : this;
- }
- function G(t) {
- var aA = this.s - t.s;
- if (aA != 0) {
- return aA;
- }
- var z = this.t;
- aA = z - t.t;
- if (aA != 0) {
- return aA;
- }
- while (--z >= 0) {
- if ((aA = this[z] - t[z]) != 0) {
- return aA;
- }
- }
- return 0;
- }
- function j(z) {
- var aB = 1, aA;
- if ((aA = z >>> 16) != 0) {
- z = aA;
- aB += 16;
- }
- if ((aA = z >> 8) != 0) {
- z = aA;
- aB += 8;
- }
- if ((aA = z >> 4) != 0) {
- z = aA;
- aB += 4;
- }
- if ((aA = z >> 2) != 0) {
- z = aA;
- aB += 2;
- }
- if ((aA = z >> 1) != 0) {
- z = aA;
- aB += 1;
- }
- return aB;
- }
- function u() {
- if (this.t <= 0) {
- return 0;
- }
- return this.DB * (this.t - 1) + j(this[this.t - 1] ^ (this.s & this.DM));
- }
- function aq(aA, z) {
- var t;
- for (t = this.t - 1; t >= 0; --t) {
- z[t + aA] = this[t];
- }
- for (t = aA - 1; t >= 0; --t) {
- z[t] = 0;
- }
- z.t = this.t + aA;
- z.s = this.s;
- }
- function X(aA, z) {
- for (var t = aA; t < this.t; ++t) {
- z[t - aA] = this[t];
- }
- z.t = Math.max(this.t - aA, 0);
- z.s = this.s;
- }
- function s(aF, aB) {
- var z = aF % this.DB;
- var t = this.DB - z;
- var aD = (1 << t) - 1;
- var aC = Math.floor(aF / this.DB), aE = (this.s << z) & this.DM, aA;
- for (aA = this.t - 1; aA >= 0; --aA) {
- aB[aA + aC + 1] = (this[aA] >> t) | aE;
- aE = (this[aA] & aD) << z;
- }
- for (aA = aC - 1; aA >= 0; --aA) {
- aB[aA] = 0;
- }
- aB[aC] = aE;
- aB.t = this.t + aC + 1;
- aB.s = this.s;
- aB.clamp();
- }
- function l(aE, aB) {
- aB.s = this.s;
- var aC = Math.floor(aE / this.DB);
- if (aC >= this.t) {
- aB.t = 0;
- return;
- }
- var z = aE % this.DB;
- var t = this.DB - z;
- var aD = (1 << z) - 1;
- aB[0] = this[aC] >> z;
- for (var aA = aC + 1; aA < this.t; ++aA) {
- aB[aA - aC - 1] |= (this[aA] & aD) << t;
- aB[aA - aC] = this[aA] >> z;
- }
- if (z > 0) {
- aB[this.t - aC - 1] |= (this.s & aD) << t;
- }
- aB.t = this.t - aC;
- aB.clamp();
- }
- function ab(z, aB) {
- var aA = 0, aC = 0, t = Math.min(z.t, this.t);
- while (aA < t) {
- aC += this[aA] - z[aA];
- aB[aA++] = aC & this.DM;
- aC >>= this.DB;
- }
- if (z.t < this.t) {
- aC -= z.s;
- while (aA < this.t) {
- aC += this[aA];
- aB[aA++] = aC & this.DM;
- aC >>= this.DB;
- }
- aC += this.s;
- } else {
- aC += this.s;
- while (aA < z.t) {
- aC -= z[aA];
- aB[aA++] = aC & this.DM;
- aC >>= this.DB;
- }
- aC -= z.s;
- }
- aB.s = (aC < 0) ? -1 : 0;
- if (aC < -1) {
- aB[aA++] = this.DV + aC;
- } else {
- if (aC > 0) {
- aB[aA++] = aC;
- }
- }
- aB.t = aA;
- aB.clamp();
- }
- function D(z, aB) {
- var t = this.abs(), aC = z.abs();
- var aA = t.t;
- aB.t = aA + aC.t;
- while (--aA >= 0) {
- aB[aA] = 0;
- }
- for (aA = 0; aA < aC.t; ++aA) {
- aB[aA + t.t] = t.am(0, aC[aA], aB, aA, 0, t.t);
- }
- aB.s = 0;
- aB.clamp();
- if (this.s != z.s) {
- ar.ZERO.subTo(aB, aB);
- }
- }
- function Q(aA) {
- var t = this.abs();
- var z = aA.t = 2 * t.t;
- while (--z >= 0) {
- aA[z] = 0;
- }
- for (z = 0; z < t.t - 1; ++z) {
- var aB = t.am(z, t[z], aA, 2 * z, 0, 1);
- if ((aA[z + t.t] += t.am(z + 1, 2 * t[z], aA, 2 * z + 1, aB, t.t - z - 1)) >= t.DV) {
- aA[z + t.t] -= t.DV;
- aA[z + t.t + 1] = 1;
- }
- }
- if (aA.t > 0) {
- aA[aA.t - 1] += t.am(z, t[z], aA, 2 * z, 0, 1);
- }
- aA.s = 0;
- aA.clamp();
- }
- function E(aI, aF, aE) {
- var aO = aI.abs();
- if (aO.t <= 0) {
- return;
- }
- var aG = this.abs();
- if (aG.t < aO.t) {
- if (aF != null) {
- aF.fromInt(0);
- }
- if (aE != null) {
- this.copyTo(aE);
- }
- return;
- }
- if (aE == null) {
- aE = h();
- }
- var aC = h(), z = this.s, aH = aI.s;
- var aN = this.DB - j(aO[aO.t - 1]);
- if (aN > 0) {
- aO.lShiftTo(aN, aC);
- aG.lShiftTo(aN, aE);
- } else {
- aO.copyTo(aC);
- aG.copyTo(aE);
- }
- var aK = aC.t;
- var aA = aC[aK - 1];
- if (aA == 0) {
- return;
- }
- var aJ = aA * (1 << this.F1) + ((aK > 1) ? aC[aK - 2] >> this.F2 : 0);
- var aR = this.FV / aJ, aQ = (1 << this.F1) / aJ, aP = 1 << this.F2;
- var aM = aE.t, aL = aM - aK, aD = (aF == null) ? h() : aF;
- aC.dlShiftTo(aL, aD);
- if (aE.compareTo(aD) >= 0) {
- aE[aE.t++] = 1;
- aE.subTo(aD, aE);
- }
- ar.ONE.dlShiftTo(aK, aD);
- aD.subTo(aC, aC);
- while (aC.t < aK) {
- aC[aC.t++] = 0;
- }
- while (--aL >= 0) {
- var aB = (aE[--aM] == aA) ? this.DM : Math.floor(aE[aM] * aR + (aE[aM - 1] + aP) * aQ);
- if ((aE[aM] += aC.am(0, aB, aE, aL, 0, aK)) < aB) {
- aC.dlShiftTo(aL, aD);
- aE.subTo(aD, aE);
- while (aE[aM] < --aB) {
- aE.subTo(aD, aE);
- }
- }
- }
- if (aF != null) {
- aE.drShiftTo(aK, aF);
- if (z != aH) {
- ar.ZERO.subTo(aF, aF);
- }
- }
- aE.t = aK;
- aE.clamp();
- if (aN > 0) {
- aE.rShiftTo(aN, aE);
- }
- if (z < 0) {
- ar.ZERO.subTo(aE, aE);
- }
- }
- function N(t) {
- var z = h();
- this.abs().divRemTo(t, null, z);
- if (this.s < 0 && z.compareTo(ar.ZERO) > 0) {
- t.subTo(z, z);
- }
- return z;
- }
- function K(t) {
- this.m = t;
- }
- function V(t) {
- if (t.s < 0 || t.compareTo(this.m) >= 0) {
- return t.mod(this.m);
- } else {
- return t;
- }
- }
- function ak(t) {
- return t;
- }
- function J(t) {
- t.divRemTo(this.m, null, t);
- }
- function H(t, aA, z) {
- t.multiplyTo(aA, z);
- this.reduce(z);
- }
- function au(t, z) {
- t.squareTo(z);
- this.reduce(z);
- }
- K.prototype.convert = V;
- K.prototype.revert = ak;
- K.prototype.reduce = J;
- K.prototype.mulTo = H;
- K.prototype.sqrTo = au;
- function B() {
- if (this.t < 1) {
- return 0;
- }
- var t = this[0];
- if ((t & 1) == 0) {
- return 0;
- }
- var z = t & 3;
- z = (z * (2 - (t & 15) * z)) & 15;
- z = (z * (2 - (t & 255) * z)) & 255;
- z = (z * (2 - (((t & 65535) * z) & 65535))) & 65535;
- z = (z * (2 - t * z % this.DV)) % this.DV;
- return (z > 0) ? this.DV - z : -z;
- }
- function f(t) {
- this.m = t;
- this.mp = t.invDigit();
- this.mpl = this.mp & 32767;
- this.mph = this.mp >> 15;
- this.um = (1 << (t.DB - 15)) - 1;
- this.mt2 = 2 * t.t;
- }
- function aj(t) {
- var z = h();
- t.abs().dlShiftTo(this.m.t, z);
- z.divRemTo(this.m, null, z);
- if (t.s < 0 && z.compareTo(ar.ZERO) > 0) {
- this.m.subTo(z, z);
- }
- return z;
- }
- function at(t) {
- var z = h();
- t.copyTo(z);
- this.reduce(z);
- return z;
- }
- function P(t) {
- while (t.t <= this.mt2) {
- t[t.t++] = 0;
- }
- for (var aA = 0; aA < this.m.t; ++aA) {
- var z = t[aA] & 32767;
- var aB = (z * this.mpl + (((z * this.mph + (t[aA] >> 15) * this.mpl) & this.um) << 15)) & t.DM;
- z = aA + this.m.t;
- t[z] += this.m.am(0, aB, t, aA, 0, this.m.t);
- while (t[z] >= t.DV) {
- t[z] -= t.DV;
- t[++z]++;
- }
- }
- t.clamp();
- t.drShiftTo(this.m.t, t);
- if (t.compareTo(this.m) >= 0) {
- t.subTo(this.m, t);
- }
- }
- function am(t, z) {
- t.squareTo(z);
- this.reduce(z);
- }
- function y(t, aA, z) {
- t.multiplyTo(aA, z);
- this.reduce(z);
- }
- f.prototype.convert = aj;
- f.prototype.revert = at;
- f.prototype.reduce = P;
- f.prototype.mulTo = y;
- f.prototype.sqrTo = am;
- function i() {
- return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;
- }
- function x(aF, aG) {
- if (aF > 4294967295 || aF < 1) {
- return ar.ONE;
- }
- var aE = h(), aA = h(), aD = aG.convert(this), aC = j(aF) - 1;
- aD.copyTo(aE);
- while (--aC >= 0) {
- aG.sqrTo(aE, aA);
- if ((aF & (1 << aC)) > 0) {
- aG.mulTo(aA, aD, aE);
- } else {
- var aB = aE;
- aE = aA;
- aA = aB;
- }
- }
- return aG.revert(aE);
- }
- function an(aA, t) {
- var aB;
- if (aA < 256 || t.isEven()) {
- aB = new K(t);
- } else {
- aB = new f(t);
- }
- return this.exp(aA, aB);
- }
- ar.prototype.copyTo = Y;
- ar.prototype.fromInt = n;
- ar.prototype.fromString = w;
- ar.prototype.clamp = O;
- ar.prototype.dlShiftTo = aq;
- ar.prototype.drShiftTo = X;
- ar.prototype.lShiftTo = s;
- ar.prototype.rShiftTo = l;
- ar.prototype.subTo = ab;
- ar.prototype.multiplyTo = D;
- ar.prototype.squareTo = Q;
- ar.prototype.divRemTo = E;
- ar.prototype.invDigit = B;
- ar.prototype.isEven = i;
- ar.prototype.exp = x;
- ar.prototype.toString = q;
- ar.prototype.negate = R;
- ar.prototype.abs = al;
- ar.prototype.compareTo = G;
- ar.prototype.bitLength = u;
- ar.prototype.mod = N;
- ar.prototype.modPowInt = an;
- ar.ZERO = c(0);
- ar.ONE = c(1);
- var m;
- var U;
- var ac;
- function d(t) {
- U[ac++] ^= t & 255;
- U[ac++] ^= (t >> 8) & 255;
- U[ac++] ^= (t >> 16) & 255;
- U[ac++] ^= (t >> 24) & 255;
- if (ac >= M) {
- ac -= M;
- }
- }
- function T() {
- d(new Date().getTime());
- }
- if (U == null) {
- U = new Array();
- ac = 0;
- var I;
- I = Math.floor(65536 * Math.random());
- U[ac++] = I >>> 8;
- U[ac++] = I & 255;
- }
- function C() {
- if (m == null) {
- T();
- m = ao();
- m.init(U);
- for (ac = 0; ac < U.length; ++ac) {
- U[ac] = 0;
- }
- ac = 0;
- }
- return m.next();
- }
- function av(z) {
- var t;
- for (t = 0; t < z.length; ++t) {
- z[t] = C();
- }
- }
- function ad() {
- }
- ad.prototype.nextBytes = av;
- function k() {
- this.i = 0;
- this.j = 0;
- this.S = new Array();
- }
- function e(aC) {
- var aB, z, aA;
- for (aB = 0; aB < 256; ++aB) {
- this.S[aB] = aB;
- }
- z = 0;
- for (aB = 0; aB < 256; ++aB) {
- z = (z + this.S[aB] + aC[aB % aC.length]) & 255;
- aA = this.S[aB];
- this.S[aB] = this.S[z];
- this.S[z] = aA;
- }
- this.i = 0;
- this.j = 0;
- }
- function a() {
- var z;
- this.i = (this.i + 1) & 255;
- this.j = (this.j + this.S[this.i]) & 255;
- z = this.S[this.i];
- this.S[this.i] = this.S[this.j];
- this.S[this.j] = z;
- return this.S[(z + this.S[this.i]) & 255];
- }
- k.prototype.init = e;
- k.prototype.next = a;
- function ao() {
- return new k();
- }
- var M = 256;
- function S(aB, aA, z) {
- aA = "F20CE00BAE5361F8FA3AE9CEFA495362FF7DA1BA628F64A347F0A8C012BF0B254A30CD92ABFFE7A6EE0DC424CB6166F8819EFA5BCCB20EDFB4AD02E412CCF579B1CA711D55B8B0B3AEB60153D5E0693A2A86F3167D7847A0CB8B00004716A9095D9BADC977CBB804DBDCBA6029A9710869A453F27DFDDF83C016D928B3CBF4C7";
- z = "3";
- var t = new L();
- t.setPublic(aA, z);
- return t.encrypt(aB);
- }
- return { rsa_encrypt: S };
- }();
- (function (q) {
- var r = "", a = 0, g = [], w = [], x = 0, t = 0, l = [], s = [], m = true;
- function e() {
- return Math.round(Math.random() * 4294967295);
- }
- function i(B, C, y) {
- if (!y || y > 4) {
- y = 4;
- }
- var z = 0;
- for (var A = C; A < C + y; A++) {
- z <<= 8;
- z |= B[A];
- }
- return (z & 4294967295) >>> 0;
- }
- function b(z, A, y) {
- z[A + 3] = (y >> 0) & 255;
- z[A + 2] = (y >> 8) & 255;
- z[A + 1] = (y >> 16) & 255;
- z[A + 0] = (y >> 24) & 255;
- }
- function v(B) {
- if (!B) {
- return "";
- }
- var y = "";
- for (var z = 0; z < B.length; z++) {
- var A = Number(B[z]).toString(16);
- if (A.length == 1) {
- A = "0" + A;
- }
- y += A;
- }
- return y;
- }
- function u(z) {
- var A = "";
- for (var y = 0; y < z.length; y += 2) {
- A += String.fromCharCode(parseInt(z.substr(y, 2), 16));
- }
- return A;
- }
- function c(A) {
- if (!A) {
- return "";
- }
- var z = [];
- for (var y = 0; y < A.length; y++) {
- z[y] = A.charCodeAt(y);
- }
- return v(z);
- }
- function h(A) {
- g = new Array(8);
- w = new Array(8);
- x = t = 0;
- m = true;
- a = 0;
- var y = A.length;
- var B = 0;
- a = (y + 10) % 8;
- if (a != 0) {
- a = 8 - a;
- }
- l = new Array(y + a + 10);
- g[0] = ((e() & 248) | a) & 255;
- for (var z = 1; z <= a; z++) {
- g[z] = e() & 255;
- }
- a++;
- for (var z = 0; z < 8; z++) {
- w[z] = 0;
- }
- B = 1;
- while (B <= 2) {
- if (a < 8) {
- g[a++] = e() & 255;
- B++;
- }
- if (a == 8) {
- o();
- }
- }
- var z = 0;
- while (y > 0) {
- if (a < 8) {
- g[a++] = A[z++];
- y--;
- }
- if (a == 8) {
- o();
- }
- }
- B = 1;
- while (B <= 7) {
- if (a < 8) {
- g[a++] = 0;
- B++;
- }
- if (a == 8) {
- o();
- }
- }
- return l;
- }
- function p(C) {
- var B = 0;
- var z = new Array(8);
- var y = C.length;
- s = C;
- if (y % 8 != 0 || y < 16) {
- return null;
- }
- w = k(C);
- a = w[0] & 7;
- B = y - a - 10;
- if (B < 0) {
- return null;
- }
- for (var A = 0; A < z.length; A++) {
- z[A] = 0;
- }
- l = new Array(B);
- t = 0;
- x = 8;
- a++;
- var D = 1;
- while (D <= 2) {
- if (a < 8) {
- a++;
- D++;
- }
- if (a == 8) {
- z = C;
- if (!f()) {
- return null;
- }
- }
- }
- var A = 0;
- while (B != 0) {
- if (a < 8) {
- l[A] = (z[t + a] ^ w[a]) & 255;
- A++;
- B--;
- a++;
- }
- if (a == 8) {
- z = C;
- t = x - 8;
- if (!f()) {
- return null;
- }
- }
- }
- for (D = 1; D < 8; D++) {
- if (a < 8) {
- if ((z[t + a] ^ w[a]) != 0) {
- return null;
- }
- a++;
- }
- if (a == 8) {
- z = C;
- t = x;
- if (!f()) {
- return null;
- }
- }
- }
- return l;
- }
- function o() {
- for (var y = 0; y < 8; y++) {
- if (m) {
- g[y] ^= w[y];
- } else {
- g[y] ^= l[t + y];
- }
- }
- var z = j(g);
- for (var y = 0; y < 8; y++) {
- l[x + y] = z[y] ^ w[y];
- w[y] = g[y];
- }
- t = x;
- x += 8;
- a = 0;
- m = false;
- }
- function j(A) {
- var B = 16;
- var G = i(A, 0, 4);
- var F = i(A, 4, 4);
- var I = i(r, 0, 4);
- var H = i(r, 4, 4);
- var E = i(r, 8, 4);
- var D = i(r, 12, 4);
- var C = 0;
- var J = 2654435769 >>> 0;
- while (B-- > 0) {
- C += J;
- C = (C & 4294967295) >>> 0;
- G += ((F << 4) + I) ^ (F + C) ^ ((F >>> 5) + H);
- G = (G & 4294967295) >>> 0;
- F += ((G << 4) + E) ^ (G + C) ^ ((G >>> 5) + D);
- F = (F & 4294967295) >>> 0;
- }
- var K = new Array(8);
- b(K, 0, G);
- b(K, 4, F);
- return K;
- }
- function k(A) {
- var B = 16;
- var G = i(A, 0, 4);
- var F = i(A, 4, 4);
- var I = i(r, 0, 4);
- var H = i(r, 4, 4);
- var E = i(r, 8, 4);
- var D = i(r, 12, 4);
- var C = 3816266640 >>> 0;
- var J = 2654435769 >>> 0;
- while (B-- > 0) {
- F -= ((G << 4) + E) ^ (G + C) ^ ((G >>> 5) + D);
- F = (F & 4294967295) >>> 0;
- G -= ((F << 4) + I) ^ (F + C) ^ ((F >>> 5) + H);
- G = (G & 4294967295) >>> 0;
- C -= J;
- C = (C & 4294967295) >>> 0;
- }
- var K = new Array(8);
- b(K, 0, G);
- b(K, 4, F);
- return K;
- }
- function f() {
- var y = s.length;
- for (var z = 0; z < 8; z++) {
- w[z] ^= s[x + z];
- }
- w = k(w);
- x += 8;
- a = 0;
- return true;
- }
- function n(C, B) {
- var A = [];
- if (B) {
- for (var z = 0; z < C.length; z++) {
- A[z] = C.charCodeAt(z) & 255;
- }
- } else {
- var y = 0;
- for (var z = 0; z < C.length; z += 2) {
- A[y++] = parseInt(C.substr(z, 2), 16);
- }
- }
- return A;
- }
- TEA = { encrypt: function (B, A) {
- var z = n(B, A);
- var y = h(z);
- return v(y);
- }, enAsBase64: function (D, C) {
- var B = n(D, C);
- var A = h(B);
- var y = "";
- for (var z = 0; z < A.length; z++) {
- y += String.fromCharCode(A[z]);
- }
- return d.encode(y);
- }, decrypt: function (A) {
- var z = n(A, false);
- var y = p(z);
- return v(y);
- }, initkey: function (y, z) {
- r = n(y, z);
- }, bytesToStr: u, strToBytes: c, bytesInStr: v, dataFromStr: n };
- var d = {};
- d.PADCHAR = "=";
- d.ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- d.getbyte = function (A, z) {
- var y = A.charCodeAt(z);
- if (y > 255) {
- throw "INVALID_CHARACTER_ERR: DOM Exception 5";
- }
- return y;
- };
- d.encode = function (C) {
- if (arguments.length != 1) {
- throw "SyntaxError: Not enough arguments";
- }
- var z = d.PADCHAR;
- var E = d.ALPHA;
- var D = d.getbyte;
- var B, F;
- var y = [];
- C = "" + C;
- var A = C.length - C.length % 3;
- if (C.length == 0) {
- return C;
- }
- for (B = 0; B < A; B += 3) {
- F = (D(C, B) << 16) | (D(C, B + 1) << 8) | D(C, B + 2);
- y.push(E.charAt(F >> 18));
- y.push(E.charAt((F >> 12) & 63));
- y.push(E.charAt((F >> 6) & 63));
- y.push(E.charAt(F & 63));
- }
- switch (C.length - A) {
- case 1:
- F = D(C, B) << 16;
- y.push(E.charAt(F >> 18) + E.charAt((F >> 12) & 63) + z + z);
- break;
- case 2:
- F = (D(C, B) << 16) | (D(C, B + 1) << 8);
- y.push(E.charAt(F >> 18) + E.charAt((F >> 12) & 63) + E.charAt((F >> 6) & 63) + z);
- break;
- }
- return y.join("");
- };
- if (!window.btoa) {
- window.btoa = d.encode;
- }
- })(window);
- Encryption = function () {
- var hexcase = 1;
- var b64pad = "";
- var chrsz = 8;
- var mode = 32;
- function md5(s) {
- return hex_md5(s);
- }
- function hex_md5(s) {
- return binl2hex(core_md5(str2binl(s), s.length * chrsz));
- }
- function str_md5(s) {
- return binl2str(core_md5(str2binl(s), s.length * chrsz));
- }
- function hex_hmac_md5(key, data) {
- return binl2hex(core_hmac_md5(key, data));
- }
- function b64_hmac_md5(key, data) {
- return binl2b64(core_hmac_md5(key, data));
- }
- function str_hmac_md5(key, data) {
- return binl2str(core_hmac_md5(key, data));
- }
- function core_md5(x, len) {
- x[len >> 5] |= 128 << ((len) % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
- var d = 271733878;
- for (var i = 0; i < x.length; i += 16) {
- var olda = a;
- var oldb = b;
- var oldc = c;
- var oldd = d;
- a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
- d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
- c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
- b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
- a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
- d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
- c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
- b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
- a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
- d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
- c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
- b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
- a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
- d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
- c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
- b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
- a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
- d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
- c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
- b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);
- a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
- d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
- c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
- b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
- a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
- d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
- c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
- b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
- a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
- d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
- c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
- b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
- a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
- d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
- c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
- b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
- a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
- d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
- c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
- b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
- a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
- d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222);
- c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
- b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
- a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
- d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
- c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
- b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
- a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844);
- d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
- c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
- b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
- a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
- d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
- c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
- b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
- a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
- d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
- c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
- b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
- a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
- d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
- c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
- b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
- a = safe_add(a, olda);
- b = safe_add(b, oldb);
- c = safe_add(c, oldc);
- d = safe_add(d, oldd);
- }
- if (mode == 16) {
- return Array(b, c);
- } else {
- return Array(a, b, c, d);
- }
- }
- function md5_cmn(q, a, b, x, s, t) {
- return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
- }
- function md5_ff(a, b, c, d, x, s, t) {
- return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
- }
- function md5_gg(a, b, c, d, x, s, t) {
- return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
- }
- function md5_hh(a, b, c, d, x, s, t) {
- return md5_cmn(b ^ c ^ d, a, b, x, s, t);
- }
- function md5_ii(a, b, c, d, x, s, t) {
- return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
- }
- function core_hmac_md5(key, data) {
- var bkey = str2binl(key);
- if (bkey.length > 16) {
- bkey = core_md5(bkey, key.length * chrsz);
- }
- var ipad = Array(16), opad = Array(16);
- for (var i = 0; i < 16; i++) {
- ipad[i] = bkey[i] ^ 909522486;
- opad[i] = bkey[i] ^ 1549556828;
- }
- var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
- return core_md5(opad.concat(hash), 512 + 128);
- }
- function safe_add(x, y) {
- var lsw = (x & 65535) + (y & 65535);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 65535);
- }
- function bit_rol(num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt));
- }
- function str2binl(str) {
- var bin = Array();
- var mask = (1 << chrsz) - 1;
- for (var i = 0; i < str.length * chrsz; i += chrsz) {
- bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32);
- }
- return bin;
- }
- function binl2str(bin) {
- var str = "";
- var mask = (1 << chrsz) - 1;
- for (var i = 0; i < bin.length * 32; i += chrsz) {
- str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask);
- }
- return str;
- }
- function binl2hex(binarray) {
- var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
- var str = "";
- for (var i = 0; i < binarray.length * 4; i++) {
- str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 15) + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 15);
- }
- return str;
- }
- function binl2b64(binarray) {
- var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- var str = "";
- for (var i = 0; i < binarray.length * 4; i += 3) {
- var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 255) << 16) | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 255) << 8) | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 255);
- for (var j = 0; j < 4; j++) {
- if (i * 8 + j * 6 > binarray.length * 32) {
- str += b64pad;
- } else {
- str += tab.charAt((triplet >> 6 * (3 - j)) & 63);
- }
- }
- }
- return str;
- }
- function hexchar2bin(str) {
- var arr = [];
- for (var i = 0; i < str.length; i = i + 2) {
- arr.push("\\x" + str.substr(i, 2));
- }
- arr = arr.join("");
- eval("var temp = '" + arr + "'");
- return temp;
- }
- function __monitor(mid, probability) {
- if (Math.random() > (probability || 1)) {
- return;
- }
- /*var url = location.protocol + "//ui.ptlogin2.qq.com/cgi-bin/report?id=" + mid;
- var s = document.createElement("img");
- s.src = url;
- s = null;*/
- }
- function getEncryption(password, salt, vcode, isMd5) {
- vcode = vcode || "";
- password = password || "";
- var md5Pwd = isMd5 ? password : md5(password), h1 = hexchar2bin(md5Pwd), s2 = md5(h1 + salt), rsaH1 = RSA.rsa_encrypt(h1), rsaH1Len = (rsaH1.length / 2).toString(16), hexVcode = TEA.strToBytes(vcode.toUpperCase()), vcodeLen = "000" + vcode.length.toString(16);
- while (rsaH1Len.length < 4) {
- rsaH1Len = "0" + rsaH1Len;
- }
- TEA.initkey(s2);
- var saltPwd = TEA.enAsBase64(rsaH1Len + rsaH1 + TEA.strToBytes(salt) + vcodeLen + hexVcode);
- TEA.initkey("");
- __monitor(488358, 1);
- return saltPwd.replace(/[\/\+=]/g, function (a) {
- return { "/": "-", "+": "*", "=": "_" }[a];
- });
- }
- function getRSAEncryption(password, vcode, isMd5) {
- var str1 = isMd5 ? password : md5(password);
- var str2 = str1 + vcode.toUpperCase();
- var str3 = $.RSA.rsa_encrypt(str2);
- return str3;
- }
- return { getEncryption: getEncryption, getRSAEncryption: getRSAEncryption, md5: md5 };
- }();
- function uin2hex(str) {
- var maxLength = 16;
- var hex = parseInt(str).toString(16);
- var len = hex.length;
- for (var i = len; i < maxLength; i++) {
- hex = "0" + hex;
- }
- var arr = [];
- for (var j = 0; j < maxLength; j += 2) {
- arr.push("\\x" + hex.substr(j, 2));
- }
- var result = arr.join("");
- eval('result="' + result + '"');
- return result;
- }
- // 加密函数名称:getpass 参数1:QQ号码 参数2:QQ密码 参数3:验证码
- function getpass(qq,pass,code){
- qq=uin2hex(qq)
- return Encryption.getEncryption(pass,qq,code);
- }
最后一句代码登录QQ - .版本 2
- .支持库 spec
- .支持库 iconv
- .子程序 _按钮1_被单击
- .局部变量 脚本, 类_脚本组件
- .局部变量 Password, 文本型
- 脚本.执行 (到文本 (#JS代码))
- Password = 脚本.运行 (“getpass”, 编辑框1.内容, 编辑框2.内容, 编辑框3.内容)
- 调试输出 (到文本 (编码转换 (网页_访问 (“http://ptlogin2.qq.com/login?u=” + 编辑框1.内容 + “&verifycode=” + Ver_Code + “&pt_vcode_v1=0&pt_verifysession_v1=” + pt_verifysession_v1 + “&p=” + Password + “&pt_randsalt=0&ptredirect=1&u1=http%3A%2F%2Flixian.qq.com%2Fmain.html&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-65-1435338842906&js_ver=10127&js_type=1&login_sig=” + cookies__sig + “&pt_uistyle=20&aid=715030901&daid=73&daid=5&pt_qzone_sig=1&”, , , , 返回Skey, , , , , ), #编码_UTF_8, #编码_GB18030, )))
- Skey_ = 文本_取出中间文本 (返回Skey, “skey=”, “; ”)
- Skey = 计算G_tk (文本_取出中间文本 (返回Skey, “skey=”, “; ”))
- 线程_启动 (&Get_All_Task, , ) ' //获取全部任务 Get All task
在上面看到了一个 Get_all_task这个类(也可以说是子程序随便叫只要自己理解就行) 这面是提交一个POST参数给腾讯的QQ旋风的服务器 Path是 http://lixian.qq.com/handler/lixian/get_lixian_items.phpdata是page=0&limit=200 //Page 是"页"的意思 即这是第一页 0=1 1=2以此类推 提交了 就会返回一个JSon样式的文本可以自己格式化下看看,很清晰。 然后插入超级列表框进行相应的操作。。。 此处省略N字。 最后获取到地址即Code。一行字符串 在“/ftn_handler/”之后的一行字符串。但是腾讯sun dog 返回的不是很好的。我们需要把这个code截取下来。换到其它的接口上。 我提供几个接口(我所晓得)。 http://xfxa.ctfs.ftn.qq.com/ftn_handler/http://xfcd.ctfs.ftn.qq.com/ftn_handler/http://sh.ctfs.ftn.qq.com/ftn_handler/http://sz.ctfs.ftn.qq.com/ftn_handler/http://tj.ctfs.ftn.qq.com/ftn_handler/当然肯定还有其它的哈 欢迎提供。。。 然后使用Cookie这个访问这个被修改后的code地址即可播放下载。
|