diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java index 9fc0a2f74..84b758f91 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java @@ -552,7 +552,7 @@ public class IdentifiersDeobfuscation { */ public static GraphTextWriter appendObfuscatedIdentifier(SWF swf, Set used, String s, GraphTextWriter writer) { Map map = new LinkedHashMap<>(); - if (Configuration.useSafeStr.get() && swf != null) { + if (Configuration.autoDeobfuscateIdentifiers.get() && swf != null) { map = swf.getObfuscatedIdentifiersMap(); used.add(s); if (map.containsKey(s)) { @@ -587,7 +587,7 @@ public class IdentifiersDeobfuscation { } Map map = new LinkedHashMap<>(); - if (Configuration.useSafeStr.get()) { + if (Configuration.autoDeobfuscateIdentifiers.get()) { if (swf != null) { map = swf.getObfuscatedIdentifiersMap(); @@ -623,7 +623,7 @@ public class IdentifiersDeobfuscation { return s; } - if (Configuration.useSafeStr.get()) { + if (Configuration.autoDeobfuscateIdentifiers.get()) { String ret = IdentifiersDeobfuscation.SAFE_STR_PREFIX + map.size(); map.put(s, ret); used.add(s); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index 478a38719..078308321 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -1161,7 +1161,7 @@ public final class Configuration { @ConfigurationDefaultBoolean(false) @ConfigurationCategory("script") - public static ConfigurationItem useSafeStr = null; + public static ConfigurationItem autoDeobfuscateIdentifiers = null; private static Map configurationDescriptions = new LinkedHashMap<>(); private static Map configurationTitles = new LinkedHashMap<>(); diff --git a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java index d3d968093..5aa9a12c1 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java @@ -99,7 +99,9 @@ public abstract class MainFrameMenu implements MenuBuilder { //private ConfigurationItemChangeListener configListenerCacheOnDisk; private ConfigurationItemChangeListener configListenerGotoMainClassOnStartup; - private ConfigurationItemChangeListener configListenerAutoRenameIdentifiers; + //private ConfigurationItemChangeListener configListenerAutoRenameIdentifiers; + + private ConfigurationItemChangeListener configListenerAutoDeobfuscateIdentifiers; private ConfigurationItemChangeListener configListenerAutoOpenLoadedSWFs; @@ -914,6 +916,14 @@ public abstract class MainFrameMenu implements MenuBuilder { button.setSelected(Configuration.autoRenameIdentifiers.get()); } } + + protected void autoDeobfuscateIdentifiersActionPerformed(ActionEvent evt) { + AbstractButton button = (AbstractButton) evt.getSource(); + boolean selected = button.isSelected(); + + Configuration.autoDeobfuscateIdentifiers.set(selected); + mainFrame.getPanel().autoDeobfuscateChanged(); + } /*protected void cacheOnDiskActionPerformed(ActionEvent evt) { AbstractButton button = (AbstractButton) evt.getSource(); @@ -1385,7 +1395,8 @@ public abstract class MainFrameMenu implements MenuBuilder { addToggleMenuItem("/settings/disableDecompilation", translate("menu.settings.disabledecompilation"), null, null, this::disableDecompilationActionPerformed, 0, null); //addToggleMenuItem("/settings/cacheOnDisk", translate("menu.settings.cacheOnDisk"), null, null, this::cacheOnDiskActionPerformed, 0, null); addToggleMenuItem("/settings/gotoMainClassOnStartup", translate("menu.settings.gotoMainClassOnStartup"), null, null, this::gotoDocumentClassOnStartupActionPerformed, 0, null); - addToggleMenuItem("/settings/autoRenameIdentifiers", translate("menu.settings.autoRenameIdentifiers"), null, null, this::autoRenameIdentifiersActionPerformed, 0, null); + addToggleMenuItem("/settings/autoDeobfuscateIdentifiers", translate("menu.settings.autoDeobfuscateIdentifiers"), null, null, this::autoDeobfuscateIdentifiersActionPerformed, 0, null); + //addToggleMenuItem("/settings/autoRenameIdentifiers", translate("menu.settings.autoRenameIdentifiers"), null, null, this::autoRenameIdentifiersActionPerformed, 0, null); addToggleMenuItem("/settings/autoOpenLoadedSWFs", translate("menu.settings.autoOpenLoadedSWFs"), null, null, this::autoOpenLoadedSWFsActionPerformed, 0, null); addToggleMenuItem("/settings/flattenASPackages", translate("menu.settings.flattenASPackages"), null, null, this::flattenASPackagesActionPerformed, 0, null); if (Platform.isWindows()) { @@ -1448,11 +1459,16 @@ public abstract class MainFrameMenu implements MenuBuilder { setMenuChecked("/settings/gotoMainClassOnStartup", newValue); }); - setMenuChecked("/settings/autoRenameIdentifiers", Configuration.autoRenameIdentifiers.get()); + /*setMenuChecked("/settings/autoRenameIdentifiers", Configuration.autoRenameIdentifiers.get()); Configuration.autoRenameIdentifiers.addListener(configListenerAutoRenameIdentifiers = (Boolean newValue) -> { setMenuChecked("/settings/autoRenameIdentifiers", newValue); + });*/ + + setMenuChecked("/settings/autoDeobfuscateIdentifiers", Configuration.autoDeobfuscateIdentifiers.get()); + Configuration.autoDeobfuscateIdentifiers.addListener(configListenerAutoDeobfuscateIdentifiers = (Boolean newValue) -> { + setMenuChecked("/settings/autoDeobfuscateIdentifiers", newValue); }); - + setMenuChecked("/settings/autoOpenLoadedSWFs", Configuration.autoOpenLoadedSWFs.get()); Configuration.autoOpenLoadedSWFs.addListener(configListenerAutoOpenLoadedSWFs = (Boolean newValue) -> { setMenuChecked("/settings/autoOpenLoadedSWFs", newValue); @@ -1704,7 +1720,8 @@ public abstract class MainFrameMenu implements MenuBuilder { Configuration.decompile.removeListener(configListenerDecompile); //Configuration.cacheOnDisk.removeListener(configListenerCacheOnDisk); Configuration.gotoMainClassOnStartup.removeListener(configListenerGotoMainClassOnStartup); - Configuration.autoRenameIdentifiers.removeListener(configListenerAutoRenameIdentifiers); + //Configuration.autoRenameIdentifiers.removeListener(configListenerAutoRenameIdentifiers); + Configuration.autoDeobfuscateIdentifiers.removeListener(configListenerAutoDeobfuscateIdentifiers); Configuration.autoOpenLoadedSWFs.removeListener(configListenerAutoOpenLoadedSWFs); Main.stopRun(); diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index 35aebd9d6..b59bee0b0 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -1267,8 +1267,15 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener