Changed AS1/2 deobfuscation - removing obfuscated declarations is now optional (default: off)

This commit is contained in:
Jindra Petřík
2022-12-18 23:10:24 +01:00
parent 54b6153b82
commit cc1032b819
5 changed files with 15 additions and 5 deletions
@@ -117,9 +117,10 @@ public class ActionDeobfuscator extends SWFDecompilerAdapter {
changed = true;
}
}
//Commented out, as it may remove variables used in another DoAction or inside functions.
//changed = removeObfuscatedUnusedVariables(fastActions);
//actions.setActions(fastActions.toActionList());
if (Configuration.deobfuscateAs12RemoveInvalidNamesAssignments.get()) {
changed = removeObfuscatedUnusedVariables(fastActions);
actions.setActions(fastActions.toActionList());
}
}
}
@@ -321,7 +322,6 @@ public class ActionDeobfuscator extends SWFDecompilerAdapter {
return ret;
}
//currently unused
private boolean removeObfuscatedUnusedVariables(FastActionList actions) throws InterruptedException {
if (actions.isEmpty()) {
return false;
@@ -835,6 +835,10 @@ public final class Configuration {
@ConfigurationCategory("display")
public static ConfigurationItem<Boolean> autoPlaySounds = null;
@ConfigurationDefaultBoolean(false)
@ConfigurationCategory("script")
public static ConfigurationItem<Boolean> deobfuscateAs12RemoveInvalidNamesAssignments = null;
private enum OSId {
WINDOWS, OSX, UNIX
}