Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用webpack 4去除javascript的污点_Javascript_Webpack_Reverse Engineering - Fatal编程技术网

用webpack 4去除javascript的污点

用webpack 4去除javascript的污点,javascript,webpack,reverse-engineering,Javascript,Webpack,Reverse Engineering,有没有办法去除Webpack4生成的一些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);

有没有办法去除Webpack4生成的一些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
        }
函数l(e){
t、 d(8,功能(e){
对于(var n=e.length,r=t.b(n),f=a(),c=0;c127)
打破
f[r+c]=i
}
如果(c!==n){
0!==c&&(e=e.slice(c)),
r=t.c(r,n,n=c+3*e.length);
var d=a().子阵(r+c,r+n);
c+=o(e,d)。写入
}
返回u=c,
R
}(e) ,u);
变量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、 解码(a().子数组(n,n+r)).slice();
返回t.a(f[2],1*f[3]),
C
}

我使用了chrome调试器并设置了一些断点,我能够掌握它在做什么,但我需要在我的项目中做完全相同的事情,因此我需要一个更可读的代码来做这件事。

据我所知,没有简单的方法可以做到这一点,但我想与您分享一些技巧:

  • 将所有
    ,'
    替换为
    ,'\n'
  • 检查并纠正可能的代码中断
  • 使用for循环在静态值数组之间迭代并替换所有用法
  • 如果出现与语言相关的中断,请更改编码
  • 替换所有
    带有
    \n
    并纠正可能的代码中断
  • 知道重命名函数和为它们编写注释更容易

  • 据我所知,没有简单的方法可以做到这一点,但我想与您分享一些技巧:

  • 将所有
    ,'
    替换为
    ,'\n'
  • 检查并纠正可能的代码中断
  • 使用for循环在静态值数组之间迭代并替换所有用法
  • 如果出现与语言相关的中断,请更改编码
  • 替换所有
    带有
    \n
    并纠正可能的代码中断
  • 知道重命名函数和为它们编写注释更容易

  • 将代码复制到编辑器中,并开始将变量重命名为更有意义的变量。顺便说一句,您的代码片段依赖于一些依赖项:t.d,t.b,a,a()。子数组,t.c,o,u,i,d.decode,t.aI现在我可以这么做了,但我想知道还有其他方法可以将整个代码解包/脱臭/解码成更容易阅读的格式吗?工具或软件之类的东西。顺便说一句,直到现在我才明白,t是对webassembly的引用,它有一些称为a、b、c、d、e和f的函数。将代码复制到编辑器中,并开始将变量重命名为更有意义的函数。顺便说一句,您的代码片段依赖于一些依赖项:t.d,t.b,a,a()。子数组,t.c,o,u,i,d.decode,t.aI现在我可以这么做了,但我想知道还有其他方法可以将整个代码解包/脱臭/解码成更容易阅读的格式吗?工具或软件之类的东西。顺便说一句,直到现在我才明白,t是对webassembly的引用,它有一些称为a、b、c、d、e和f的函数。