From 3cac677f645b488bd646174c2c1aff41009654a1 Mon Sep 17 00:00:00 2001 From: Paul Date: Tue, 11 Feb 2025 21:54:46 +0100 Subject: [PATCH] Fix loop with empty condition In JavaScript `for`/`while` loop without a condition is equivalent to a condition always evaluating to true Fix https://github.com/lorenzoferre/deobfuscator/issues/79 --- src/techniques/dynamics/control-flow-unflattening.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/techniques/dynamics/control-flow-unflattening.js b/src/techniques/dynamics/control-flow-unflattening.js index b2acf50..374e646 100644 --- a/src/techniques/dynamics/control-flow-unflattening.js +++ b/src/techniques/dynamics/control-flow-unflattening.js @@ -78,7 +78,7 @@ export default function (babel) { } } } - let testOuterLoop = vm.runInContext(generate(node.test).code, context); + let testOuterLoop = node.test === null || vm.runInContext(generate(node.test).code, context); if (!testOuterLoop) doHaveToSearch = false; iteration++; }