【发布时间】:2020-08-02 00:37:34
【问题描述】:
有什么方法可以去混淆一些使用 webpack 4 生成并且也是 splitChunked 的 javascript 代码?
1MB多一点的js代码,我只需要看懂一小部分代码,就是这个函数:
function l(e) {
t.d(8, function(e) {
for (var n = e.length, r = t.b(n), f = a(), c = 0; c < n; c++) {
var i = e.charCodeAt(c);
if (i > 127)
break;
f[r + c] = i
}
if (c !== n) {
0 !== c && (e = e.slice(c)),
r = t.c(r, n, n = c + 3 * e.length);
var d = a().subarray(r + c, r + n);
c += o(e, d).written
}
return u = c,
r
}(e), u);
var n, r, f = (null !== i && i.buffer === t.e.buffer || (i = new Int32Array(t.e.buffer)),
i), c = (n = f[2],
r = f[3],
d.decode(a().subarray(n, n + r))).slice();
return t.a(f[2], 1 * f[3]),
c
}
我使用了 chrome 调试器并设置了一些断点,我能够掌握它在做什么,但我需要在我的项目中做完全相同的事情,所以我需要一个更易读的代码来做到这一点。
【问题讨论】:
-
将代码复制到您的编辑器中,然后开始将变量重命名为更有意义的名称。顺便说一句,您的 sn-p 依赖于一些依赖项:t.d, t.b, a, a().subarray, t.c, o, u, i, d.decode, t.a
-
我现在可以做到这一点,但我想知道有没有其他方法可以将整个代码解包/去混淆/解码为更易于阅读的内容?工具或软件之类的东西。顺便说一句,直到现在我才知道,t 是对 web 程序集的引用,该程序集具有一些称为 a、b、c、d、e 和 f 的函数。
标签: javascript webpack reverse-engineering