From f55bc7fca69630d7e64b1b04e00437844d90b236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 20 Feb 2016 09:23:29 +0100 Subject: [PATCH 1/3] #1162 improved opening loaded swf files --- .../flash/debugger/DebugConnection.as | 45 ++++++++++++++++++- .../decompiler/flash/debugger/DebugLoader.as | 4 ++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as index b0787dda0..14c813e10 100644 --- a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugConnection.as @@ -13,11 +13,14 @@ private static var inited:Boolean = false; private static var name:String; public static const DEBUG_VERSION_MAJOR = 1; - public static const DEBUG_VERSION_MINOR = 1; + public static const DEBUG_VERSION_MINOR = 2; public static const MSG_STRING = 0; public static const MSG_LOADER_URL = 1; public static const MSG_LOADER_BYTES = 2; + public static const MSG_LONGSTRING = 3; + public static const MSG_LOADER_URL_GETBYTES = 4; + public static const MSG_LOADER_BYTES_GETBYTES = 5; @@ -38,12 +41,18 @@ private static function writeString(msg){ var b:ByteArray = new ByteArray(); - b.writeUTFBytes(msg); + b.writeUTFBytes(msg); s.writeByte((b.length>>8) & 0xff); s.writeByte(b.length & 0xff); s.writeBytes(b,0,b.length); } + private static function writeLongString(msg){ + var b:ByteArray = new ByteArray(); + b.writeUTFBytes(msg); + writeBytes(b); + } + private static function writeBytes(b:ByteArray){ s.writeByte((b.length>>24) & 0xff); s.writeByte((b.length>>16) & 0xff); @@ -52,6 +61,32 @@ s.writeBytes(b,0,b.length); } + private static function readBytes():ByteArray { + var b:ByteArray = new ByteArray(); + var a1 = s.readUnsignedByte(); + var a2 = s.readUnsignedByte(); + var a3 = s.readUnsignedByte(); + var a4 = s.readUnsignedByte(); + var len = (a1<<24)+(a2<<16)+(a3<<8)+a4; + + s.readBytes(b,0,len); + return b; + } + + private static function readString():String { + var b:ByteArray = new ByteArray(); + var a1 = s.readUnsignedByte(); + var a2 = s.readUnsignedByte(); + var len = (a1<<8)+a2; + + return s.readUTFBytes(len); + } + + private static function readLongString():String { + var b:ByteArray = readBytes(); + return b.readUTFBytes(b.length); + } + public static function initClient(sname){ if(inited){ return; @@ -102,6 +137,12 @@ case MSG_LOADER_BYTES: writeBytes(msg); break; + case MSG_LOADER_URL_GETBYTES: + writeString(msg); + break; + case MSG_LOADER_BYTES_GETBYTES: + writeBytes(msg); + break; } }else{ q.push({type:msgType,data:msg}); diff --git a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugLoader.as b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugLoader.as index cdcf3f3f4..503b11ae6 100644 --- a/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugLoader.as +++ b/libsrc/debugswf/com/jpexs/decompiler/flash/debugger/DebugLoader.as @@ -17,6 +17,10 @@ DebugConnection.writeLoaderBytes(bytes); super.loadBytes(bytes,context); } + + public override function toString():String { + return "[object Loader]"; + } } } From 4fb57bc90efdabe02f718a10984ea29e74f6aca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 20 Feb 2016 09:24:05 +0100 Subject: [PATCH 2/3] #1162 improved opening loaded swf files allow socketconnect to ffdec on local files --- .../flash/gui/debugger/DebuggerTools.java | 6 ++++++ .../decompiler/flash/gui/debugger/debug.swf | Bin 2651 -> 2947 bytes 2 files changed, 6 insertions(+) diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java b/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java index b9a4dd7f7..dadf683a8 100644 --- a/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java +++ b/src/com/jpexs/decompiler/flash/gui/debugger/DebuggerTools.java @@ -25,6 +25,7 @@ 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.tags.ABCContainerTag; +import com.jpexs.decompiler.flash.tags.FileAttributesTag; import com.jpexs.decompiler.flash.tags.Tag; import com.jpexs.helpers.Helper; import java.util.ArrayList; @@ -207,6 +208,11 @@ public class DebuggerTools { swf.addTag((Tag) ds, (Tag) firstAbc); swf.getAbcList().add(swf.getAbcList().indexOf(firstAbc), ds); ((Tag) ds).setModified(true); + + //To allow socket connection to FFDec. Is this safe? + FileAttributesTag ft = swf.getFileAttributes(); + ft.useNetwork = true; + ft.setModified(true); } } catch (Exception ex) { diff --git a/src/com/jpexs/decompiler/flash/gui/debugger/debug.swf b/src/com/jpexs/decompiler/flash/gui/debugger/debug.swf index dcad53097eb5680f637ef0f88d5eb62bac8ba164..2cdb1a86516abcd20dd1ee54cab5deae5c6035d8 100644 GIT binary patch literal 2947 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 J{0AvRI7HGgE>Hjf From 73c5d00572515efd4b5b5fe1cf1dfb2291f9fcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 20 Feb 2016 10:39:53 +0100 Subject: [PATCH 3/3] #1151 Filters on texts fixed --- .../com/jpexs/decompiler/flash/xfl/XFLConverter.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java index 901467054..43ce7001a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java @@ -12,7 +12,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. +* License along with this library. */ package com.jpexs.decompiler.flash.xfl; @@ -217,8 +217,8 @@ public class XFLConverter { + "" - + "" - + ""); + + "" + + ""); } private static void convertLineStyle(HashMap characters, LINESTYLE2 ls, int shapeNum, StringBuilder ret) { @@ -2190,7 +2190,7 @@ public class XFLConverter { if (ret2.length() > 0) { ret.append("" + "").append(ret2).append("" - + ""); + + ""); } } @@ -2342,7 +2342,7 @@ public class XFLConverter { if (filters != null) { filterStr.append(""); for (FILTER f : filters) { - convertFilter(f, ret); + convertFilter(f, filterStr); } filterStr.append(""); }