javascript-deobfuscator
javascript-deobfuscator copied to clipboard
[Bug] Mishandling of scope
In the following example, the declaration of bar via const bar = function(){…} is not incorporated in the deobfuscation result of function body foo:
function foo() {
const bar = function () {
for (;;){
return 0;
}
};
const x = bar();
return x
}
function bar() {
return 42;
}
deobfuscation should result in foo returning 0 either directly or indirectly instead.
Weirdly enough, it works when the complexity of the refered-to bar function is reduced to a plain return 0 without the for-loop wrapper:
function foo() {
const bar = function () {
return 0;
};
const x = bar();
return x
}
function bar() {
return 42;
}
correctly results in
function foo() {
const x = 0;
return x;
}