From 2746f3bc32e8d53b546e303d08bac11bb0082c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Tue, 28 Oct 2014 15:57:31 +0100 Subject: [PATCH] Issue #707 Debugger for logging messages --- build_common.xml | 1 + lib/JavactiveX.jar | Bin 1126613 -> 1128160 bytes .../flash/debugger/DebugConnection.as | 67 ++++++ .../decompiler/flash/debugger/DebugMain.as | 17 ++ .../decompiler/flash/debugger/debugAlert.as | 11 + .../decompiler/flash/debugger/debugConsole.as | 11 + .../decompiler/flash/debugger/debugInit.as | 8 + .../decompiler/flash/debugger/debugSocket.as | 13 ++ .../decompiler/flash/debugger/debugTrace.as | 9 + libsrc/debugswf/debug/DOMDocument.xml | 34 +++ libsrc/debugswf/debug/META-INF/metadata.xml | 73 +++++++ libsrc/debugswf/debug/MobileSettings.xml | 0 libsrc/debugswf/debug/PublishSettings.xml | 206 ++++++++++++++++++ libsrc/debugswf/debug/bin/SymDepend.cache | Bin 0 -> 28 bytes libsrc/debugswf/debug/debug.xfl | 1 + .../decompiler/flash/abc/ScriptPack.java | 32 +++ .../flash/configuration/Configuration.java | 8 + .../decompiler/flash/gui/DebugLogDialog.java | 114 ++++++++++ src/com/jpexs/decompiler/flash/gui/Main.java | 168 +++++++++++++- .../flash/gui/MainFrameRibbonMenu.java | 72 +++++- .../jpexs/decompiler/flash/gui/MainPanel.java | 4 +- .../flash/gui/ReplaceTraceDialog.java | 109 +++++++++ .../decompiler/flash/gui/TagTreeModel.java | 4 +- src/com/jpexs/decompiler/flash/gui/View.java | 30 ++- .../decompiler/flash/gui/abc/ABCPanel.java | 30 ++- .../flash/gui/abc/DecompiledEditorPane.java | 2 +- .../decompiler/flash/gui/abc/DetailPanel.java | 4 +- .../flash/gui/debugger/DebugListener.java | 10 + .../flash/gui/debugger/Debugger.java | 181 +++++++++++++++ .../decompiler/flash/gui/debugger/debug.swf | Bin 0 -> 1732 bytes .../flash/gui/graphics/debugger16.png | Bin 0 -> 790 bytes .../flash/gui/graphics/debugger32.png | Bin 0 -> 2078 bytes .../flash/gui/graphics/debuggerattach16.png | Bin 0 -> 958 bytes .../flash/gui/graphics/debuggerattach32.png | Bin 0 -> 2314 bytes .../flash/gui/graphics/debuggerlog16.png | Bin 0 -> 554 bytes .../flash/gui/graphics/debuggerremove16.png | Bin 0 -> 951 bytes .../flash/gui/graphics/debuggerremove32.png | Bin 0 -> 2337 bytes .../flash/gui/graphics/debuggerreplace16.png | Bin 0 -> 984 bytes .../flash/gui/graphics/debuggerreplace32.png | Bin 0 -> 2308 bytes .../locales/AdvancedSettingsDialog.properties | 6 + .../AdvancedSettingsDialog_cs.properties | 20 +- .../gui/locales/DebugLogDialog.properties | 19 ++ .../gui/locales/DebugLogDialog_cs.properties | 19 ++ .../gui/locales/ExportDialog_cs.properties | 4 + .../flash/gui/locales/MainFrame.properties | 9 +- .../flash/gui/locales/MainFrame_cs.properties | 9 +- .../gui/locales/ReplaceTraceDialog.properties | 20 ++ .../locales/ReplaceTraceDialog_cs.properties | 20 ++ .../flash/gui/player/FlashPlayerPanel.java | 34 +++ 49 files changed, 1351 insertions(+), 28 deletions(-) create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugMain.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugAlert.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugConsole.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugInit.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugSocket.as create mode 100644 libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugTrace.as create mode 100644 libsrc/debugswf/debug/DOMDocument.xml create mode 100644 libsrc/debugswf/debug/META-INF/metadata.xml create mode 100644 libsrc/debugswf/debug/MobileSettings.xml create mode 100644 libsrc/debugswf/debug/PublishSettings.xml create mode 100644 libsrc/debugswf/debug/bin/SymDepend.cache create mode 100644 libsrc/debugswf/debug/debug.xfl create mode 100644 src/com/jpexs/decompiler/flash/gui/DebugLogDialog.java create mode 100644 src/com/jpexs/decompiler/flash/gui/ReplaceTraceDialog.java create mode 100644 src/com/jpexs/decompiler/flash/gui/debugger/DebugListener.java create mode 100644 src/com/jpexs/decompiler/flash/gui/debugger/Debugger.java create mode 100644 src/com/jpexs/decompiler/flash/gui/debugger/debug.swf create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debugger16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debugger32.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach32.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerlog16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerremove16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerremove32.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerreplace16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/debuggerreplace32.png create mode 100644 src/com/jpexs/decompiler/flash/gui/locales/DebugLogDialog.properties create mode 100644 src/com/jpexs/decompiler/flash/gui/locales/DebugLogDialog_cs.properties create mode 100644 src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog.properties create mode 100644 src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog_cs.properties diff --git a/build_common.xml b/build_common.xml index e97fccec0..a6ea1a799 100644 --- a/build_common.xml +++ b/build_common.xml @@ -17,6 +17,7 @@ + diff --git a/lib/JavactiveX.jar b/lib/JavactiveX.jar index 9e4a6b28ae33b2097e8783687f3dc27e082e3e92..d3143e8899c9330c03bf57ae173f4eb9c9fb2787 100644 GIT binary patch delta 156226 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 z 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�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
X(OyQ&Pazy(QIhIoxGA# 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 Q%lL0WbGT41f$4JnA9b{>V*mgE diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as new file mode 100644 index 000000000..4d0008532 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as @@ -0,0 +1,67 @@ +package com.jpexs.decompiler.flash.debugger { + + import flash.net.Socket; + import flash.utils.ByteArray; + import flash.events.Event; + import flash.display.Sprite; + + public class DebugConnection { + + private static var s:Socket; + private static var q = []; + private static var first:Boolean = true; + private static var inited:Boolean = false; + private static var name:String; + + + + private static function sendQueue(){ + var qo = q; + q = []; + for each(var m in qo){ + writeMsg(m); + } + } + + private static function writeString(msg){ + var b:ByteArray = new ByteArray(); + b.writeUTFBytes(msg); + s.writeByte(b.length); + s.writeBytes(b,0,b.length); + } + + public static function initClient(sname){ + if(inited){ + return; + } + name = sname; + inited = true; + s = new Socket(); + s.addEventListener(Event.CONNECT, function(){ + sendQueue(); + }); + var port:int = 0; + port = 123456; + s.connect("localhost",port); + inited = true; + } + + public static function writeMsg(msg){ + if(!inited){ + initClient(""); + } + if(s.connected){ + if(first){ + s.writeByte(0); + writeString(name); + first = false; + } + writeString(msg); + }else{ + q.push(msg); + } + } + + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugMain.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugMain.as new file mode 100644 index 000000000..0ac6bac75 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugMain.as @@ -0,0 +1,17 @@ +package com.jpexs.decompiler.flash.debugger { + + import flash.display.MovieClip; + + + public class DebugMain extends MovieClip { + + + public function DebugMain() { + debugAlert("test alert"); + debugConsole("test console"); + debugSocket("test proxy"); + debugTrace("test trace"); + } + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugAlert.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugAlert.as new file mode 100644 index 000000000..7a35251ec --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugAlert.as @@ -0,0 +1,11 @@ +package com.jpexs.decompiler.flash.debugger { + + import flash.external.ExternalInterface; + + public function debugAlert(msg):*{ + if(ExternalInterface.available) + ExternalInterface.call("alert",""+msg); + return msg; + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugConsole.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugConsole.as new file mode 100644 index 000000000..121ab0867 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugConsole.as @@ -0,0 +1,11 @@ +package com.jpexs.decompiler.flash.debugger { + + import flash.external.ExternalInterface; + + public function debugConsole(msg):*{ + if(ExternalInterface.available) + ExternalInterface.call("console.log",""+msg); + return msg; + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugInit.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugInit.as new file mode 100644 index 000000000..699f8e7c9 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugInit.as @@ -0,0 +1,8 @@ +package com.jpexs.decompiler.flash.debugger { + + + public function debugInit(name){ + DebugConnection.iniClient(name); + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugSocket.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugSocket.as new file mode 100644 index 000000000..0f93d6137 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugSocket.as @@ -0,0 +1,13 @@ +package com.jpexs.decompiler.flash.debugger { + import flash.system.Capabilities; + + public function debugSocket(msg):*{ + //only on webpages or activex + if(Capabilities.playerType == 'PlugIn' + || Capabilities.playerType == 'ActiveX'){ + DebugConnection.writeMsg(msg); + } + return msg; + } + +} diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugTrace.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugTrace.as new file mode 100644 index 000000000..58ee09b11 --- /dev/null +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/debugTrace.as @@ -0,0 +1,9 @@ +package com.jpexs.decompiler.flash.debugger { + + + public function debugTrace(name){ + debugConsole(name); + debugSocket(name); + } + +} diff --git a/libsrc/debugswf/debug/DOMDocument.xml b/libsrc/debugswf/debug/DOMDocument.xml new file mode 100644 index 000000000..607f86475 --- /dev/null +++ b/libsrc/debugswf/debug/DOMDocument.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/debugswf/debug/META-INF/metadata.xml b/libsrc/debugswf/debug/META-INF/metadata.xml new file mode 100644 index 000000000..1bd11073f --- /dev/null +++ b/libsrc/debugswf/debug/META-INF/metadata.xml @@ -0,0 +1,73 @@ + + + + + Adobe Flash Professional CS6 - build 537 + 2014-10-26T15:59:21+01:00 + 2014-10-27T08:16:09+01:00 + 2014-10-27T08:16:09+01:00 + + + application/vnd.adobe.fla + + + xmp.iid:A3850720A95DE411873EA2B016962F64 + xmp.did:1476A545885CE411B13FACEEFCD7D43C + xmp.did:1476A545885CE411B13FACEEFCD7D43C + + + + created + xmp.iid:1476A545885CE411B13FACEEFCD7D43C + 2014-10-26T15:59:21+01:00 + Adobe Flash Professional CS6 - build 537 + + + created + xmp.iid:8C96C4B4325DE411B13FACEEFCD7D43C + 2014-10-26T15:59:21+01:00 + Adobe Flash Professional CS6 - build 537 + + + created + xmp.iid:8E96C4B4325DE411B13FACEEFCD7D43C + 2014-10-26T15:59:21+01:00 + Adobe Flash Professional CS6 - build 537 + + + created + xmp.iid:A3850720A95DE411873EA2B016962F64 + 2014-10-26T15:59:21+01:00 + Adobe Flash Professional CS6 - build 537 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/debugswf/debug/MobileSettings.xml b/libsrc/debugswf/debug/MobileSettings.xml new file mode 100644 index 000000000..e69de29bb diff --git a/libsrc/debugswf/debug/PublishSettings.xml b/libsrc/debugswf/debug/PublishSettings.xml new file mode 100644 index 000000000..dce804882 --- /dev/null +++ b/libsrc/debugswf/debug/PublishSettings.xml @@ -0,0 +1,206 @@ + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + ../../src/com/jpexs/decompiler/flash/gui/debugger/debug.swf + debug.exe + debug.app + debug.html + debug.gif + debug.jpg + debug.png + debug.mov + debug.smil + debug.swc + + + 0 + 11,4,0,0;11,3,0,0;11,2,0,0;11,1,0,0;10,3,0,0;10,2,153,0;10,1,52,0;9,0,124,0;8,0,24,0;7,0,14,0;6,0,79,0;5,0,58,0;4,0,32,0;3,0,8,0;2,0,1,12;1,0,0,1; + 1 + 1 + debug_content.html + debug_alternate.html + 0 + + 550 + 400 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 4 + 0 + 0 + 1 + 0 + C:\Users\Jindra\AppData\Local\Adobe\Flash CS6\en_US\Configuration\HTML\Default.html + 1 + + + + + 0 + 0 + 0 + 80 + 0 + 0 + 7 + 0 + 7 + 0 + 17 + FlashPlayer11.4 + 3 + 1 + + . + CONFIG::FLASH_AUTHORING="true"; + 0 + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + com.jpexs.decompiler.flash.debugger.DebugMain + 2 + 4 + 4096 + AS3 + 1 + 1 + 0 + 15 + 1 + 0 + 4102 + rsl + wrap + $(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf + + + $(AppConfig)/ActionScript 3.0/libs + merge + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + rsl + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + 550 + 400 + 0 + 4718592 + 0 + 80 + 1 + + + 1 + 0 + 1 + 0 + 0 + 100000 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + + + 550 + 400 + 0 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + + 128 + + + 255 + + + + 550 + 400 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + + + + 24-bit with Alpha + 255 + + + + 550 + 400 + 1 + 0 + + + 00000000 + 0 + 0 + 0 + 0 + 1 + + + \ No newline at end of file diff --git a/libsrc/debugswf/debug/bin/SymDepend.cache b/libsrc/debugswf/debug/bin/SymDepend.cache new file mode 100644 index 0000000000000000000000000000000000000000..fa0e29a10ed1436db6cc9d792e3fd447bdfa36fe GIT binary patch literal 28 fcmYdiU|_h%&c(pQAj81PV93A% pluginPath = null; + + @ConfigurationDefaultInt(55556) + @ConfigurationCategory("script") + public static final ConfigurationItem debuggerPort = null; + + @ConfigurationDefaultBoolean(true) + public static final ConfigurationItem displayDebuggerInfo = null; + private enum OSId { WINDOWS, OSX, UNIX diff --git a/src/com/jpexs/decompiler/flash/gui/DebugLogDialog.java b/src/com/jpexs/decompiler/flash/gui/DebugLogDialog.java new file mode 100644 index 000000000..789ae59c6 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/DebugLogDialog.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2014 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; + +import com.jpexs.decompiler.flash.gui.debugger.DebugListener; +import com.jpexs.decompiler.flash.gui.debugger.Debugger; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.ListModel; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; + +/** + * + * @author JPEXS + */ +public class DebugLogDialog extends AppDialog implements ActionListener { + + private JTextArea logTextArea = new JTextArea(); + private final String ACTION_CLOSE = "CLOSE"; + private final String ACTION_CLEAR = "CLEAR"; + private Debugger debug; + + public DebugLogDialog(Debugger debug) { + setSize(800, 600); + this.debug = debug; + setTitle(translate("dialog.title")); + logTextArea.setBackground(Color.white); + logTextArea.setEditable(false); + JScrollPane spane = new JScrollPane(logTextArea); + spane.setPreferredSize(new Dimension(800,500)); + + debug.addMessageListener(new DebugListener() { + + @Override + public void onMessage(String clientId, String msg) { + log(translate("msg.header").replace("%clientid%", clientId)+msg); + } + + @Override + public void onFinish(String clientId) { + + } + }); + Container cnt = getContentPane(); + cnt.setLayout(new BorderLayout()); + cnt.add(spane,BorderLayout.CENTER); + + JPanel buttonsPanel = new JPanel(new FlowLayout()); + JButton clearButton = new JButton(translate("button.clear")); + clearButton.setActionCommand(ACTION_CLEAR); + clearButton.addActionListener(this); + + JButton closeButton = new JButton(translate("button.close")); + closeButton.setActionCommand(ACTION_CLOSE); + closeButton.addActionListener(this); + + buttonsPanel.add(clearButton); + buttonsPanel.add(closeButton); + cnt.add(buttonsPanel,BorderLayout.SOUTH); + View.setWindowIcon(this); + View.centerScreen(this); + } + + public void log(String msg){ + Document d = logTextArea.getDocument(); + try { + d.insertString(d.getLength(), msg+"\r\n", null); + } catch (BadLocationException ex) { + //ignore + } + } + + @Override + public void actionPerformed(ActionEvent e) { + switch(e.getActionCommand()){ + case ACTION_CLEAR: + logTextArea.setText(""); + break; + case ACTION_CLOSE: + setVisible(false); + break; + } + } + +} diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java index 6788d89d2..13b4b0888 100644 --- a/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/src/com/jpexs/decompiler/flash/gui/Main.java @@ -23,12 +23,22 @@ import com.jpexs.decompiler.flash.SWFBundle; import com.jpexs.decompiler.flash.SWFSourceInfo; import com.jpexs.decompiler.flash.SearchMode; import com.jpexs.decompiler.flash.Version; +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.avm2.AVM2Code; +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.console.CommandLineArgumentParser; import com.jpexs.decompiler.flash.console.ContextMenuTools; +import com.jpexs.decompiler.flash.gui.debugger.DebugListener; +import com.jpexs.decompiler.flash.gui.debugger.Debugger; import com.jpexs.decompiler.flash.gui.proxy.ProxyFrame; import com.jpexs.decompiler.flash.helpers.SWFDecompilerPlugin; +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.decompiler.flash.tags.base.FontTag; import com.jpexs.decompiler.flash.treeitems.SWFList; import com.jpexs.helpers.Cache; @@ -70,6 +80,7 @@ import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map.Entry; +import java.util.Random; import java.util.logging.ConsoleHandler; import java.util.logging.FileHandler; import java.util.logging.Formatter; @@ -106,6 +117,39 @@ public class Main { public static LoadFromMemoryFrame loadFromMemoryFrame; public static LoadFromCacheFrame loadFromCacheFrame; private static final Logger logger = Logger.getLogger(Main.class.getName()); + private static Debugger debugger; + public static DebugLogDialog debugDialog; + public static final String DEBUGGER_PACKAGE = "com.jpexs.decompiler.flash.debugger"; + + private static ABCContainerTag getDebuggerABCTag(SWF swf) { + for (ABCContainerTag ac : swf.abcList) { + ABC a = ac.getABC(); + for (MyEntry 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) { @@ -448,6 +492,10 @@ public class Main { } public static void reloadApp() { + if (debugDialog != null) { + debugDialog.setVisible(false); + debugDialog = null; + } if (loadingDialog != null) { loadingDialog.setVisible(false); loadingDialog = null; @@ -878,7 +926,7 @@ public class Main { * @throws IOException */ public static void main(String[] args) throws IOException { - + String pluginPath = Configuration.pluginPath.get(); if (pluginPath != null && !pluginPath.isEmpty()) { try { @@ -1030,6 +1078,124 @@ 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.abcList) { + 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.abcList.remove(found); + + //Change all debugger calls to normal trace + for (ABCContainerTag ct : swf.abcList) { + 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.abcList.get(0); + String newdebuggerpkg = DEBUGGER_PACKAGE + ".pkg" + rhex; + //add debug ABC tags to main SWF + for (ABCContainerTag ds : debugSWF.abcList) { + 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.abcList.add(swf.abcList.indexOf(firstAbc), ds); + ((Tag) ds).setModified(true); + } + + } catch (Exception ex) { + //ignore + } + + } + initDebugger(); + } + + private static void initDebugger() { + if (debugger == null) { + debugger = new Debugger(Configuration.debuggerPort.get()); + debugger.start(); + } + } + + 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/MainFrameRibbonMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java index 72eefe499..6b0a4e7fe 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameRibbonMenu.java @@ -93,6 +93,9 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { static final String ACTION_TIMELINE = "TIMELINE"; static final String ACTION_AUTO_DEOBFUSCATE = "AUTODEOBFUSCATE"; static final String ACTION_EXIT = "EXIT"; + static final String ACTION_DEBUGGER_SWITCH = "DEBUGGER_SWITCH"; + static final String ACTION_DEBUGGER_REPLACE_TRACE = "DEBUGGER_REPLACE_TRACE"; + static final String ACTION_DEBUGGER_LOG = "DEBUGGER_LOG"; static final String ACTION_RENAME_ONE_IDENTIFIER = "RENAMEONEIDENTIFIER"; static final String ACTION_ABOUT = "ABOUT"; @@ -158,6 +161,10 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { private CommandToggleButtonGroup timeLineToggleGroup; private JCommandButton gotoDocumentClassCommandButton; private JCommandButton clearRecentFilesCommandButton; + private JCommandToggleButton debuggerSwitchCommandButton; + private CommandToggleButtonGroup debuggerSwitchGroup; + private JCommandButton debuggerReplaceTraceCommandButton; + private JCommandButton debuggerLogCommandButton; private CommandToggleButtonGroup viewModeToggleGroup; @@ -385,13 +392,43 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { } private RibbonTask createToolsRibbonTask() { + + + JRibbonBand debuggerBand = new JRibbonBand(translate("menu.debugger"), null); + debuggerBand.setResizePolicies(getResizePolicies(debuggerBand)); + + debuggerSwitchCommandButton = new JCommandToggleButton(translate("menu.debugger.switch"),View.getResizableIcon("debugger32")); + assignListener(debuggerSwitchCommandButton, ACTION_DEBUGGER_SWITCH); + + //debuggerDetachCommandButton = new JCommandButton("Detach debugger",View.getResizableIcon("debuggerremove16")); + //assignListener(debuggerDetachCommandButton, ACTION_DEBUGGER_DETACH); + + debuggerReplaceTraceCommandButton = new JCommandButton(translate("menu.debugger.replacetrace"), View.getResizableIcon("debuggerreplace16")); + assignListener(debuggerReplaceTraceCommandButton, ACTION_DEBUGGER_REPLACE_TRACE); + + debuggerLogCommandButton = new JCommandButton(translate("menu.debugger.showlog"), View.getResizableIcon("debuggerlog16")); + assignListener(debuggerLogCommandButton, ACTION_DEBUGGER_LOG); + + debuggerSwitchGroup = new CommandToggleButtonGroup(); + debuggerSwitchGroup.add(debuggerSwitchCommandButton); + + debuggerSwitchCommandButton.setEnabled(false); + + debuggerReplaceTraceCommandButton.setEnabled(false); + + debuggerBand.addCommandButton(debuggerSwitchCommandButton, RibbonElementPriority.TOP); + debuggerBand.addCommandButton(debuggerReplaceTraceCommandButton, RibbonElementPriority.MEDIUM); + debuggerBand.addCommandButton(debuggerLogCommandButton, RibbonElementPriority.MEDIUM); + + + //----------------------------------------- TOOLS ----------------------------------- JRibbonBand toolsBand = new JRibbonBand(translate("menu.tools"), null); toolsBand.setResizePolicies(getResizePolicies(toolsBand)); searchCommandButton = new JCommandButton(fixCommandTitle(translate("menu.tools.search")), View.getResizableIcon("search32")); - assignListener(searchCommandButton, ACTION_SEARCH); + assignListener(searchCommandButton, ACTION_SEARCH); timeLineToggleButton = new JCommandToggleButton(fixCommandTitle(translate("menu.tools.timeline")), View.getResizableIcon("timeline32")); assignListener(timeLineToggleButton, ACTION_TIMELINE); @@ -436,7 +473,7 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { //JRibbonBand otherToolsBand = new JRibbonBand(translate("menu.tools.otherTools"), null); //otherToolsBand.setResizePolicies(getResizePolicies(otherToolsBand)); - return new RibbonTask(translate("menu.tools"), toolsBand, deobfuscationBand/*, otherToolsBand*/); + return new RibbonTask(translate("menu.tools"), toolsBand, deobfuscationBand, debuggerBand /*, otherToolsBand*/); } private RibbonTask createSettingsRibbonTask(boolean externalFlashPlayerUnavailable) { @@ -598,7 +635,8 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { public void updateComponents(SWF swf, List abcList) { boolean swfLoaded = swf != null; boolean hasAbc = swfLoaded && abcList != null && !abcList.isEmpty(); - + boolean hasDebugger = hasAbc && Main.hasDebugger(swf); + exportAllMenu.setEnabled(swfLoaded); exportFlaMenu.setEnabled(swfLoaded); exportSelMenu.setEnabled(swfLoaded); @@ -625,6 +663,12 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { gotoDocumentClassCommandButton.setEnabled(hasAbc); deobfuscationCommandButton.setEnabled(hasAbc); + debuggerSwitchCommandButton.setEnabled(hasAbc); + debuggerSwitchGroup.setSelected(debuggerSwitchCommandButton, hasDebugger); + //debuggerSwitchCommandButton. + //debuggerDetachCommandButton.setEnabled(hasDebugger); + debuggerReplaceTraceCommandButton.setEnabled(hasAbc && hasDebugger); + } private boolean saveAs(SWF swf, SaveFileMode mode) { @@ -640,6 +684,28 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener { @Override public void actionPerformed(ActionEvent e) { 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(); + mainFrame.panel.refreshDecompiled(); + }else{ + if(debuggerSwitchGroup.getSelected()==debuggerSwitchCommandButton){ + debuggerSwitchGroup.setSelected(debuggerSwitchCommandButton, false); + } + } + debuggerReplaceTraceCommandButton.setEnabled(debuggerSwitchGroup.getSelected()==debuggerSwitchCommandButton); + break; + case ACTION_DEBUGGER_LOG: + Main.debuggerShowLog(); + break; + case ACTION_DEBUGGER_REPLACE_TRACE: + ReplaceTraceDialog rtd = new ReplaceTraceDialog(mainFrame); + rtd.setVisible(true); + if(rtd.getResult()!=null){ + Main.replaceTraceCalls(rtd.getResult()); + mainFrame.panel.refreshDecompiled(); + } + break; case ACTION_RELOAD: if (View.showConfirmDialog(null, translate("message.confirm.reload"), translate("message.warning"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { Main.reloadApp(); diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 069fb6993..cb85f49fd 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -1892,12 +1892,12 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec } } - public void refreshDecompiled() { + public void refreshDecompiled() { clearCache(); if (abcPanel != null) { abcPanel.reload(); } - reload(true); + reload(true); updateClassesList(); } diff --git a/src/com/jpexs/decompiler/flash/gui/ReplaceTraceDialog.java b/src/com/jpexs/decompiler/flash/gui/ReplaceTraceDialog.java new file mode 100644 index 000000000..2de8e0471 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/ReplaceTraceDialog.java @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2014 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; + +import java.awt.Container; +import java.awt.FlowLayout; +import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.BoxLayout; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JRadioButton; + +/** + * + * @author JPEXS + */ +public class ReplaceTraceDialog extends AppDialog { + + private JRadioButton debugAlertRadio; + private JRadioButton debugConsoleRadio; + private JRadioButton debugProxyRadio; + + private String result = null; + + public String getResult() { + return result; + } + + public ReplaceTraceDialog(Window owner) { + super(owner); + setTitle(translate("dialog.title")); + Container cnt=getContentPane(); + cnt.setLayout(new BoxLayout(cnt, BoxLayout.Y_AXIS)); + debugAlertRadio = new JRadioButton(translate("function.debugAlert")); + debugAlertRadio.setAlignmentX(0); + debugConsoleRadio = new JRadioButton(translate("function.debugConsole")); + debugConsoleRadio.setAlignmentX(0); + debugProxyRadio = new JRadioButton(translate("function.debugSocket")); + debugProxyRadio.setAlignmentX(0); + + debugAlertRadio.setSelected(true); + + ButtonGroup bg = new ButtonGroup(); + bg.add(debugAlertRadio); + bg.add(debugConsoleRadio); + bg.add(debugProxyRadio); + + + + cnt.add(debugAlertRadio); + cnt.add(debugConsoleRadio); + cnt.add(debugProxyRadio); + + JPanel buttonsPanel = new JPanel(new FlowLayout()); + JButton okButton=new JButton(AppStrings.translate("button.ok")); + okButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if(debugAlertRadio.isSelected()){ + result = "debugAlert"; + } + if(debugConsoleRadio.isSelected()){ + result = "debugConsole"; + } + if(debugProxyRadio.isSelected()){ + result = "debugSocket"; + } + setVisible(false); + } + }); + JButton cancelButton=new JButton(AppStrings.translate("button.cancel")); + cancelButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + result = null; + setVisible(false); + } + }); + buttonsPanel.add(okButton); + buttonsPanel.add(cancelButton); + buttonsPanel.setAlignmentX(0); + add(buttonsPanel); + setModalityType(DEFAULT_MODALITY_TYPE); + pack(); + View.setWindowIcon(this); + View.centerScreen(this); + } + +} diff --git a/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java b/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java index 482dab457..425a083c5 100644 --- a/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java @@ -333,7 +333,7 @@ public class TagTreeModel implements TreeModel { if (n instanceof TreeElement) { TreeElement te = (TreeElement) n; TreeElementItem it = te.getItem(); - if (obj == it) { + if (obj.equals(it)) { return newPath; } } @@ -346,7 +346,7 @@ public class TagTreeModel implements TreeModel { return newPath; } } else { - if (n.getItem() == obj) { + if (obj.equals(n.getItem())) { return newPath; } } diff --git a/src/com/jpexs/decompiler/flash/gui/View.java b/src/com/jpexs/decompiler/flash/gui/View.java index 1b921ac91..13ec09128 100644 --- a/src/com/jpexs/decompiler/flash/gui/View.java +++ b/src/com/jpexs/decompiler/flash/gui/View.java @@ -376,7 +376,7 @@ public class View { public static int showConfirmDialog(final Component parentComponent, String message, final String title, final int optionType, final int messageTyp, ConfigurationItem showAgainConfig, int defaultOption) { - JLabel warLabel = new JLabel(message); + JLabel warLabel = new JLabel(""+message.replace("\r\n", "
")+""); final JPanel warPanel = new JPanel(new BorderLayout()); warPanel.add(warLabel, BorderLayout.CENTER); JCheckBox donotShowAgainCheckBox = new JCheckBox(AppStrings.translate("message.confirm.donotshowagain")); @@ -398,13 +398,37 @@ public class View { return ret[0]; } - public static void showMessageDialog(final Component parentComponent, final Object message, final String title, final int messageType) { + public static void showMessageDialog(final Component parentComponent, final String message, final String title, final int messageType) { + showMessageDialog(parentComponent, message, title, messageType, null); + } + + public static void showMessageDialog(final Component parentComponent, final String message, final String title, final int messageType, ConfigurationItem showAgainConfig) { + + Object msg = message; + JCheckBox donotShowAgainCheckBox = new JCheckBox(AppStrings.translate("message.confirm.donotshowagain")); + + if (showAgainConfig != null) { + JLabel warLabel = new JLabel(""+message.replace("\r\n", "
")+""); + final JPanel warPanel = new JPanel(new BorderLayout()); + warPanel.add(warLabel, BorderLayout.CENTER); + donotShowAgainCheckBox.setSelected(!showAgainConfig.get()); + warPanel.add(donotShowAgainCheckBox, BorderLayout.SOUTH); + msg = warPanel; + if (donotShowAgainCheckBox.isSelected()) { + return; + } + } + final Object fmsg=msg; + execInEventDispatch(new Runnable() { @Override public void run() { - JOptionPane.showMessageDialog(parentComponent, message, title, messageType); + JOptionPane.showMessageDialog(parentComponent, fmsg, title, messageType); } }); + if (showAgainConfig != null) { + showAgainConfig.set(!donotShowAgainCheckBox.isSelected()); + } } public static void showMessageDialog(final Component parentComponent, final Object message) { diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index 8cea28f0a..a0ea3503a 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -119,7 +119,7 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se public ABC abc; public SWF swf; public JComboBox abcComboBox; - public int listIndex = -1; + public ABCContainerTag listIndex = null; public DecompiledEditorPane decompiledTextArea; public JScrollPane decompiledScrollPane; public JSplitPane splitPane; @@ -318,8 +318,8 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se public void setSwf(SWF swf) { if (this.swf != swf) { this.swf = swf; - listIndex = -1; - switchAbc(0); // todo honika: do we need this? + listIndex = null; + switchAbc(swf.abcList.get(0)); // todo honika: do we need this? abcComboBox.setModel(new ABCComboBoxModel(swf.abcList)); if (swf.abcList.size() > 0) { this.abc = swf.abcList.get(0).getABC(); @@ -329,11 +329,11 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se } } - public void switchAbc(int index) { + public void switchAbc(ABCContainerTag index) { listIndex = index; - if (index != -1) { - this.abc = swf.abcList.get(index).getABC(); + if (index != null) { + this.abc = index.getABC(); } updateConstList(); } @@ -643,7 +643,7 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se if (index == -1) { return; } - switchAbc(index - 1); + switchAbc(swf.abcList.get(index - 1)); } if (e.getSource() == constantTypeList) { int index = ((JComboBox) e.getSource()).getSelectedIndex(); @@ -775,15 +775,23 @@ public class ABCPanel extends JPanel implements ItemListener, ActionListener, Se case ACTION_SAVE_DECOMPILED: ScriptPack pack = decompiledTextArea.getScriptLeaf(); int oldIndex = pack.scriptIndex; - + decompiledTextArea.uncache(pack); + + try { + String oldSp = null; + List> packs = abc.script_info.get(oldIndex).getPacks(abc, oldIndex); + if (!packs.isEmpty()) { + oldSp = packs.get(0).getKey().toString(); + } + String as = decompiledTextArea.getText(); abc.replaceSciptPack(pack, as); lastDecompiled = as; mainPanel.updateClassesList(); - List> packs = abc.script_info.get(oldIndex).getPacks(abc, oldIndex); - if (!packs.isEmpty()) { - hilightScript(swf, packs.get(0).getKey().toString()); + + if(oldSp!=null){ + hilightScript(swf, oldSp); } //decompiledTextArea.setClassIndex(-1); //navigator.setClassIndex(-1, oldIndex); diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java index d536889e8..ef8579f3c 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java @@ -385,7 +385,7 @@ public class DecompiledEditorPane extends LineMarkedEditorPane implements CaretL } } - private void uncache(ScriptPack pack) { + public void uncache(ScriptPack pack) { cache.remove(pack); } diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java index 01939b0a7..77d566c3a 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java @@ -169,7 +169,9 @@ public class DetailPanel extends JPanel implements ActionListener { if (trait == null) { traitNameLabel.setText("-"); } else { - traitNameLabel.setText(trait.getName(abcPanel.abc).getName(abcPanel.abc.constants, new ArrayList(), false)); + if(abcPanel!=null && trait.getName(abcPanel.abc)!=null && abcPanel.abc != null){ + traitNameLabel.setText(trait.getName(abcPanel.abc).getName(abcPanel.abc.constants, new ArrayList(), false)); + } } } }); diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/DebugListener.java b/src/com/jpexs/decompiler/flash/gui/debugger/DebugListener.java new file mode 100644 index 000000000..0627a7b58 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/debugger/DebugListener.java @@ -0,0 +1,10 @@ +package com.jpexs.decompiler.flash.gui.debugger; + +/** + * + * @author JPEXS + */ +public interface DebugListener { + public void onMessage(String clientId,String msg); + public void onFinish(String clientId); +} diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/Debugger.java b/src/com/jpexs/decompiler/flash/gui/debugger/Debugger.java new file mode 100644 index 000000000..752b40dc1 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/debugger/Debugger.java @@ -0,0 +1,181 @@ +package com.jpexs.decompiler.flash.gui.debugger; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; + +/** + * + * @author JPEXS + */ +public class Debugger { + + private static Set listeners = new HashSet<>(); + + public synchronized void addMessageListener(DebugListener l) { + listeners.add(l); + } + + public synchronized void removeMessageListener(DebugListener l) { + listeners.remove(l); + } + + private static class DebugHandler extends Thread { + + Socket s; + int serverPort; + static int maxid = 0; + int id; + public boolean finished = false; + + public DebugHandler(int serverPort, Socket s) { + this.s = s; + id = maxid++; + this.serverPort = serverPort; + } + + public void cancel() { + try { + s.close(); + } catch (IOException ex) { + //ignore + } + } + + private String readString(InputStream is) throws IOException + { + int len = is.read(); + if (len == -1) { + return ""; + } + byte buf[] = new byte[len]; + is.read(buf); + return new String(buf, "UTF-8"); + + } + @Override + public void run() { + String clientName = ""+id; + try (InputStream is = s.getInputStream()) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + int c; + do { + c = is.read(); + if (c != 0) { + baos.write(c); + } + + } while (c > 0); + String ret = baos.toString("UTF-8"); + + if (ret.equals("")) { + try (OutputStream os = s.getOutputStream()) { + os.write(("").getBytes("UTF-8")); + } + } else { + String name = readString(is); + if(!name.equals("")){ + clientName = name; + } + while (true) { + ret = readString(is); + for (DebugListener l : listeners) { + l.onMessage(clientName, ret); + } + } + } + + } catch (IOException ex) { + //ignore + } + try { + s.close(); + } catch (IOException ex) { + //ignore + } + finished = true; + for (DebugListener l : listeners) { + l.onFinish(clientName); + } + } + + } + + private static class DebugServerThread extends Thread { + + private final int port; + private ServerSocket ss; + private final Map handlers = new WeakHashMap<>(); + + public DebugServerThread(int port) { + this.port = port; + } + + @Override + public void run() { + try { + ss = new ServerSocket(port,50,InetAddress.getByName("localhost")); + ss.setReuseAddress(true); + while (true) { + Socket s = ss.accept(); + if (s != null) { + DebugHandler h = new DebugHandler(port, s); + handlers.put(h.id, h); + h.start(); + } + } + } catch (IOException ex) { + //ignore + } + } + + } + + private int port; + + public Debugger(int port) { + this.port = port; + } + + private DebugServerThread server = null; + + public synchronized void start() { + if (server == null) { + server = new DebugServerThread(port); + server.start(); + } + } + + public synchronized boolean isRunning() { + return server != null; + } + + public int getPort() { + return port; + } + + public synchronized void stop() { + if (server != null) { + try { + server.ss.close(); + } catch (IOException ex) { + //ignore + } + for (DebugHandler h : server.handlers.values()) { + h.cancel(); + } + server.handlers.clear(); + server = null; + } + } + +} diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/debug.swf b/src/com/jpexs/decompiler/flash/gui/debugger/debug.swf new file mode 100644 index 0000000000000000000000000000000000000000..f6851e435a60272a4ab34184e85e07e8ee1692e3 GIT binary patch literal 1732 zcmV;#20QsfS5pye3;+OloTXLUcH71kof%w)07>yC(~1%&w4_+EO%mW$5-TgFNy<@H z6*`vM`h_Y-xJa}YEWa{z$9rQ#9*>rQ`Ad)eH~oD5CNt+C#dg+tF9)imw+_&9%D z%G=I?R#;nG)AXWNEan&@=bl;~Imub>;=)G8S7=hV=NKc;u&oU5lYM*aJy}?o%AO2I zm$H_dCw+UL=6m)~J0T;jkk>V?!$7r$Ly2cQyS8m^)Hy1%X%hD^^TM$Q)ODFWF*A*w zY9^Q29~)*rQz@;iYacS-(V|WE-ze&Za;~7~iq+jhrB+$16$_8`LQU7-;ReWnx=lUO zCmwm9yt-Q`*2?8taqV65d)O)6?i+*CTamAjnRV?0CvWF%zjtZvXzZANz4|?knsi7l z&t>)&e0%%7+Q4>(#M>aFk!kb@7t~I2?xEfL%P~2kxdFF&UAqGQ+LYMJwzq$|;KQMI zfp)!@bnwe)clUHewU^Yj$4-wj_~LZKY;V`LEY~Aek8U+LSRij0{n}=!TGd{*))n|p$X1&pBZ8n-K&2p)6p?ZVFWvX-KKhJwW6;S_4-<+dGo@qQ7_c`zh*(#s26JXZ?WlTB{G+Vx$^1eEv-!t!Ho=P zp!4(dAMS+N0SUoQk6JWS0N{t&pJX0jR~+O4`scqe0QE(-Mf2Z{=!u)}Q`R0CCUx@u zTf_qURF{}f{rB?sjF&)$J zvBL&~sLFvX1!jH74{y5%sy}6&rQn7AW-vz(-gQWiM*7ngx@@+YAQ^h%QHNDB(V8~4 zEcP5Qv_g)EVUm55N`#AwJz|=XfaRXL9vwy+WJLB2)9?)Hs@xmu@E1aUVU7>BEL>+k z9?@6fUNB?cv=71of9x5it2{gPXx(whY1CiCA9go+#Fb5I9e9U|ALJ4BvgJ#6RmtVfiX+?c1jF)_X_z@a8oP)0 zr)T2Tfmq)uX+>SHYW(Zx8J5a2@G`y|5x+TISr8vN_Q`3`^tjzIKbt1oHN@*3QYYFB zHc+r76TZ>Jw4PXYWD@gjVJy zAta+n6wU}S2=f>sj6@7&EQYYGVjRJ86w5Oh#jqU5ass0ymQz@s#pn)3X$a~S0@(l9FEND)U$7?m-qC{?H+gv0At ze1gRdEPjc_rz!sx24MOw-`u!y1YH}xybwf+0A_$7G9MBk#O_cA7$5*bKv2SA6^M$e zhJh3T(S)GPBt$iqkRtJf9E}4R!UTjsfJumu1XEC8HqAm&X10j{Bv~KA6cE@fvuAqu z&LEu(0nojZ{dCg4izZ*O^w@=jGyOSB1u@tHgUt;-$}WEYD8Zl){m#<&Np^yD;iMgh zoFrV4L{5sG>7Ch0dlq(*lXeoauyloxuh0JZ#q9VB7D6o9)S14A{|E@)3q2sAJ$0F= zY)C)@2@$3Hth$ZmjsDT9uh+WqpG4H zh>I+}`LE}}-{;@HnY2HKUFpr>llDFSTmroLDTjucWun}PwxfXcB8(@$IMe_1=&erS zWC*)zl2!5fUYJ4?lJK7TfT(*?NB&v{MCwZ2&jy*N;r4w*;Sw0Kdkzj!SIRQ7iP{Uu z$3F*Xk#C44fIbINgaon9d{GnZd(eqxg?5akGOuzLl6qQAYXKm-bJs#y+aO)L#U{M(+LFC@Pd!; zB(kgR1nkUa*Zk^bYpi^oRQ7l66elH_ma=@NQ^2(z>fJ|r_p#p1>fM~)71{3#g`<1`6U5Q8RLJWcUecU=4{FU literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debugger16.png b/src/com/jpexs/decompiler/flash/gui/graphics/debugger16.png new file mode 100644 index 0000000000000000000000000000000000000000..c7299fd7d185664861543b111aa95b93f13eb37f GIT binary patch literal 790 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 IM6N<$f(-xdw*UYD literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach16.png b/src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach16.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d9959f9fa2c3ec590c0661e8bf7a26fc6e3c1e GIT binary patch literal 958 zcmV;v13~N9TivP?HxOMvIA%YrD9p+xIz_0nZsHt85Oj1a$`JkFplF44evobsaUG$; z#Epj5(sZp^Xjey?^peap_e+yEc|D06_{j(U?>X-|&;Pmb{EyUeyb~muf>O?Q*BP!> zv|}LiQzj8>&15oUvnym)wBC$vICgS_lgXW3$XXio0!5RB3BIh09R&$qN?jyfSl#;a zk+;}?u#I|qBS}qp^Q6s*rVECol>CdlBGgzkS~?7ey=)Z$v;ti%@%~`6w||`~2;0S3 zb2Y(~MwbF-=4bC=D6{9|lOolLSKH(=S#`bU(XigWa~#j3(}M!Pg%Is1%>NE#UWu?cw1oT#GlJ zUT?LCI~{f7=FK=9gBM=iNB0v?AEIEgpd}X3b15F0WH6$ZTQS>mI7hx^V$6Br^fXz}SK1D+Y43AP4qm6}wWByX+G+Xf67If>jP8nYC3urnG9{z~ zd|z3^QMKd5M`PPuXGsWM#206YFIb7r&yw}INasXouZsc0Z!Bb!9M}zeYCdFip@*rv z99fQ#lHIq*`9Wz#m5DDcEsQwS^eAuMX3Zu3x-CxG1J5KKYRH21)WcaB#egQI{;;Ob2F>U%08K% z_8h+JogZ|}@=I+MzCbW176f{D2eE1F;oHImZ86t-#v< g{NERt`$vEQ09nsi0lW&i*H literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach32.png b/src/com/jpexs/decompiler/flash/gui/graphics/debuggerattach32.png new file mode 100644 index 0000000000000000000000000000000000000000..8bfe4a44ecf1e4ffd6325f736b442e2e92b60fba GIT binary patch literal 2314 zcmV+l3HA1gP)l| zg0(Fa3RPI90aeu?XEI18;;pi(H+6MgxI}&y9`ceN(9bh|^3*SD7gj-26~v+uM58gp z<1yR}M=CCMUHOuHd}Qjw0uUa==k=#hf8~+Jz3$Ki$mt{$Md3hHRfVkRu;d8p@;V#- z(1Cpq%K`)7dgayEwr~0K=9lQ+7(KVH0*msz*i|+`^p=h{kxw}et6tM9;9HCRHq5--_ljK>k|{4j{DrrKV(GU*F^VoA;e_UX<2X;)Bx3z9qB2 zGaix%n3e^LOc?dztq6hukt}NhCp*LF9aKJEcLa?zlV!8Di|S`hnKI?lg<2X@$kXRmoM!h@%GYd@>l@0!w8ZUlTF%QkM_E$z?5GfMC|xS2%p{$JuwWauoRZJ z7*bvdOwq*!navu|XwIZlpoD4dPzg$&s73L-AEWb)Y8)E^R<_`2TK5K7ge*;Fj@<&& znb25LBEg}A040TjSyf2JG|Ev#>D)>T9p87)dRFbnD-^ zyn{39DfmJ@r>DrD)M})|aJjwE*c!G_GDpBXoa)##*m$KvV6TD98`JSh)&w8HJ+(NR?GJJI;9KmG%?x z@RbY+Poa8mB9l%*j`x$$qQsE>-OpM!0E3R)Zv8qIfA6R0?B9WrOfT;r1mVt4H5-f2 z+?jzLsC!}=yhYf^M4tm7)z&TA6AbtpqFUg<^#o4zkf?|IEUp%|B|7b+k_sagy=fmq zvUKDoRl_h&OBPBe_DB>|S+1_ma=#2|)-FXTZ;oVby}_ANc)&I$2f@ zw;yhP%T>{tH~ zFeIPKoktI^gn@v+(&O=9|7V}BqUUREJ!l{W<5`i>3sYorB@1Ki`fK1MWZ|ILGaAvw^T<{w*i4_VxKFEDB(LoC2O7pw@$`MUc|< z2~MpbYwxrmP6OgfKOH+@-64UGD^v+L*VviA)*`?s*&EJ$m~T!aA_ou*K4qC!r&E-4 zr#~3{<5B#gy&J2UR2kGPdzm4m?8Ca9Zyb;j77i+rwLqtbgCo0&ej2ubCiC*twLPWHKrfnf=g3Xt5| z&X3KuSLR~Hv|=n{Li{?4_cyg-8}ohUQ79b(8lHKQf-vDyY8%^yTMW3J-mCp{AlipL z7x&_5t^pcHHr}B>GO8@!p&jR^SI)P<8IL)dVVga%;tgyVKLz#E%jsbvsoSZuSxRMy z`ol|?DL^mw9r-=pWbCrU1g9K(9NM+}{Itpe@jK75!w|dj$sQ@M#=NrcV})lNW{vLM zwFJ)fbl}~~2hrwy{2052fdAj+a=Pmxhoum1cV&k2gM_g);)vXM&>yD{`&-lPFytAv kzU8o+J7u?6{*M3y0KRpCQl(QMD*ylh07*qoM6N<$g8hML(EtDd literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debuggerlog16.png b/src/com/jpexs/decompiler/flash/gui/graphics/debuggerlog16.png new file mode 100644 index 0000000000000000000000000000000000000000..8a08b5224d1939435ab7f850599c0e6e6701e3d2 GIT binary patch literal 554 zcmV+_0@eMAP)f2?T@`Nn;l|IPeZ_1j~TMAqc7M1pkFp35SqIF$tQS8mvPIM6eR!&T40N zXM8i7^(3HY-tgF6cD`@E@4Ywd!sE_HH4#hBdxXXC_wbaA7H16otk{&J1YTQCVT&Se z7=|E(5(29mdrQ(34wIuAPhNkC;9&?tw&yP)V2QwEu{J_^1^*iXD}(nCC&xz+g2OXT zUmT1)g8iw-(_ZHse4gWSt%iV=r$0w36I-^V&2#mzYaaFfQ;@1S?PX&J%Ht++=47v`R3wdVo&7f_L4IFg7Ozh5#nE zOzQ-S6fn-wY}5w`e)UC2fv?X}I3_Tg-lUUx1P+Gt4tZ2y%9hB}z9vdz;^7WnwZ^gA zeGil6u-1^0pnyXK1zJInwFk{c+0xPil*G5^3-R^F%*;QA!JVxEnLxF*g}p}?vHiA7 z)u$TR3|W@N$|qV=4Rmbv{nowT1bo0||HbY2ymozhs6h%?t^~(5NrI6sD~Obutyl+QByM537RfP;qVyiW3!7>QANq5Qf5FO7R1%g6PyKRqF?c1Z%Y< zwOy^%Qqo@SU2B@&+%&n#y?I|xf`$F^z;oYw-uFDud(J)Q3Jtq<1A+)96=G5N2(G*8 zp}@RmCgQcGX(E$J!%W-FCRcXuo!yS^#f=c{6u=pBCXx|f4qZI(IJG+HRfvaW$HjuGj$P^uSJxfLlpSnV>iz7kc6LS!nM#jjqo2liPRx3W08s z7FSg6SXj9-SQ71kZ~QsN2K&JseuyqVgo2si;!Nn84)w`BsKG}Vj04_p8ukk;8{wRV zWvA2G95d24NNinE&F`4Mq!OXC$6)t9MM@opr@RbSfg4Nr9mmTDL1a#yfSJu+D0I8e z2w-P(B~}rlO{*}tx$b+Ety+ujTeng9(>B~`sK>W|p2xEb=TK~wVC+E;WJQ7^G7Kft z=gOVax5*8A4sXjPVWeyzqlS=v_7)bAs;bw}XO{tH!}0Hn ztrO$1q}cmBgo{!wWD$m@X-JIpA`y#{SRbVd=;Rl?n}%}#9Pn`sOpAa=HTX+QXlB@N zvP4BFu(v$L7aT*~D4YKZ8Oug;d=wUCHA%rjZd$)y57cbTw>58fFM)@sB!}Y@8X~b} z0!#46{qEIV*4vQ9^m#*F$WruZqzeVga%3<61$OZSSe8MQNKjE|m8e@qE))^eNdFeq zKyY6hR`yNc(9K}FU!x5E39??584m}dDVkmzBB|%r*W_zy`-(in?au!TJ)w^4$E#_o z6@+%RB0@?2O>ht1y6UK5DRrER$d#d)=_^0n3-6gKDc8zQeB3@G%=(`{Mi_c8 ZzyPm>gN8_T=i&eW002ovPDHLkV1i*J!R!D4 literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debuggerremove32.png b/src/com/jpexs/decompiler/flash/gui/graphics/debuggerremove32.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1faac4986e8de957e785350b88fb9cd00bc67b GIT binary patch literal 2337 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 Hu0mjf0n~c2 literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/debuggerreplace16.png b/src/com/jpexs/decompiler/flash/gui/graphics/debuggerreplace16.png new file mode 100644 index 0000000000000000000000000000000000000000..808773ece8d3500511559ed0ea5263340065e6f1 GIT binary patch literal 984 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 ez^Uus0t^6n*QQLoRxIlP0000. + +dialog.title = Debugger Log +button.clear = Clear +button.close = Close +msg.header = connection %clientid%: \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/locales/DebugLogDialog_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/DebugLogDialog_cs.properties new file mode 100644 index 000000000..7cbef99b8 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/locales/DebugLogDialog_cs.properties @@ -0,0 +1,19 @@ +# Copyright (C) 2014 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 . + +dialog.title = Log Debuggeru +button.clear = Vypr\u00e1zdnit +button.close = Zav\u0159\u00edt +msg.header = spojen\u00ed %clientid%: \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_cs.properties index 4781e9f57..3d7753e0c 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_cs.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_cs.properties @@ -66,3 +66,7 @@ frames.pdf = PDF fonts = P\u00edsma fonts.ttf = TTF fonts.woff = WOFF + +zoom = P\u0159ibl\u00ed\u017een\u00ed +zoom.percent = % +zoom.invalid = Neplatn\u00e1 hodnota velikost. \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties index 0f075d0dc..2c9435d43 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties @@ -514,4 +514,11 @@ button.snapshot.hint = Take snapshot into clipboard editorTruncateWarning = Text truncated at position %chars% in debug mode. -font.name.intag = Font name in tag: \ No newline at end of file +font.name.intag = Font name in tag: + +menu.debugger = Debugger +menu.debugger.switch = Debugger +menu.debugger.replacetrace = Replace trace calls +menu.debugger.showlog = Show Log + +message.debugger = This SWF Debugger can only be used to print messages to log window, browser console or alerts.\r\nIt is NOT designed for features like step code, breakpoints etc. diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties index 056b19c00..55e0333ec 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties @@ -513,4 +513,11 @@ button.snapshot.hint = Sn\u00edmek do schr\u00e1nky editorTruncateWarning = Text je o\u0159\u00edznut na pozici %chars% v lad\u00edc\u00edm m\u00f3du. -font.name.intag = N\u00e1zev p\u00edsma v tagu: \ No newline at end of file +font.name.intag = N\u00e1zev p\u00edsma v tagu: + +menu.debugger = Debugger +menu.debugger.switch = Debugger +menu.debugger.replacetrace = Nahradit vol\u00e1n\u00ed trace +menu.debugger.showlog = Zobrazit Log + +message.debugger = Tento SWF Debugger slou\u017e\u00ed jen k pos\u00edl\u00e1n\u00ed zpr\u00e1v do okna logu, konzole prohl\u00ed\u017ee\u010de nebo alert oken.\r\nNEN\u00cd ur\u010den pro krokov\u00e1n\u00ed k\u00f3du, breakpointy atd. diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog.properties b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog.properties new file mode 100644 index 000000000..2408c3fa2 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog.properties @@ -0,0 +1,20 @@ +# Copyright (C) 2014 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 . + +dialog.title = Replace Trace function calls + +function.debugAlert = debugAlert - web browser javascript alert +function.debugConsole = debugConsole - web browser javascript console.log +function.debugSocket = debugSocket - socket connection to the decompiler \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog_cs.properties new file mode 100644 index 000000000..6c4dce006 --- /dev/null +++ b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceTraceDialog_cs.properties @@ -0,0 +1,20 @@ +# Copyright (C) 2014 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 . + +dialog.title = Nahrazen\u00ed vol\u00e1n\u00ed funkce Trace + +function.debugAlert = debugAlert - javascriptov\u00e1 funkce alert webov\u00e9ho prohl\u00ed\u017ee\u010de +function.debugConsole = debugConsole - javascriptov\u00e1 funkce console.log webov\u00e9ho prohl\u00ed\u017ee\u010de +function.debugSocket = debugSocket - p\u0159ipojen\u00ed sockety k dekompil\u00e1toru \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java b/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java index badf20b02..3896b82de 100644 --- a/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java @@ -17,7 +17,10 @@ package com.jpexs.decompiler.flash.gui.player; import com.jpexs.decompiler.flash.gui.FlashUnsupportedException; +import com.jpexs.decompiler.flash.gui.Main; import com.jpexs.javactivex.ActiveX; +import com.jpexs.javactivex.ActiveXEvent; +import com.jpexs.javactivex.ActiveXEventListener; import com.jpexs.javactivex.example.controls.flash.ShockwaveFlash; import com.sun.jna.Platform; import java.awt.AWTException; @@ -30,6 +33,8 @@ import java.awt.Robot; import java.awt.image.BufferedImage; import java.io.Closeable; import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @@ -107,6 +112,35 @@ public class FlashPlayerPanel extends Panel implements Closeable, MediaDisplay { throw new FlashUnsupportedException(); } flash = ActiveX.createObject(ShockwaveFlash.class, this); + flash.setAllowScriptAccess("always"); + flash.setAllowNetworking("all"); + flash.addFlashCallListener(new ActiveXEventListener() { + + @Override + public void onEvent(ActiveXEvent axe) { + String req = (String) axe.args.get("request"); + Matcher m = Pattern.compile("(.*)").matcher(req); + if (m.matches()) { + String funname = m.group(1); + String msg = m.group(2); + if (funname.equals("alert") || funname.equals("console.log")) { + if (Main.debugDialog != null) { + Main.debugDialog.log(funname + ":" + msg); + } + } + } + } + }); + flash.addFSCommandListener(new ActiveXEventListener() { + + @Override + public void onEvent(ActiveXEvent axe) { + System.out.println("Event:" + axe.name); + for (String k : axe.args.keySet()) { + System.out.println(k + "=" + axe.args.get(k)); + } + } + }); } public synchronized void stopSWF() {