From c6826da2b600bef0090bfa955f5fa2c528aae397 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Fri, 4 Mar 2016 10:50:38 +0100 Subject: [PATCH] AS2 deobfuscation fixes --- .../com/jpexs/decompiler/flash/action/swf4/ActionCall.java | 4 ++++ .../decompiler/flash/action/swf5/ActionCallMethod.java | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionCall.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionCall.java index c2cd3f3eb..08c750ae3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionCall.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionCall.java @@ -50,6 +50,10 @@ public class ActionCall extends Action { @Override public boolean execute(LocalDataArea lda) { + if (lda.stack.size() == 0) { + return false; + } + lda.stage.callFrame(EcmaScript.toInt32(lda.stack.pop())); return true; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf5/ActionCallMethod.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf5/ActionCallMethod.java index 1b28b261f..edef5ce7d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf5/ActionCallMethod.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf5/ActionCallMethod.java @@ -52,7 +52,12 @@ public class ActionCallMethod extends Action { return false; } String methodName = lda.popAsString(); - ActionScriptObject obj = (ActionScriptObject) lda.pop(); + Object obj0 = lda.pop(); + if (!(obj0 instanceof ActionScriptObject)) { + return false; + } + + ActionScriptObject obj = (ActionScriptObject) obj0; int numArgs = (int) (double) lda.popAsNumber(); if (lda.stack.size() < numArgs) { return false;