From c98facb3991dc80e1e09bfbc2a5a983918ac26a6 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Mon, 9 Mar 2015 23:18:02 +0100 Subject: [PATCH] Debugger function moved to separated class, other small fixes --- .../src/com/jpexs/helpers/Helper.java | 8 + libsrc/ffdec_lib/testdata/binary.bin | Bin 0 -> 123701 bytes src/com/jpexs/decompiler/flash/gui/Main.java | 184 ----------------- .../decompiler/flash/gui/MainFrameMenu.java | 31 ++- .../flash/gui/MainFrameRibbonMenu.java | 9 +- .../jpexs/decompiler/flash/gui/MainPanel.java | 2 + .../flash/gui/debugger/DebuggerTools.java | 185 ++++++++++++++++++ .../flash/gui/locales/MainFrame_ru.properties | 2 + 8 files changed, 224 insertions(+), 197 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/binary.bin create mode 100644 src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java diff --git a/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java b/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java index 340cf7bf8..b4ebe349b 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java +++ b/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java @@ -325,6 +325,14 @@ public class Helper { return ret; } + public static String byteArrayToHex(byte[] a) { + StringBuilder sb = new StringBuilder(a.length * 2); + for (byte b : a) { + sb.append(String.format("%02x", b & 0xff)); + } + return sb.toString(); + } + public static String bytesToHexString(byte[] bytes) { return bytesToHexString(bytes, 0); } diff --git a/libsrc/ffdec_lib/testdata/binary.bin b/libsrc/ffdec_lib/testdata/binary.bin new file mode 100644 index 0000000000000000000000000000000000000000..daf1f4a140c23c3e239459e71ac4f7932990dc15 GIT binary patch literal 123701 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 m : a.getScriptPacks()) { - if (isDebuggerClass(m.getKey().packageStr, null)) { - return ac; - } - } - } - return null; - } - - private static String getDebuggerPackage(SWF swf) { - ABCContainerTag ac = getDebuggerABCTag(swf); - if (ac == null) { - return null; - } - ABC a = ac.getABC(); - for (MyEntry m : a.getScriptPacks()) { - if (isDebuggerClass(m.getKey().packageStr, null)) { - return m.getKey().packageStr; - } - } - return null; - } - - public static boolean hasDebugger(SWF swf) { - return getDebuggerABCTag(swf) != null; - } - public static void ensureMainFrame() { if (mainFrame == null) { synchronized (Main.class) { @@ -1184,15 +1138,6 @@ public class Main { public static void exit() { Configuration.saveConfig(); - /*if (proxyFrame != null && Main.proxyFrame.isVisible()) { - return; - } - if (loadFromMemoryFrame != null && Main.loadFromMemoryFrame.isVisible()) { - return; - } - if (loadFromCacheFrame != null && loadFromCacheFrame.isVisible()) { - return; - }*/ if (mainFrame != null && mainFrame.getPanel() != null) { mainFrame.getPanel().unloadFlashPlayer(); } @@ -1207,135 +1152,6 @@ public class Main { (new AdvancedSettingsDialog()).setVisible(true); } - private static boolean isDebuggerClass(String tested, String cls) { - if (tested == null) { - return false; - } - if (cls == null) { - cls = ""; - } else { - cls = "\\." + Pattern.quote(cls); - } - return tested.matches(Pattern.quote(DEBUGGER_PACKAGE) + "(\\.pkg[a-f0-9]+)?" + cls); - } - - private static String byteArrayToHex(byte[] a) { - StringBuilder sb = new StringBuilder(a.length * 2); - for (byte b : a) { - sb.append(String.format("%02x", b & 0xff)); - } - return sb.toString(); - } - - public static void replaceTraceCalls(String fname) { - SWF swf = getMainFrame().getPanel().getCurrentSwf(); - if (hasDebugger(swf)) { - String debuggerPkg = getDebuggerPackage(swf); - //change trace to fname - for (ABCContainerTag ct : swf.getAbcList()) { - ABC a = ct.getABC(); - for (int i = 1; i < a.constants.constant_multiname.size(); i++) { - Multiname m = a.constants.constant_multiname.get(i); - if ("trace".equals(m.getNameWithNamespace(a.constants, true))) { - m.namespace_index = a.constants.getNamespaceId(new Namespace(Namespace.KIND_PACKAGE, a.constants.getStringId(debuggerPkg, true)), 0, true); - m.name_index = a.constants.getStringId(fname, true); - ((Tag) ct).setModified(true); - } - } - } - } - } - - public static void switchDebugger() { - int port = Configuration.debuggerPort.get(); - SWF swf = getMainFrame().getPanel().getCurrentSwf(); - ABCContainerTag found = getDebuggerABCTag(swf); - if (found != null) { - swf.tags.remove((Tag) found); - swf.getAbcList().remove(found); - - //Change all debugger calls to normal trace - for (ABCContainerTag ct : swf.getAbcList()) { - ABC a = ct.getABC(); - for (int i = 1; i < a.constants.constant_multiname.size(); i++) { - Multiname m = a.constants.constant_multiname.get(i); - if (isDebuggerClass(m.getNameWithNamespace(a.constants, true), "debugTrace") - || isDebuggerClass(m.getNameWithNamespace(a.constants, true), "debugAlert") - || isDebuggerClass(m.getNameWithNamespace(a.constants, true), "debugSocket") - || isDebuggerClass(m.getNameWithNamespace(a.constants, true), "debugConsole")) { - m.name_index = a.constants.getStringId("trace", true); - m.namespace_index = a.constants.getNamespaceId(new Namespace(Namespace.KIND_PACKAGE, a.constants.getStringId("", true)), 0, true); - ((Tag) ct).setModified(true); - } - } - } - } else { - Random rnd = new Random(); - byte rb[] = new byte[16]; - rnd.nextBytes(rb); - String rhex = byteArrayToHex(rb); - try { - //load debug swf - SWF debugSWF = new SWF(Main.class.getClassLoader().getResourceAsStream("com/jpexs/decompiler/flash/gui/debugger/debug.swf"), false); - - ABCContainerTag firstAbc = swf.getAbcList().get(0); - String newdebuggerpkg = DEBUGGER_PACKAGE; - - if (Configuration.randomDebuggerPackage.get()) { - newdebuggerpkg += ".pkg" + rhex; - } - - //add debug ABC tags to main SWF - for (ABCContainerTag ds : debugSWF.getAbcList()) { - ABC a = ds.getABC(); - //Append random hex to Debugger package name - for (int i = 1; i < a.constants.constant_namespace.size(); i++) { - if (a.constants.constant_namespace.get(i).hasName(DEBUGGER_PACKAGE, a.constants)) { - a.constants.constant_namespace.get(i).name_index = a.constants.getStringId(newdebuggerpkg, true); - } - } - //Set debugger port to actually set port - for (int i = 0; i < a.constants.constant_int.size(); i++) { - if (a.constants.constant_int.get(i) == 123456L) { - a.constants.constant_int.set(i, (long) port); - } - } - //Add to target SWF - ((Tag) ds).setSwf(swf); - swf.tags.add(swf.tags.indexOf(firstAbc), (Tag) ds); - swf.getAbcList().add(swf.getAbcList().indexOf(firstAbc), ds); - ((Tag) ds).setModified(true); - } - - } catch (Exception ex) { - logger.log(Level.SEVERE, "Error while attaching debugger", ex); - //ignore - } - - } - initDebugger(); - } - - private static void initDebugger() { - if (debugger == null) { - synchronized (Main.class) { - if (debugger == null) { - Debugger dbg = new Debugger(Configuration.debuggerPort.get()); - dbg.start(); - debugger = dbg; - } - } - } - } - - public static void debuggerShowLog() { - initDebugger(); - if (debugDialog == null) { - debugDialog = new DebugLogDialog(debugger); - } - debugDialog.setVisible(true); - } - public static void autoCheckForUpdates() { if (Configuration.checkForUpdatesAuto.get()) { Calendar lastUpdatesCheckDate = Configuration.lastUpdatesCheckDate.get(); diff --git a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java index 34783d777..9eafac4cf 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java @@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.ApplicationInfo; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFBundle; import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.gui.debugger.DebuggerTools; import com.jpexs.decompiler.flash.gui.helpers.CheckResources; import com.jpexs.helpers.ByteArrayRange; import com.jpexs.helpers.utf8.Utf8Helper; @@ -30,6 +31,7 @@ import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.ScrollPane; import java.awt.event.KeyEvent; +import java.awt.event.WindowEvent; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -140,7 +142,11 @@ public abstract class MainFrameMenu { } protected void close() { - Main.closeFile(mainFrame.getPanel().getCurrentSwfList()); + if (swf == null) { + return; + } + + Main.closeFile(swf.swfList); } protected boolean closeAll() { @@ -216,6 +222,18 @@ public abstract class MainFrameMenu { Main.setSubLimiter(value); } + protected void switchDebugger() { + DebuggerTools.switchDebugger(swf); + } + + protected void debuggerShowLog() { + DebuggerTools.debuggerShowLog(); + } + + protected void replaceTraceCalls(String fname) { + DebuggerTools.replaceTraceCalls(swf, fname); + } + protected void removeNonScripts() { mainFrame.getPanel().removeNonScripts(swf); } @@ -311,13 +329,8 @@ public abstract class MainFrameMenu { } protected void exit() { - mainFrame.getPanel().setVisible(false); - if (Main.proxyFrame != null) { - if (Main.proxyFrame.isVisible()) { - return; - } - } - Main.exit(); + JFrame frame = (JFrame) mainFrame; + frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)); } public void updateComponents(SWF swf) { @@ -331,7 +344,7 @@ public abstract class MainFrameMenu { @Override public boolean dispatchKeyEvent(KeyEvent e) { - if (((JFrame) mainFrame).isActive() && e.getID() == KeyEvent.KEY_RELEASED) { + if (((JFrame) mainFrame).isActive() && e.getID() == KeyEvent.KEY_PRESSED) { int code = e.getKeyCode(); if (e.isControlDown() && e.isShiftDown()) { switch (code) { diff --git a/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java index 670aa3331..f203d41f4 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java @@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.gui; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.console.ContextMenuTools; +import com.jpexs.decompiler.flash.gui.debugger.DebuggerTools; import com.jpexs.decompiler.flash.tags.ABCContainerTag; import com.jpexs.helpers.Cache; import com.jpexs.process.ProcessTools; @@ -718,7 +719,7 @@ public class MainFrameRibbonMenu extends MainFrameMenu implements ActionListener boolean swfLoaded = swf != null; List abcList = swfLoaded ? swf.getAbcList() : null; boolean hasAbc = swfLoaded && abcList != null && !abcList.isEmpty(); - boolean hasDebugger = hasAbc && Main.hasDebugger(swf); + boolean hasDebugger = hasAbc && DebuggerTools.hasDebugger(swf); exportAllMenu.setEnabled(swfLoaded); exportFlaMenu.setEnabled(swfLoaded); @@ -762,7 +763,7 @@ public class MainFrameRibbonMenu extends MainFrameMenu implements ActionListener switch (e.getActionCommand()) { case ACTION_DEBUGGER_SWITCH: if (debuggerSwitchGroup.getSelected() == null || View.showConfirmDialog(mainFrame, translate("message.debugger"), translate("dialog.message.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, Configuration.displayDebuggerInfo, JOptionPane.OK_OPTION) == JOptionPane.OK_OPTION) { - Main.switchDebugger(); + switchDebugger(); mainFrame.getPanel().refreshDecompiled(); } else { if (debuggerSwitchGroup.getSelected() == debuggerSwitchCommandButton) { @@ -772,13 +773,13 @@ public class MainFrameRibbonMenu extends MainFrameMenu implements ActionListener debuggerReplaceTraceCommandButton.setEnabled(debuggerSwitchGroup.getSelected() == debuggerSwitchCommandButton); break; case ACTION_DEBUGGER_LOG: - Main.debuggerShowLog(); + debuggerShowLog(); break; case ACTION_DEBUGGER_REPLACE_TRACE: ReplaceTraceDialog rtd = new ReplaceTraceDialog(mainFrame, Configuration.lastDebuggerReplaceFunction.get()); rtd.setVisible(true); if (rtd.getValue() != null) { - Main.replaceTraceCalls(rtd.getValue()); + replaceTraceCalls(rtd.getValue()); mainFrame.getPanel().refreshDecompiled(); Configuration.lastDebuggerReplaceFunction.set(rtd.getValue()); } diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 81d1f6033..e5f16f843 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -2081,6 +2081,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec int row = tagTree.getSelectionRows()[0]; if (row > 0) { tagTree.setSelectionRow(row - 1); + tagTree.scrollRowToVisible(row - 1); previewPanel.focusTextPanel(); } } @@ -2095,6 +2096,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec int row = tagTree.getSelectionRows()[0]; if (row < tagTree.getRowCount() - 1) { tagTree.setSelectionRow(row + 1); + tagTree.scrollRowToVisible(row + 1); previewPanel.focusTextPanel(); } } diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java b/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java new file mode 100644 index 000000000..4b79cf335 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2010-2015 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.debugger; + +import com.jpexs.decompiler.flash.SWF; +import com.jpexs.decompiler.flash.abc.ABC; +import com.jpexs.decompiler.flash.abc.ClassPath; +import com.jpexs.decompiler.flash.abc.ScriptPack; +import com.jpexs.decompiler.flash.abc.types.Multiname; +import com.jpexs.decompiler.flash.abc.types.Namespace; +import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.gui.DebugLogDialog; +import com.jpexs.decompiler.flash.gui.Main; +import com.jpexs.decompiler.flash.helpers.collections.MyEntry; +import com.jpexs.decompiler.flash.tags.ABCContainerTag; +import com.jpexs.decompiler.flash.tags.Tag; +import com.jpexs.helpers.Helper; +import java.util.Random; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Pattern; + +/** + * + * @author JPEXS + */ +public class DebuggerTools { + + private static final Logger logger = Logger.getLogger(DebuggerTools.class.getName()); + + public static final String DEBUGGER_PACKAGE = "com.jpexs.decompiler.flash.debugger"; + + private static Debugger debugger; + + private static ScriptPack getDebuggerScriptPack(SWF swf) { + for (ABCContainerTag ac : swf.getAbcList()) { + ABC a = ac.getABC(); + for (MyEntry m : a.getScriptPacks()) { + if (isDebuggerClass(m.getKey().packageStr, null)) { + return m.getValue(); + } + } + } + return null; + } + + public static boolean hasDebugger(SWF swf) { + return getDebuggerScriptPack(swf) != null; + } + + private static boolean isDebuggerClass(String tested, String cls) { + if (tested == null) { + return false; + } + if (cls == null) { + cls = ""; + } else { + cls = "\\." + Pattern.quote(cls); + } + return tested.matches(Pattern.quote(DEBUGGER_PACKAGE) + "(\\.pkg[a-f0-9]+)?" + cls); + } + + public static void replaceTraceCalls(SWF swf, String fname) { + if (hasDebugger(swf)) { + String debuggerPkg = getDebuggerScriptPack(swf).getClassPath().packageStr; + //change trace to fname + for (ABCContainerTag ct : swf.getAbcList()) { + ABC a = ct.getABC(); + for (int i = 1; i < a.constants.constant_multiname.size(); i++) { + Multiname m = a.constants.constant_multiname.get(i); + if ("trace".equals(m.getNameWithNamespace(a.constants, true))) { + m.namespace_index = a.constants.getNamespaceId(new Namespace(Namespace.KIND_PACKAGE, a.constants.getStringId(debuggerPkg, true)), 0, true); + m.name_index = a.constants.getStringId(fname, true); + ((Tag) ct).setModified(true); + } + } + } + } + } + + public static void switchDebugger(SWF swf) { + int port = Configuration.debuggerPort.get(); + ScriptPack found = getDebuggerScriptPack(swf); + if (found != null) { + ABCContainerTag tag = found.abc.parentTag; + swf.tags.remove((Tag) tag); + swf.getAbcList().remove(tag); + + //Change all debugger calls to normal trace + for (ABCContainerTag ct : swf.getAbcList()) { + ABC a = ct.getABC(); + for (int i = 1; i < a.constants.constant_multiname.size(); i++) { + Multiname m = a.constants.constant_multiname.get(i); + String packageStr = m.getNameWithNamespace(a.constants, true); + if (isDebuggerClass(packageStr, "debugTrace") + || isDebuggerClass(packageStr, "debugAlert") + || isDebuggerClass(packageStr, "debugSocket") + || isDebuggerClass(packageStr, "debugConsole")) { + m.name_index = a.constants.getStringId("trace", true); + m.namespace_index = a.constants.getNamespaceId(new Namespace(Namespace.KIND_PACKAGE, a.constants.getStringId("", true)), 0, true); + ((Tag) ct).setModified(true); + } + } + } + } else { + Random rnd = new Random(); + byte rb[] = new byte[16]; + rnd.nextBytes(rb); + String rhex = Helper.byteArrayToHex(rb); + try { + //load debug swf + SWF debugSWF = new SWF(Main.class.getClassLoader().getResourceAsStream("com/jpexs/decompiler/flash/gui/debugger/debug.swf"), false); + + ABCContainerTag firstAbc = swf.getAbcList().get(0); + String newdebuggerpkg = DEBUGGER_PACKAGE; + + if (Configuration.randomDebuggerPackage.get()) { + newdebuggerpkg += ".pkg" + rhex; + } + + //add debug ABC tags to main SWF + for (ABCContainerTag ds : debugSWF.getAbcList()) { + ABC a = ds.getABC(); + //Append random hex to Debugger package name + for (int i = 1; i < a.constants.constant_namespace.size(); i++) { + if (a.constants.constant_namespace.get(i).hasName(DEBUGGER_PACKAGE, a.constants)) { + a.constants.constant_namespace.get(i).name_index = a.constants.getStringId(newdebuggerpkg, true); + } + } + //Set debugger port to actually set port + for (int i = 0; i < a.constants.constant_int.size(); i++) { + if (a.constants.constant_int.get(i) == 123456L) { + a.constants.constant_int.set(i, (long) port); + } + } + //Add to target SWF + ((Tag) ds).setSwf(swf); + swf.tags.add(swf.tags.indexOf(firstAbc), (Tag) ds); + swf.getAbcList().add(swf.getAbcList().indexOf(firstAbc), ds); + ((Tag) ds).setModified(true); + } + + } catch (Exception ex) { + logger.log(Level.SEVERE, "Error while attaching debugger", ex); + //ignore + } + + } + initDebugger(); + } + + private static void initDebugger() { + if (debugger == null) { + synchronized (Main.class) { + if (debugger == null) { + Debugger dbg = new Debugger(Configuration.debuggerPort.get()); + dbg.start(); + debugger = dbg; + } + } + } + } + + public static void debuggerShowLog() { + initDebugger(); + if (Main.debugDialog == null) { + Main.debugDialog = new DebugLogDialog(debugger); + } + Main.debugDialog.setVisible(true); + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties index e836308a6..da956a0f7 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties @@ -572,3 +572,5 @@ menu.file.export.xml = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0 #after version 4.1.1 text.align.translatex.decrease = \u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c TranslateX text.align.translatex.increase = \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c TranslateX +selectPreviousTag = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0442\u044d\u0433 +selectNextTag = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u044d\u0433