From 54b6153b82ba85c86ba730e37789847315696d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 10 Dec 2022 18:21:41 +0100 Subject: [PATCH] AS1/2 deobfuscation - do not remove unused obfuscated variables - we are unable to properly determine if the variable is unused. --- .../flash/action/deobfuscation/ActionDeobfuscator.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java index 4e0498dd7..c9f7621b1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/deobfuscation/ActionDeobfuscator.java @@ -117,8 +117,9 @@ public class ActionDeobfuscator extends SWFDecompilerAdapter { changed = true; } } - changed = removeObfuscatedUnusedVariables(fastActions); - actions.setActions(fastActions.toActionList()); + //Commented out, as it may remove variables used in another DoAction or inside functions. + //changed = removeObfuscatedUnusedVariables(fastActions); + //actions.setActions(fastActions.toActionList()); } } @@ -320,6 +321,7 @@ public class ActionDeobfuscator extends SWFDecompilerAdapter { return ret; } + //currently unused private boolean removeObfuscatedUnusedVariables(FastActionList actions) throws InterruptedException { if (actions.isEmpty()) { return false;