diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java index e9ef9977a..f3aed4a70 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java @@ -2092,7 +2092,7 @@ public class AVM2Code implements Cloneable { * @param body Method body (used for try handling) */ public void insertInstruction(int pos, AVM2Instruction instruction, boolean mapOffsetsAfterIns, MethodBody body) { - checkValidOffsets(body); + //checkValidOffsets(body); if (pos < 0) { pos = 0; } @@ -2130,7 +2130,7 @@ public class AVM2Code implements Cloneable { }, body); code.add(pos, instruction); invalidateCache(); - checkValidOffsets(body); + //checkValidOffsets(body); } @SuppressWarnings("unchecked") diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorRegisters.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorRegisters.java index d90586129..5b17d5284 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorRegisters.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorRegisters.java @@ -72,7 +72,6 @@ public class AVM2DeobfuscatorRegisters extends AVM2DeobfuscatorSimple { public void deobfuscate(String path, int classIndex, boolean isStatic, int scriptIndex, ABC abc, AVM2ConstantPool cpool, Trait trait, MethodInfo minfo, MethodBody abody) throws InterruptedException { MethodBody body = abody.clone(); - System.err.println("A"); removeUnreachableActions(body.getCode(), cpool, trait, minfo, body); Map outFirstAssigned = new HashMap<>(); @@ -84,27 +83,21 @@ public class AVM2DeobfuscatorRegisters extends AVM2DeobfuscatorSimple { List ignored = new ArrayList<>(); Map registers = new HashMap<>(); - System.err.println("B"); getFirstRegistersUsage(outAssignCount1, outFirstAssigned, outFirstAssignments, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body, ignored, registers); ignored.addAll(outFirstAssignments.values()); registers.putAll(outFirstAssigned); - System.err.println("C"); replaceSingleUseRegisters(registers, ignored, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body); - System.err.println("C1"); super.deobfuscate(path, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body); - System.err.println("C2"); removeUnreachableActions(body.getCode(), cpool, trait, minfo, body); - System.err.println("D"); //second pass - ignore all first assignments registers.clear(); ignored.clear(); outFirstAssignments.clear(); getFirstRegistersUsage(outAssignCount2, new HashMap<>(), outFirstAssignments, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body, ignored, registers); - System.err.println("E"); for (int regId : outAssignCount1.keySet()) { int ac = outAssignCount2.containsKey(regId) ? outAssignCount2.get(regId) : 0; if (ac == 0) { @@ -114,19 +107,14 @@ public class AVM2DeobfuscatorRegisters extends AVM2DeobfuscatorSimple { body = abody; replaceSingleUseRegisters(singleRegisters, null, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body); - System.err.println("F"); super.deobfuscate(path, classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body); - System.err.println("G"); removeUnreachableActions(body.getCode(), cpool, trait, minfo, body); - System.err.println("H"); - } private void replaceSingleUseRegisters(Map singleRegisters, List setInss, int classIndex, boolean isStatic, int scriptIndex, ABC abc, AVM2ConstantPool cpool, Trait trait, MethodInfo minfo, MethodBody body) { AVM2Code code = body.getCode(); for (int i = 0; i < code.code.size(); i++) { - System.err.println("replacesingle: " + i + "/" + code.code.size()); AVM2Instruction ins = code.code.get(i); if (((setInss == null) || setInss.contains(ins)) && (ins.definition instanceof SetLocalTypeIns)) { SetLocalTypeIns slt = (SetLocalTypeIns) ins.definition; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java index b89363cc5..653efad41 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java @@ -398,13 +398,9 @@ public class AVM2DeobfuscatorSimple implements SWFDecompilerListener { public void deobfuscate(String path, int classIndex, boolean isStatic, int scriptIndex, ABC abc, AVM2ConstantPool cpool, Trait trait, MethodInfo minfo, MethodBody body) throws InterruptedException { AVM2Code code = body.getCode(); - System.err.println("1"); code.fixJumps(body); - System.err.println("2"); removeUnreachableActions(code, cpool, trait, minfo, body); - System.err.println("3"); removeObfuscationIfs(classIndex, isStatic, scriptIndex, abc, cpool, trait, minfo, body); - System.err.println("4"); removeZeroJumps(code, body); }