在做网站的JS逆向的时候,一个函数被一个不同名字的函数实现了。也就是说,在js文件1里,函数名可能是o = n("ee55d31811f2dd3a0b70"),可是,用网页看这个函数n的实现的时候,跳转到新的页面后,发现它的实现代码是
function i(t) {
if (a[t])
return a[t].exports;
var n = a[t] = {
i: t,
l: !1,
exports: {}
};
return e[t].call(n.exports, n, n.exports, i),
n.l = !0,
n.exports
}
也就是说,函数的名字变成了i。请问这个是怎么回事?
谢邀,望采纳,新年快乐🎉
前端实现功能的代码方法,不可能用这种 n,i,abc 的名称,来定义方法名,应该是用了 js 代码混淆和压缩处理,压缩混淆后,是有混淆后的名称形式的。
在运行时做了动态变量替换,可能是用了什么开源库,可以跟踪看一下。观察整个网站的资源引用。
这是由于 JavaScript 文件被混淆了导致的。混淆是一种常用的 JavaScript 代码优化技术,它可以将代码重命名为更短、更难识别的名称,从而减小代码体积并防止代码被盗用。在这种情况下,函数 "o" 在混淆后变成了 "i"
谢谢大家的回答。目前看来,大概率是混淆了。我现在已经完成了逆向。方法就是无脑把JS文件下载下来,只要你知道哪个函数负责你要的输出就可以了。再次感谢大家,新年快乐。