网站建设实训报告模版,做网站需准备些什么问题,asp.net 旅游网站开发,多少钱翻译成英文文章目录 前文分析完整代码结尾 前文
本文章中所有内容仅供学习交流#xff0c;严禁用于商业用途和非法用途#xff0c;否则由此产生的一切后果均与作者无关#xff0c;若有侵权#xff0c;请联系我立即删除#xff01;
分析
经过我们几次抓包#xff0c;测试#xf… 文章目录 前文分析完整代码结尾 前文
本文章中所有内容仅供学习交流严禁用于商业用途和非法用途否则由此产生的一切后果均与作者无关若有侵权请联系我立即删除
分析
经过我们几次抓包测试发现网址后面带有fromzhtoen就是我们想要的包点击网址发现里面有几个参数其中token是不改变的ts明显像时间戳sign的值是变化我们可以多输入几次中文发现当输入相同的中文sign的值是一样的。那们接下来我们的目标锁定sign。 我们直接在全局搜索参数名找到js文件一个个找过去。尽量找与查询参数相同的地方。找到之后打上断点开始调试。 断住之后很明显sign的值是有b(e)生成的其中参数e就是我们输入的中文我们复制b(e)在控制台打印输出发现就是我们想要的值。 进入函数b(e)里面里面很简单就是加密的地方那们接下来就简单了直接扣js代码缺啥补啥。
完整代码
function n(t, e) {for (var n 0; n e.length - 2; n 3) {var r e.charAt(n 2);r a r ? r.charCodeAt(0) - 87 : Number(r),r e.charAt(n 1) ? t r : t r,t e.charAt(n) ? t r 4294967295 : t ^ r}return t
}function encrypt(t) {var o, i t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);if (null i) {var a t.length;a 30 (t .concat(t.substr(0, 10)).concat(t.substr(Math.floor(a / 2) - 5, 10)).concat(t.substr(-10, 10)))} else {for (var s t.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), c 0, u s.length, l []; c u; c) ! s[c] l.push.apply(l, function (t) {if (Array.isArray(t))return e(t)}(o s[c].split()) || function (t) {if (undefined ! typeof Symbol null ! t[Symbol.iterator] || null ! t[iterator])return Array.from(t)}(o) || function (t, n) {if (t) {if (string typeof t)return e(t, n);var r Object.prototype.toString.call(t).slice(8, -1);return Object r t.constructor (r t.constructor.name),Map r || Set r ? Array.from(t) : Arguments r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? e(t, n) : void 0}}(o) || function () {throw new TypeError(Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.)}()),c ! u - 1 l.push(i[c]);var p l.length;p 30 (t l.slice(0, 10).join() l.slice(Math.floor(p / 2) - 5, Math.floor(p / 2) 5).join() l.slice(-10).join())}for (var d .concat(String.fromCharCode(103)).concat(String.fromCharCode(116)).concat(String.fromCharCode(107)), h (null ! r ? r : (r window[d] || ) || ).split(.), f Number(h[0]) || 0, m Number(h[1]) || 0, g [], y 0, v 0; v t.length; v) {var _ t.charCodeAt(v);_ 128 ? g[y] _ : (_ 2048 ? g[y] _ 6 | 192 : (55296 (64512 _) v 1 t.length 56320 (64512 t.charCodeAt(v 1)) ? (_ 65536 ((1023 _) 10) (1023 t.charCodeAt(v)),g[y] _ 18 | 240,g[y] _ 12 63 | 128) : g[y] _ 12 | 224,g[y] _ 6 63 | 128),g[y] 63 _ | 128)}for (var b f, w .concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(97)) .concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(54)), k .concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(51)) .concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(98)) .concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(102)), x 0; x g.length; x)b n(b g[x], w);return b n(b, k),(b ^ m) 0 (b 2147483648 (2147483647 b)),.concat((b % 1e6).toString(), .).concat(b ^ f)
}var window global
var word 加油
var r 320305.131321201
console.log(encrypt(word))这里要稍微注意一下r的值原代码r的值为null但在实际执行中r被赋予了新值如果用默认的null代码不会报错但执行的结果是不准确的。
结尾
欢迎各位小伙伴的点赞关注。溜了溜了。