diff --git a/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java b/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java index a3c554fd..b559282c 100644 --- a/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java +++ b/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java @@ -4,6 +4,7 @@ import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralFlowTransformer; import uwu.narumi.deobfuscator.core.other.composed.general.ComposedPeepholeCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockCompabilityStringTransformer; +import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockFlowTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.peephole.JsrInlinerTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.peephole.UselessPopCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.pool.InlineLocalVariablesTransformer; @@ -210,7 +211,7 @@ protected void registerAll() { .register(); test("Branchlock String") - .transformers(UniversalNumberTransformer::new, () -> new BranchlockCompabilityStringTransformer(true)) + .transformers(UniversalNumberTransformer::new, BranchlockCompabilityStringTransformer::new) .inputJar("branchlock/branchlock-string.jar") .register(); @@ -218,5 +219,20 @@ protected void registerAll() { .transformers(ComposedBranchlockTransformer::new) .inputJar("branchlock/branchlock-string-salting-number.jar") .register(); + + test("Branchlock String + Flow + Number") + .transformers(ComposedBranchlockTransformer::new) + .inputJar("branchlock/branchlock-string-flow-number.jar") + .register(); + +// test("Branchlock String + Salting + Flow + Number") +// .transformers(ComposedBranchlockTransformer::new) +// .inputJar("branchlock/branchlock-string-salting-flow-number.jar") +// .register(); + + test("Branchlock Flow 9") + .transformers(BranchlockFlowTransformer::new) + .inputJar("branchlock/flow/flow 9.jar") + .register(); } } diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java index 053a4827..2289ae79 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java @@ -4,6 +4,7 @@ import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralFlowTransformer; import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralRepairTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockCompabilityStringTransformer; +import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockFlowTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockSaltingTransformer; import uwu.narumi.deobfuscator.core.other.impl.universal.UniversalNumberTransformer; @@ -12,10 +13,11 @@ public ComposedBranchlockTransformer() { super( () -> new ComposedTransformer(true, UniversalNumberTransformer::new, - () -> new BranchlockCompabilityStringTransformer(false), + BranchlockCompabilityStringTransformer::new, BranchlockSaltingTransformer::new), ComposedGeneralRepairTransformer::new, // Deletes "Logic Scrambler" - ComposedGeneralFlowTransformer::new // Deobfuscates part of flow obfuscation + BranchlockFlowTransformer::new, + ComposedGeneralFlowTransformer::new ); } } diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java index 17e7011a..8cdcccaa 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java @@ -1,6 +1,7 @@ package uwu.narumi.deobfuscator.core.other.impl.branchlock; import org.objectweb.asm.tree.*; +import uwu.narumi.deobfuscator.api.asm.ClassWrapper; import uwu.narumi.deobfuscator.api.asm.MethodContext; import uwu.narumi.deobfuscator.api.asm.matcher.Match; import uwu.narumi.deobfuscator.api.asm.matcher.MatchContext; @@ -8,37 +9,47 @@ import uwu.narumi.deobfuscator.api.asm.matcher.impl.*; import uwu.narumi.deobfuscator.api.transformer.Transformer; -import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; public class BranchlockCompabilityStringTransformer extends Transformer { - private final boolean deleteClinit; private String[] decryptedStrings; private FieldInsnNode stringArray; - public BranchlockCompabilityStringTransformer(boolean deleteClinit) { - this.deleteClinit = deleteClinit; - } + private record DecryptedStringData(FieldInsnNode fieldInsnNode, String[] decryptedStrings) {} + + private static final Map decryptedDataMap = new HashMap<>(); @Override protected void transform() throws Exception { scopedClasses().forEach(classWrapper -> { decryptedStrings = null; stringArray = null; - classWrapper.findClInit().ifPresent(clinit -> { - MethodContext methodContext = MethodContext.of(classWrapper, clinit); - String className = classWrapper.name().replace("/", "."); - String methodName = clinit.name; - Arrays.stream(clinit.instructions.toArray()) - .filter(ain -> ain instanceof LdcInsnNode) - .map(LdcInsnNode.class::cast) - .filter(ldc -> ldc.cst instanceof String) - .findFirst().ifPresent(ldc -> { + if (decryptedDataMap.containsKey(classWrapper)) { + decryptedStrings = decryptedDataMap.get(classWrapper).decryptedStrings(); + stringArray = decryptedDataMap.get(classWrapper).fieldInsnNode(); + } else { + classWrapper.findClInit().ifPresent(clinit -> { + MethodContext methodContext = MethodContext.of(classWrapper, clinit); + String className = classWrapper.name().replace("/", "."); + String methodName = clinit.name; + Match stringEncryptionMatch = SequenceMatch.of( + StringMatch.of().capture("encrypted-string"), + MethodMatch.invokeVirtual().name("toCharArray").owner("java/lang/String"), + OpcodeMatch.of(ASTORE) + ); + MatchContext stringEncryption = stringEncryptionMatch.findFirstMatch(methodContext); + if (stringEncryption != null) { Match stringArr = OpcodeMatch.of(PUTSTATIC).capture("string-arr"); stringArray = stringArr.findFirstMatch(methodContext).insn().asFieldInsn(); - String encryptedString = (String) ldc.cst; + LdcInsnNode encryptedStringInsn = (LdcInsnNode) stringEncryption.captures().get("encrypted-string").insn(); + String encryptedString = encryptedStringInsn.asString(); + char[] encryptedStringArray = encryptedString.toCharArray(); Match match = SequenceMatch.of(OpcodeMatch.of(DUP), NumberMatch.numInteger().capture("array-to"), OpcodeMatch.of(SWAP), NumberMatch.numInteger().capture("array-from"), OpcodeMatch.of(CALOAD), OpcodeMatch.of(CASTORE), OpcodeMatch.of(CASTORE)); @@ -175,13 +186,30 @@ protected void transform() throws Exception { } decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); } - }); - }); + + decryptedDataMap.put(classWrapper, new DecryptedStringData(stringArray, decryptedStrings)); + + Set labelsInStringDecryption = new HashSet<>(); + Set toRemove = new HashSet<>(); + AbstractInsnNode firstNode = encryptedStringInsn; + while (firstNode != null) { + if (firstNode instanceof LabelNode label) { + labelsInStringDecryption.add(label); + } else { + toRemove.add(firstNode); + } + if (firstNode instanceof TableSwitchInsnNode) { + break; + } + firstNode = firstNode.getNext(); + } + toRemove.forEach(clinit.instructions::remove); + clinit.tryCatchBlocks.removeIf(tryCatchBlockNode -> labelsInStringDecryption.contains(tryCatchBlockNode.start) || labelsInStringDecryption.contains(tryCatchBlockNode.handler) || labelsInStringDecryption.contains(tryCatchBlockNode.end)); + } + }); + } if (stringArray != null) { - if (deleteClinit) { - classWrapper.methods().remove(classWrapper.findClInit().get()); - } classWrapper.fields().removeIf(fieldNode -> fieldNode.name.equals(stringArray.name) && fieldNode.desc.equals(stringArray.desc)); classWrapper.methods().forEach(methodNode -> { diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java new file mode 100644 index 00000000..656dd5dd --- /dev/null +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java @@ -0,0 +1,218 @@ +package uwu.narumi.deobfuscator.core.other.impl.branchlock; + +import org.objectweb.asm.tree.*; +import uwu.narumi.deobfuscator.api.asm.MethodContext; +import uwu.narumi.deobfuscator.api.asm.matcher.Match; +import uwu.narumi.deobfuscator.api.asm.matcher.group.SequenceMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.JumpMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.NumberMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.OpcodeMatch; +import uwu.narumi.deobfuscator.api.transformer.Transformer; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class BranchlockFlowTransformer extends Transformer { + + Match[] flowDupEquationMatches = new Match[] { + SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + JumpMatch.of().capture("correct-jump"), + NumberMatch.of() + ), + SequenceMatch.of( + OpcodeMatch.of(DUP), + OpcodeMatch.of(SWAP), + JumpMatch.of().capture("fake-jump"), + JumpMatch.of().capture("correct-jump"), + NumberMatch.of() + ) + }; + + Match flowDupJumpMatch = SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + OpcodeMatch.of(ASTORE).capture("correct-store"), + OpcodeMatch.of(ALOAD), + JumpMatch.of() + ); + + Match flowDupJumpMatch2 = SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + OpcodeMatch.of(ASTORE).capture("correct-store") + ); + + Match flowFakeLoop = SequenceMatch.of( + OpcodeMatch.of(ASTORE).capture("correct-store"), + OpcodeMatch.of(ALOAD).capture("fake-load"), + JumpMatch.of() + ); + + Match errorJump = SequenceMatch.of( + OpcodeMatch.of(ALOAD).capture("loaded-var"), + JumpMatch.of() + ); + + Match trashHandlers = SequenceMatch.of( + Match.of(ctx -> (ctx.insn().getOpcode() >= IRETURN && ctx.insn().getOpcode() <= RETURN) || ctx.insn().getOpcode() == ATHROW), + Match.of(ctx -> (ctx.insn().getOpcode() >= ACONST_NULL && ctx.insn().getOpcode() <= DCONST_1) || ctx.insn().getOpcode() == ALOAD || ctx.insn() instanceof LabelNode) + ).doNotSkipLabels(); + + @Override + protected void transform() throws Exception { + scopedClasses().forEach(classWrapper -> classWrapper.methods().forEach(methodNode -> { + MethodContext methodContext = MethodContext.of(classWrapper, methodNode); + List tryCatchBlocks = methodNode.tryCatchBlocks; + if (tryCatchBlocks != null && !tryCatchBlocks.isEmpty()) { + Set toRemove = new HashSet<>(); + Set trashLabels = new HashSet<>(); + for (Match flowDupEquationMatch : flowDupEquationMatches) { + flowDupEquationMatch.findAllMatches(methodContext).forEach(matchContext -> { + if (matchContext.captures().containsKey("swap")) System.out.println(matchContext.captures().containsKey("swap")); + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext() instanceof FrameNode && labelNode.getNext(2) != null && labelNode.getNext(2).getOpcode() == POP) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + toRemove.add(labelNode.getNext(2)); + markChange(); + } else if (labelNode != null && labelNode.getNext() != null && labelNode.getNext().getOpcode() == POP) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-jump").insn()); + markChange(); + }); + } + flowFakeLoop.findAllMatches(methodContext).forEach(matchContext -> { + VarInsnNode varInsnNode = (VarInsnNode) matchContext.captures().get("correct-store").insn(); + VarInsnNode varInsnNode1 = (VarInsnNode) matchContext.captures().get("fake-load").insn(); + if (varInsnNode.var != varInsnNode1.var) { + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + } + }); + JumpInsnNode jumpInsnNode = null; + try { + if ((methodNode.instructions.get(0) instanceof LabelNode && methodNode.instructions.get(1) instanceof JumpInsnNode)) { + jumpInsnNode = methodNode.instructions.get(1).asJump(); + trashLabels.add((LabelNode) methodNode.instructions.get(0)); + } else if (methodNode.instructions.get(0) instanceof JumpInsnNode) { + jumpInsnNode = methodNode.instructions.get(0).asJump(); + } + if (jumpInsnNode != null) { + int i = 0; + if ((jumpInsnNode.label.getNext().isVarLoad() && ((VarInsnNode)jumpInsnNode.label.getNext()).var == 0 || (jumpInsnNode.label.getNext().getOpcode() >= ACONST_NULL && jumpInsnNode.label.getNext().getOpcode() <= DCONST_1))) { + while (jumpInsnNode.label.getNext(i) != null && !jumpInsnNode.label.getNext(i).isVarStore()) { + i++; + } + VarInsnNode flowVarIndex = (VarInsnNode) jumpInsnNode.label.getNext(i); + if (flowVarIndex != null) { + errorJump.findAllMatches(methodContext).forEach(matchContext -> { + if (((VarInsnNode) matchContext.captures().get("loaded-var").insn()).var == flowVarIndex.var) { + toRemove.addAll(matchContext.collectedInsns()); + } + markChange(); + }); + } + toRemove.add(jumpInsnNode); + jumpInsnNode = null; + } + } + } catch (Exception exception) { + exception.printStackTrace(); + } + flowDupJumpMatch.findAllMatches(methodContext).forEach(matchContext -> { + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext() instanceof FrameNode && labelNode.getNext(2) != null && labelNode.getNext(2).getOpcode() == GOTO) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + toRemove.add(labelNode.getNext(2)); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + }); + flowDupJumpMatch2.findAllMatches(methodContext).forEach(matchContext -> { + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext().getOpcode() == GOTO) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + }); + + try { + AbstractInsnNode returnNode = trashHandlers.findFirstMatch(methodContext).insn(); + + AbstractInsnNode next = returnNode.getNext(); + while (next != null) { + if (next instanceof LabelNode label) { + trashLabels.add(label); + } + next = next.getNext(); + } + } catch (Exception ignored) {} + + toRemove.forEach( + methodNode.instructions::remove + ); + + boolean changed = true; + + if (jumpInsnNode != null) { + AbstractInsnNode next = jumpInsnNode.label; + while (next != null) { + if (next instanceof LabelNode label) { + trashLabels.add(label); + } + next = next.getNext(); + } + while (jumpInsnNode.label.getNext() != null && !(jumpInsnNode.label.getNext() instanceof JumpInsnNode)) { + AbstractInsnNode abstractInsnNode = jumpInsnNode.label.getNext(); + if (abstractInsnNode instanceof LabelNode) { + methodNode.instructions.remove(abstractInsnNode); + continue; + } + methodNode.instructions.remove(abstractInsnNode); + methodNode.instructions.insertBefore(jumpInsnNode, abstractInsnNode); + markChange(); + } + + methodNode.instructions.remove(jumpInsnNode); + markChange(); + } else { + changed = !toRemove.isEmpty(); + } + + if (!changed) return; + + Set tryCatchBlockNodes = new HashSet<>(); + + for (TryCatchBlockNode tryCatchBlock : tryCatchBlocks) { + if (trashLabels.contains(tryCatchBlock.start) || trashLabels.contains(tryCatchBlock.handler) || trashLabels.contains(tryCatchBlock.end)) { + tryCatchBlockNodes.add(tryCatchBlock); + markChange(); + } + } + + tryCatchBlockNodes.forEach( + methodNode.tryCatchBlocks::remove + ); + } + })); + } +} diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java index 95bffc40..9743bf7c 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java @@ -22,6 +22,8 @@ public class BranchlockSaltingTransformer extends Transformer { private final Map salts = new WeakHashMap<>(); + //TODO: Fix superClass`s / interface`s overridden methods not being deobfuscated + @Override protected void transform() throws Exception { scopedClasses().forEach(classWrapper -> { diff --git a/testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar b/testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar new file mode 100644 index 00000000..292395c7 Binary files /dev/null and b/testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar differ diff --git a/testData/compiled/custom-jars/branchlock/branchlock-string-salting-flow-number.jar b/testData/compiled/custom-jars/branchlock/branchlock-string-salting-flow-number.jar new file mode 100644 index 00000000..9a0e5ac9 Binary files /dev/null and b/testData/compiled/custom-jars/branchlock/branchlock-string-salting-flow-number.jar differ diff --git a/testData/compiled/custom-jars/branchlock/flow/flow 9.jar b/testData/compiled/custom-jars/branchlock/flow/flow 9.jar new file mode 100644 index 00000000..e4ce3605 Binary files /dev/null and b/testData/compiled/custom-jars/branchlock/flow/flow 9.jar differ diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec new file mode 100644 index 00000000..9780dc33 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec @@ -0,0 +1,5 @@ +package pack; + +public class Clazz { + public int BRANCHLOCK_DOT_NET_DEMO; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec new file mode 100644 index 00000000..e94423e4 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec @@ -0,0 +1,163 @@ +package pack; + +import java.io.File; +import pack.tests.basics.accu.Digi; +import pack.tests.basics.ctrl.Ctrl; +import pack.tests.basics.inner.Test; +import pack.tests.basics.overwirte.Sub; +import pack.tests.basics.runable.Task; +import pack.tests.basics.sub.Solver; +import pack.tests.bench.Calc; +import pack.tests.reflects.annot.annot; +import pack.tests.reflects.counter.Count; +import pack.tests.reflects.field.FTest; +import pack.tests.reflects.loader.LRun; +import pack.tests.reflects.res.Accesor; +import pack.tests.reflects.retrace.Tracer; +import pack.tests.security.SecTest; + +public class Main { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static void main(String[] var0) { + System.out + .println( + "-----------------------------------------------------------------------------------------\n| This java application has been obfuscated using a demo version of Branchlock 4. |\n| Did you know that anyone can read the source code of your exported java software? |\n| For more information about how to protect your projects, visit https://branchlock.net |\n-----------------------------------------------------------------------------------------\n" + ); + System.out.println("Obfuscator Test Program"); + System.out.println("Author: huzpsb"); + System.out.println("Version: 1.0r"); + System.out.println("Link: https://github.com/huzpsb/JavaObfuscatorTest"); + File var1 = new File("IK"); + if (!var1.exists()) { + var1.createNewFile(); + System.out.println(); + System.out.println("[HINT]"); + System.out.println("Only compatibility and efficiency are tested here!"); + System.out.println("For most users, pass all of the basics means the obfuscator is good enough."); + System.out.println("The Test #2 is for SpringBoot and Android like environment."); + System.out.println("Choose wisely among strength, compatibility, efficiency, size, and price."); + System.out.println("[HINT]"); + System.out.println(); + } + + System.out.println("-------------Test #1: Basics-------------"); + System.out.print("Test 1.1: Inheritance "); + + try { + new Sub().run(); + } catch (Throwable var15) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.2: Cross "); + + try { + new Sub().run(); + } catch (Throwable var14) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.3: Throw "); + + try { + new Ctrl().run(); + } catch (Throwable var13) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.4: Accuracy "); + + try { + new Digi().run(); + } catch (Throwable var12) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.5: SubClass "); + + try { + new Solver(); + } catch (Throwable var11) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.6: Pool "); + + try { + new Task().run(); + } catch (Throwable var10) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.7: InnerClass "); + + try { + new Test().run(); + } catch (Throwable var9) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #2: Reflects-------------"); + System.out.print("Test 2.1: Counter "); + + try { + new Count().run(); + } catch (Throwable var8) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.2: Chinese 通过LMAO\b\b\b\b \n"); + System.out.print("Test 2.3: Resource "); + + try { + new Accesor().run(); + } catch (Throwable var7) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.4: Field "); + + try { + new FTest().run(); + } catch (Throwable var6) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.5: Loader "); + + try { + new LRun().run(); + } catch (Throwable var5) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.6: ReTrace "); + + try { + new Tracer().run(); + } catch (Throwable var4) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.7: Annotation "); + + try { + new annot().run(); + } catch (Throwable var3) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.8: Sec "); + + try { + new SecTest().run(); + } catch (Throwable var2) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #3: Efficiency-------------"); + Calc.runAll(); + System.out.println("-------------Tests r Finished-------------"); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec new file mode 100644 index 00000000..55305104 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec @@ -0,0 +1,20 @@ +package pack.tests.basics.accu; + +public class Digi { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + double var1 = 0.0; + int var3 = 0; + + do { + var1 += 1.0E-18; + } while (++var3 <= 100 && (float)var1 != 2.0E-17F); + + if (var3 == 20) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec new file mode 100644 index 00000000..8fb0af89 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec @@ -0,0 +1,11 @@ +package pack.tests.basics.cross; + +public abstract class Abst1 { + public int BRANCHLOCK_DOT_NET_DEMO; + + public abstract int add(int var1, int var2); + + public int mul(int var1, int var2) { + return var1 * var2; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec new file mode 100644 index 00000000..da16cc4b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.cross; + +public interface Inte { + int mul(int var1, int var2); +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec new file mode 100644 index 00000000..c024a1ac --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec @@ -0,0 +1,18 @@ +package pack.tests.basics.cross; + +public class Top extends Abst1 implements Inte { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + if (this.add(1, 2) == 3 && this.mul(2, 3) == 6) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + @Override + public int add(int var1, int var2) { + return var1 + var2; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec new file mode 100644 index 00000000..679931d8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec @@ -0,0 +1,27 @@ +package pack.tests.basics.ctrl; + +public class Ctrl { + private String ret = "FAIL"; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void runt() { + if (!"a".equals("b")) { + throw new UnsupportedOperationException(); + } + } + + public void runf() { + this.runt(); + + try { + this.runt(); + this.ret = "FAIL"; + } catch (Exception var1) { + } + } + + public void run() { + this.runf(); + System.out.println(this.ret); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec new file mode 100644 index 00000000..dda458ca --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec @@ -0,0 +1,26 @@ +package pack.tests.basics.inner; + +public class Exec { + public int fuss = 1; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void addF() { + this.fuss += 2; + } + + public class Inner { + int i; + final Exec this$0; + public int BRANCHLOCK_DOT_NET_DEMO; + + public Inner(Exec var1, int var2) { + this.this$0 = var1; + this.i = var2; + } + + public void doAdd() { + this.this$0.addF(); + this.this$0.fuss = this.this$0.fuss + this.i; + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec new file mode 100644 index 00000000..513d946b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec @@ -0,0 +1,18 @@ +package pack.tests.basics.inner; + +public class Test { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Exec var1 = new Exec(); + Exec.Inner var2 = var1.new Inner(var1, 3); + var2.doAdd(); + Exec.Inner var3 = var1.new Inner(var1, 100); + var3.doAdd(); + if (var1.fuss == 108) { + System.out.println("PASS"); + } else { + System.out.println("ERROR"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec new file mode 100644 index 00000000..a5876ace --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.overwirte; + +public interface Face { + String face(int var1); +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec new file mode 100644 index 00000000..d8967e53 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.overwirte; + +public class Sub extends Super { + public int BRANCHLOCK_DOT_NET_DEMO; + public static Throwable P; + + @Override + public void run() { + System.out.println(this.face(1)); + } + + @Override + public String face(int var1) { + return var1 == 1 ? "PASS" : "FAIL"; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec new file mode 100644 index 00000000..46db3ce7 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.overwirte; + +public abstract class Super implements Face { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec new file mode 100644 index 00000000..f5a75b29 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.runable; + +public class Exec { + public static int i = 1; + private int d; + public int BRANCHLOCK_DOT_NET_DEMO; + + public Exec(int var1) { + this.d = var1; + } + + void doAdd() { + Thread.sleep(200L); + i = i + this.d; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec new file mode 100644 index 00000000..0c132fa4 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec @@ -0,0 +1,10 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class Pool { + public static ThreadPoolExecutor tpe = new ThreadPoolExecutor(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); + public int BRANCHLOCK_DOT_NET_DEMO; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec new file mode 100644 index 00000000..d495fd99 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec @@ -0,0 +1,46 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.RejectedExecutionException; + +public class Task { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Exec var1 = new Exec(2); + Exec var2 = new Exec(3); + Exec var3 = new Exec(100); + + try { + Pool.tpe.submit(var2::doAdd); + + try { + Thread.sleep(50L); + } catch (InterruptedException var5) { + } + + Pool.tpe.submit(Task::lambda$run$0); + + try { + Thread.sleep(50L); + } catch (InterruptedException var4) { + } + + Pool.tpe.submit(var3::doAdd); + } catch (RejectedExecutionException var6) { + Exec.i += 10; + } + + Thread.sleep(300L); + if (Exec.i == 30) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + private static void lambda$run$0(Exec var0) { + int var1 = Exec.i; + var0.doAdd(); + Exec.i += var1; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec new file mode 100644 index 00000000..f8014a54 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec @@ -0,0 +1,20 @@ +package pack.tests.basics.sub; + +import pack.tests.basics.overwirte.Sub; +import pack.tests.reflects.annot.annoe; + +public class SolAdd { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static int get() { + return (new med(1, 2)).result; + } + + public static Throwable P(Throwable var0) { + if (annoe.P != null) { + Sub.P = var0; + } + + return var0; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec new file mode 100644 index 00000000..bf0d5285 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec @@ -0,0 +1,13 @@ +package pack.tests.basics.sub; + +public class Solver { + public int BRANCHLOCK_DOT_NET_DEMO; + + public Solver() { + if (SolAdd.get() == 3) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec new file mode 100644 index 00000000..29fc367e --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.sub; + +class flo { + public int BRANCHLOCK_DOT_NET_DEMO; + + int solve(int var1, int var2) { + return var1 + var2; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec new file mode 100644 index 00000000..03ced211 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec @@ -0,0 +1,10 @@ +package pack.tests.basics.sub; + +class med { + int result; + public int BRANCHLOCK_DOT_NET_DEMO; + + med(int var1, int var2) { + this.result = new flo().solve(var1, var2); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec new file mode 100644 index 00000000..fc3583a6 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec @@ -0,0 +1,49 @@ +package pack.tests.bench; + +public class Calc { + public static int count = 0; + public int BRANCHLOCK_DOT_NET_DEMO; + + public static void runAll() { + long var0 = System.currentTimeMillis(); + + for (int var2 = 0; var2 < 10000; var2++) { + call(100); + runAdd(); + runStr(); + } + + System.out.println("Calc: " + (System.currentTimeMillis() - var0) + "ms"); + if (count != 30000) { + throw new RuntimeException("[ERROR]: Errors occurred in calc!"); + } + } + + private static void call(int var0) { + if (var0 == 0) { + count++; + } else { + call(99); + } + } + + private static void runAdd() { + double var0 = 0.0; + + while (var0 < 100.1) { + var0 += 0.99; + } + + count++; + } + + private static void runStr() { + String var0 = ""; + + while (var0.length() < 101) { + var0 = var0 + "ax"; + } + + count++; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec new file mode 100644 index 00000000..4149deff --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec @@ -0,0 +1,11 @@ +package pack.tests.reflects.annot; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface anno { + String val() default "yes"; + + String val2() default "yes"; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec new file mode 100644 index 00000000..8749c248 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec @@ -0,0 +1,34 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Field; + +public class annoe { + @anno( + val = "PASS" + ) + private static final String fail = "WHAT"; + public int BRANCHLOCK_DOT_NET_DEMO; + public static Throwable P; + + @anno + public void dox() { + String var1 = "FAIL"; + + for (Field var5 : annoe.class.getDeclaredFields()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null) { + var1 = var6.val(); + } + } + + System.out.println(var1); + } + + @anno( + val = "no" + ) + public void dov() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec new file mode 100644 index 00000000..9f73641a --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec @@ -0,0 +1,19 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Method; + +public class annot { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + annoe var1 = new annoe(); + + for (Method var5 : annoe.class.getDeclaredMethods()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null && var6.val().equals("yes")) { + var5.invoke(var1); + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec new file mode 100644 index 00000000..9bf40bf9 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec @@ -0,0 +1,16 @@ +package pack.tests.reflects.counter; + +public class Count { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + if (Countee.class.getFields().length == 1 + && Countee.class.getDeclaredFields().length == 4 + && Countee.class.getMethods().length > 4 + && Countee.class.getDeclaredMethods().length == 4) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec new file mode 100644 index 00000000..a891c773 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec @@ -0,0 +1,21 @@ +package pack.tests.reflects.counter; + +public class Countee { + public int cpuli = 0; + protected int cprot = 0; + int cpackp = 1; + private int cpriv = 0; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void mpuli() { + } + + public void mprot() { + } + + public void mpackp() { + } + + public void mpriv() { + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec new file mode 100644 index 00000000..787d05d3 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.field; + +public class FObject extends Throwable { + private int i; + public int BRANCHLOCK_DOT_NET_DEMO; + + private FObject(int var1) { + this.i = var1; + } + + private void add() { + this.i += 3; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec new file mode 100644 index 00000000..9d4895c1 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec @@ -0,0 +1,37 @@ +package pack.tests.reflects.field; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class FTest { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Constructor var1 = FObject.class.getDeclaredConstructor(int.class); + if (var1.isAccessible()) { + System.out.println("FAIL"); + } else { + var1.setAccessible(true); + FObject var2 = (FObject)var1.newInstance(1); + Method var3 = FObject.class.getDeclaredMethod("add", null); + if (var3.isAccessible()) { + System.out.println("FAIL"); + } else { + var3.setAccessible(true); + var3.invoke(var2); + Field var4 = FObject.class.getDeclaredField("i"); + if (var4.isAccessible()) { + System.out.println("FAIL"); + } else { + var4.setAccessible(true); + if (var4.getInt(var2) != 4) { + System.out.println("FAIL"); + } else { + System.out.println("PASS"); + } + } + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec new file mode 100644 index 00000000..ba93fb7b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec @@ -0,0 +1,12 @@ +package pack.tests.reflects.loader; + +public class LRun { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Loader var1 = new Loader(); + Class var2 = var1.findClass("pack.tests.reflects.loader.LTest"); + Object var3 = var2.newInstance(); + var2.getMethod("run").invoke(var3); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec new file mode 100644 index 00000000..2e1f93ae --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec @@ -0,0 +1,24 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class LTest { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + public void run() { + System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec new file mode 100644 index 00000000..cfe238f9 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec @@ -0,0 +1,32 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class Loader extends ClassLoader { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + @Override + public InputStream getResourceAsStream(String var1) { + return (InputStream)(var1.contains("TEST") ? new ByteArrayInputStream("PASS".getBytes()) : super.getResourceAsStream(var1)); + } + + @Override + public Class findClass(String var1) { + byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); + return this.defineClass(var1, var2, 0, var2.length); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec new file mode 100644 index 00000000..b208d9fb --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec @@ -0,0 +1,11 @@ +package pack.tests.reflects.res; + +public class Accesor { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read(); + byte var10001 = 97; + throw new RuntimeException(); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec new file mode 100644 index 00000000..83b40c4e --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec @@ -0,0 +1,18 @@ +package pack.tests.reflects.retrace; + +public class Tracee { + public static int p = 0; + public int BRANCHLOCK_DOT_NET_DEMO; + + private void doTrace(int var1) { + p++; + StackTraceElement var2 = new Throwable().getStackTrace()[1]; + Tracee.class.getDeclaredMethod(var2.getMethodName(), int.class).invoke(this, var1 - 1); + } + + public void toTrace(int var1) { + if (var1 != 0) { + this.doTrace(var1); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec new file mode 100644 index 00000000..bbeed5ed --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.retrace; + +public class Tracer { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + new Tracee().toTrace(5); + if (Tracee.p == 5) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec new file mode 100644 index 00000000..7e58105b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec @@ -0,0 +1,9 @@ +package pack.tests.security; + +public class SecExec { + public int BRANCHLOCK_DOT_NET_DEMO; + + private static void doShutdown() { + System.exit(-1); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec new file mode 100644 index 00000000..4f63733f --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec @@ -0,0 +1,37 @@ +package pack.tests.security; + +import java.lang.reflect.Method; + +public class SecTest { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + System.setSecurityManager(new Sman()); + System.out.print("FAIL"); + + try { + Method var1 = SecExec.class.getDeclaredMethod("doShutdown"); + var1.setAccessible(true); + var1.invoke(null); + } catch (Throwable var5) { + Throwable var3 = var5; + + while (true) { + Throwable var2 = var3.getCause(); + if (var2 == null) { + String var4 = var3.getMessage(); + if (var4 == null) { + return; + } + + if (var4.contains("HOOK")) { + System.out.println("\b\b\b\bPASS"); + } + break; + } + + var3 = var2; + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec new file mode 100644 index 00000000..064cc704 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec @@ -0,0 +1,14 @@ +package pack.tests.security; + +import java.security.Permission; + +public class Sman extends SecurityManager { + public int BRANCHLOCK_DOT_NET_DEMO; + + @Override + public void checkPermission(Permission var1) { + if (var1.getName().contains("exitVM")) { + throw new SecurityException("HOOKED"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec index b5259da4..ffc1579a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec @@ -163,197 +163,4 @@ public class Main { Calc.runAll(8983); System.out.println("-------------Tests r Finished-------------"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "↓๕\u0011\ufffa↓→\uffbfPᄆᆰᆬeᅮ\ufff0\ufffe\ufffb\u0007■\uffbf็v\ufff5\ufff8๊\uffde\u0017→\ufff7\ufff07ᆬ\uffbf\ufff7↑\u0018\uffef↓�\u0e65ᅨ\ufffa↓→Bᆳᄆᆳ\u007f\uffbfᅵ\ufff7\ufff6\f\ufffa↓\ufffae澅灘ᅮᅭ#\uffd0ララMラ\uffbf\uffbf\uffbfBユ\u0e6fᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇ\uffbfᅨ\ufffa\u0011→\uffbfᄐwᆬ\uffbfᅪ\ufffa\u0004\ufff3\ufffa1↓ᄇᄇᄇOᄇᄇᄇhᄇᄇᄇᄇOโᅣᅲ\f\uffd1ᅨᅡ\u0e76-\ufff1\ufff3₩e\ufff0\ufff2\uffef\u0003→\ufff6�,\ufff3\ufff6→₩B\ufffe\ufff1\ufffbe\ufffa\ufff9\ufff9\ufff6\u0001\ufff6\ufffa\ufff1&₩\uffbf\ufffe■\u0007\uffbf→\ufffa6→\ufffa\ufffb\uffbf\n\ufffa■\ufffad็↑\ufff2๔ᅨ\ufffa↓1\uffbfᆴᄆᆲX\uffbfᅨ\ufff77\ufff0│\uffbf๑6\ufffa↓→eᆳᄆᄄᆬB\uffde\ufff1\ufff1*→\ufffe→\ufff6\r\ufff1\uffbf๒\u0011\ufffa↓→\uffbfSᄆᆴᆬeᅱ\ufff1\ufff7\ufffa\u0010\ufff6→\ufffe+\ufffa\uffbf้4\ufffa■↓,\ufff0\ufff1ᆬ\uffbfSᄆᆵ■๖ᅨ\ufffa↓→Bᆳᄆᆴ\u007f\uffbfᅵ\ufff0↑\f→\ufffa■eเᆴᆴ\ufff5\bๆᅱᅯฏ\uffd9\ufff0■\uffbf\u000f\ufff0↓→e↑↓\ufffa■\u0011ᄈ\uffbf\uffef$↓↓\uffbf\ufffe\u000e\ufff3\uffbf\ufff0#\uffbf→\ufff7\ufffaB�\ufffe↓,↓\uffbf\ufff2\u0007\ufffe\ufff1↓e→\ufff7\ufffa\uffbf\r�\ufff9↑6\ufffe→\ufff0\u0010\uffbf\ufff6↓e\ufff8\ufff0\ufff0\ufffbB\ufffa\ufff1\ufff00\ufff8\ufff7ᄆๆ\udb22⏢\u0e6dᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇ볘\ufffa\u0011→\uffbfᄐtᆬ\uffbf\uffdd\ufffe\u0011\ufff6↓hᄇᄇᄇᄇOᄇᄇᄇhᄇᄇᄇ๔6\ufffa↓→eᆴᄆᆳᆬBᅵ■\ufff06↓\uffbf\u0e69ᄇOᄇᄇᄇhᄇᄇᄇᄇOᄇ볘 ↓→\uffbfᄐQᆬ\uffbfᅳ#\ufff9\ufff6\ufff6\u0007\ufff1₩hᄇᄇᄇᄇOᄇᄇᄇhᄇᄇᄇ\u0e6eOᄇᄇᄇhᄇᄇᄇᄇOᄇᄇᄇ\u0011\ufffa↓→↓B■\uffbf\uffd9,\ufff1\ufff6↓\ufff7\u0007\ufffbᄇᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇแᅳᅪ0\uffd0ᅪ๑\u0011\ufffa↓→\uffbfSᄆᄄᆬeᅱ\ufff1\ufff1\ufffa\u0010ᅵ\ufff3\ufffe6ໞ\uffbf๓\uffd0\u0000\ufff9↑↓&\ufffeᅩ\ufff0■Bᅨ\ufffa↓1\uffbfᅬ■\ufff0\u0005■\ufffe\ufff2๗ᅨ\ufffa↓→Bᆳᄆᆲ\u007f\uffbfᅪ\ufffa↓\r↑■ \uffbf๖ᅨ\ufffa\u0011→\uffbfᆳkᄅᆬ\uffbfᅪ\u0007ᅨ■\ufffe&\ufffa\uffbf๔ᅨ\u0007↓→\uffbfwᄆᆱᆬ\uffbf$\ufff6\ufffa\ufff3!\uffbf๊ᅨ\ufffa\u0011→\uffbfᆳkᄃᆬ\uffbf→\u0007\uffbfญ\u0006\ufff7\ufff0\ufff0↓\u0007\uffbf│\ufff66\ufffa\ufff3₩\uffbf\u0003\ufff2\ufff0\ufff1\"\uffbf↓→■\u0007\ufff1\ufff8→-ᄈ\uffbf\ufff0\u000f\uffef\ufffe→,�\ufff6\ufff3\ufff6\u0016₩ᄈ\uffbf \ufff9\ufff9\ufff6\u000b\ufffa\ufff1<ᄈ\uffbf↓\ufff6\u0018\ufffaᄈ\uffbf$\ufff1\ufffb\uffbf\uffef\u0010\ufff6\ufffak๗ᅨ\ufffa↓\u0016\uffbfᆴᄆpᆬ\uffbfᅩ↑\u0000ᅵ\ufff3\ufffe6↓\uffbf\u0e7fᅨ\n\ufffa\uffbfᅨ ↓→\uffbfᄐP\uffbf\ufff6↓e\ufff9\ufff0■\uffbf1\uffef■\ufff6+\ufff8\uffdd\ufff0\ufff0\u0016\uffbf\ufffe\ufff1!\uffbf\uffde\ufff1\ufffb\u0010\ufff0\ufff6\ufffbe\ufff3\ufff6\ufff4\ufffaB\ufffa\ufff1←,■\ufff0\ufff1\ufff2\u0007\ufff1→ᄆ๗ᅨ\ufffa↓→Bᆴᄆᆱ\u007f\uffbf\uffde\u0017■\ufffe<\uffbf๋ᅨ\ufffa\u0011→\uffbfᆴkᄅᆬ뵈\r\ufff0\ufff3\uffbf" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: sipush 627 - // 00d: swap - // 00e: sipush 544 - // 011: caload - // 012: aload 0 - // 013: dup - // 014: sipush 544 - // 017: swap - // 018: sipush 627 - // 01b: caload - // 01c: castore - // 01d: castore - // 01e: aload 0 - // 01f: dup - // 020: sipush 815 - // 023: swap - // 024: bipush 85 - // 026: caload - // 027: aload 0 - // 028: dup - // 029: bipush 85 - // 02b: swap - // 02c: sipush 815 - // 02f: caload - // 030: castore - // 031: castore - // 032: aload 0 - // 033: dup - // 034: sipush 534 - // 037: swap - // 038: bipush 0 - // 039: caload - // 03a: aload 0 - // 03b: dup - // 03c: bipush 0 - // 03d: swap - // 03e: sipush 534 - // 041: caload - // 042: castore - // 043: castore - // 044: aload 0 - // 045: dup - // 046: sipush 196 - // 049: swap - // 04a: sipush 1205 - // 04d: caload - // 04e: aload 0 - // 04f: dup - // 050: sipush 1205 - // 053: swap - // 054: sipush 196 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 139 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: bipush 86 - // 083: ixor - // 084: iload 5 - // 086: ixor - // 087: anewarray 169 - // 08a: astore 7 - // 08c: bipush 0 - // 08d: istore 8 - // 08f: aload 0 - // 090: iload 1 - // 091: iinc 1 1 - // 094: caload - // 095: sipush 237 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 11a - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: sipush 133 - // 0b9: ixor - // 0ba: lookupswitch 74 8 171 168 200 162 228 130 230 149 235 174 236 180 238 193 245 143 - // 104: aload 9 - // 106: iload 10 - // 108: iload 11 - // 10a: castore - // 10b: iinc 10 1 - // 10e: iinc 1 1 - // 111: iinc 2 -1 - // 114: bipush 0 - // 115: istore 12 - // 117: goto 185 - // 11a: aload 7 - // 11c: iload 8 - // 11e: iinc 8 1 - // 121: new java/lang/String - // 124: dup - // 125: aload 9 - // 127: invokespecial java/lang/String. ([C)V - // 12a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 12d: aastore - // 12e: iload 1 - // 12f: aload 0 - // 130: arraylength - // 131: if_icmplt 08f - // 134: aload 7 - // 136: putstatic pack/Main.d [Ljava/lang/String; - // 139: goto 1b0 - // 13c: iload 11 - // 13e: bipush -97 - // 140: ixor - // 141: istore 11 - // 143: bipush 1 - // 144: istore 12 - // 146: goto 185 - // 149: bipush 2 - // 14a: istore 12 - // 14c: goto 185 - // 14f: iload 11 - // 151: bipush 69 - // 153: ixor - // 154: istore 11 - // 156: bipush 1 - // 157: istore 12 - // 159: goto 185 - // 15c: bipush 3 - // 15d: istore 12 - // 15f: goto 185 - // 162: bipush 4 - // 163: istore 12 - // 165: goto 185 - // 168: bipush 5 - // 169: istore 12 - // 16b: goto 185 - // 16e: iload 11 - // 170: bipush 98 - // 172: ixor - // 173: istore 11 - // 175: bipush 1 - // 176: istore 12 - // 178: goto 185 - // 17b: bipush 6 - // 17d: istore 12 - // 17f: goto 185 - // 182: goto 05d - // 185: iload 12 - // 187: tableswitch -75 0 6 -226 -131 -75 -62 -43 -37 -31 - // 1b0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec index e771a7a8..541641d4 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec @@ -20,216 +20,4 @@ public class Digi { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ニธ\ufff6ノ↓ナฟラ○マธ\u0011\uffd0ຶ\ufff3" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 13 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 13 - // 013: swap - // 014: bipush 2 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 3 - // 01b: swap - // 01c: bipush 7 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 7 - // 023: swap - // 024: bipush 3 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 1 - // 039: swap - // 03a: bipush 19 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 19 - // 041: swap - // 042: bipush 1 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 14d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: bipush 28 - // 06f: ixor - // 070: iload 5 - // 072: ixor - // 073: anewarray 36 - // 076: astore 7 - // 078: bipush 0 - // 079: istore 8 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 181 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 12e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: bipush 54 - // 0a4: ixor - // 0a5: lookupswitch 115 13 24 261 66 171 67 184 69 190 70 203 81 209 83 228 84 234 85 241 87 248 93 268 95 275 114 222 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c2 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07b - // 148: aload 7 - // 14a: putstatic pack/tests/basics/accu/Digi.d [Ljava/lang/String; - // 14d: goto 200 - // 150: iload 11 - // 152: bipush -42 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 1c2 - // 15d: bipush 2 - // 15e: istore 12 - // 160: goto 1c2 - // 163: iload 11 - // 165: bipush -65 - // 167: ixor - // 168: istore 11 - // 16a: bipush 1 - // 16b: istore 12 - // 16d: goto 1c2 - // 170: bipush 3 - // 171: istore 12 - // 173: goto 1c2 - // 176: iload 11 - // 178: bipush 87 - // 17a: ixor - // 17b: istore 11 - // 17d: bipush 1 - // 17e: istore 12 - // 180: goto 1c2 - // 183: bipush 4 - // 184: istore 12 - // 186: goto 1c2 - // 189: bipush 5 - // 18a: istore 12 - // 18c: goto 1c2 - // 18f: bipush 6 - // 191: istore 12 - // 193: goto 1c2 - // 196: bipush 7 - // 198: istore 12 - // 19a: goto 1c2 - // 19d: iload 11 - // 19f: bipush -111 - // 1a1: ixor - // 1a2: istore 11 - // 1a4: bipush 1 - // 1a5: istore 12 - // 1a7: goto 1c2 - // 1aa: bipush 8 - // 1ac: istore 12 - // 1ae: goto 1c2 - // 1b1: bipush 9 - // 1b3: istore 12 - // 1b5: goto 1c2 - // 1b8: bipush 10 - // 1ba: istore 12 - // 1bc: goto 1c2 - // 1bf: goto 049 - // 1c2: iload 12 - // 1c4: tableswitch -65 0 10 -307 -172 -116 -103 -97 -84 -78 -59 -65 -46 -26 - // 200: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec index fbf21f13..33be7f52 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec @@ -20,230 +20,4 @@ public class Top extends Abst1 implements Inte { public int add(int var1, int var2, int var3) { return var1 + var2; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄇູᆱ\u0011\u0003:ູ\u00007ᄄ\u0e5e" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 4 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 4 - // 011: swap - // 012: bipush 0 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 0 - // 019: swap - // 01a: bipush 9 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 9 - // 021: swap - // 022: bipush 0 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 10 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 10 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 12 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 12 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 0 - // 04b: swap - // 04c: bipush 0 - // 04d: caload - // 04e: aload 0 - // 04f: dup - // 050: bipush 0 - // 051: swap - // 052: bipush 0 - // 053: caload - // 054: castore - // 055: castore - // 056: goto 15d - // 059: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05c: bipush 0 - // 05d: aaload - // 05e: astore 4 - // 060: aload 4 - // 062: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 065: invokevirtual java/lang/String.hashCode ()I - // 068: ldc 65535 - // 06a: iand - // 06b: istore 5 - // 06d: aload 4 - // 06f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 072: invokevirtual java/lang/String.toCharArray ()[C - // 075: astore 6 - // 077: aload 0 - // 078: iload 1 - // 079: iinc 1 1 - // 07c: caload - // 07d: sipush 245 - // 080: ixor - // 081: iload 5 - // 083: ixor - // 084: anewarray 42 - // 087: astore 7 - // 089: bipush 0 - // 08a: istore 8 - // 08c: aload 0 - // 08d: iload 1 - // 08e: iinc 1 1 - // 091: caload - // 092: bipush 20 - // 094: ixor - // 095: iload 5 - // 097: ixor - // 098: istore 2 - // 099: iload 2 - // 09a: newarray 5 - // 09c: astore 9 - // 09e: bipush 0 - // 09f: istore 10 - // 0a1: iload 2 - // 0a2: ifle 13e - // 0a5: aload 0 - // 0a6: iload 1 - // 0a7: caload - // 0a8: istore 11 - // 0aa: aload 6 - // 0ac: iload 1 - // 0ad: aload 6 - // 0af: arraylength - // 0b0: irem - // 0b1: caload - // 0b2: bipush 29 - // 0b4: ixor - // 0b5: lookupswitch 115 13 51 235 73 184 105 171 109 197 110 210 111 223 114 229 116 241 118 247 120 254 124 261 126 268 127 275 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1d2 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 08c - // 158: aload 7 - // 15a: putstatic pack/tests/basics/cross/Top.d [Ljava/lang/String; - // 15d: goto 210 - // 160: iload 11 - // 162: bipush 118 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1d2 - // 16d: iload 11 - // 16f: bipush -19 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1d2 - // 17a: iload 11 - // 17c: bipush -5 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1d2 - // 187: iload 11 - // 189: bipush 80 - // 18b: ixor - // 18c: istore 11 - // 18e: bipush 1 - // 18f: istore 12 - // 191: goto 1d2 - // 194: bipush 2 - // 195: istore 12 - // 197: goto 1d2 - // 19a: bipush 3 - // 19b: istore 12 - // 19d: goto 1d2 - // 1a0: bipush 4 - // 1a1: istore 12 - // 1a3: goto 1d2 - // 1a6: bipush 5 - // 1a7: istore 12 - // 1a9: goto 1d2 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1d2 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1d2 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1d2 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1d2 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1d2 - // 1cf: goto 059 - // 1d2: iload 12 - // 1d4: tableswitch -77 0 10 -307 -172 -77 -64 -90 -116 -58 -103 -46 -33 -40 - // 210: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec index caa0aa98..4c474cff 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec @@ -31,202 +31,4 @@ public class Ctrl { this.runf(13495); System.out.println(this.ret); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "๎๋\u0003๋ミລ1リᅩハ๎'\n*-" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 13 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 13 - // 013: swap - // 014: bipush 4 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 5 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 8 - // 02a: swap - // 02b: bipush 20 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 20 - // 032: swap - // 033: bipush 8 - // 035: caload - // 036: castore - // 037: castore - // 038: goto 13d - // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03e: bipush 0 - // 03f: aaload - // 040: astore 4 - // 042: aload 4 - // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 047: invokevirtual java/lang/String.hashCode ()I - // 04a: ldc 65535 - // 04c: iand - // 04d: istore 5 - // 04f: aload 4 - // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 054: invokevirtual java/lang/String.toCharArray ()[C - // 057: astore 6 - // 059: aload 0 - // 05a: iload 1 - // 05b: iinc 1 1 - // 05e: caload - // 05f: bipush 8 - // 061: ixor - // 062: iload 5 - // 064: ixor - // 065: anewarray 24 - // 068: astore 7 - // 06a: bipush 0 - // 06b: istore 8 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: sipush 227 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: istore 2 - // 07b: iload 2 - // 07c: newarray 5 - // 07e: astore 9 - // 080: bipush 0 - // 081: istore 10 - // 083: iload 2 - // 084: ifle 11e - // 087: aload 0 - // 088: iload 1 - // 089: caload - // 08a: istore 11 - // 08c: aload 6 - // 08e: iload 1 - // 08f: aload 6 - // 091: arraylength - // 092: irem - // 093: caload - // 094: bipush 61 - // 096: ixor - // 097: lookupswitch 113 13 19 220 73 169 77 182 78 195 79 208 81 214 84 226 86 239 88 245 92 252 94 259 95 273 126 266 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1b2 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 06d - // 138: aload 7 - // 13a: putstatic pack/tests/basics/ctrl/Ctrl.d [Ljava/lang/String; - // 13d: goto 1f0 - // 140: iload 11 - // 142: bipush -97 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1b2 - // 14d: iload 11 - // 14f: bipush 75 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1b2 - // 15a: iload 11 - // 15c: bipush -39 - // 15e: ixor - // 15f: istore 11 - // 161: bipush 1 - // 162: istore 12 - // 164: goto 1b2 - // 167: bipush 2 - // 168: istore 12 - // 16a: goto 1b2 - // 16d: bipush 3 - // 16e: istore 12 - // 170: goto 1b2 - // 173: bipush 4 - // 174: istore 12 - // 176: goto 1b2 - // 179: iload 11 - // 17b: bipush 97 - // 17d: ixor - // 17e: istore 11 - // 180: bipush 1 - // 181: istore 12 - // 183: goto 1b2 - // 186: bipush 5 - // 187: istore 12 - // 189: goto 1b2 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1b2 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1b2 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1b2 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1b2 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1b2 - // 1af: goto 03b - // 1b2: iload 12 - // 1b4: tableswitch -77 0 10 -305 -172 -103 -90 -77 -65 -59 -46 -40 -116 -26 - // 1f0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec index 2f36a05e..67ded837 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec @@ -18,230 +18,4 @@ public class Test { System.out.println("ERROR"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0007\u0e3box\u001b\u0efe^ฺ\ufff3\u0018\u001a\u001b" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 8 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 8 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 5 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 5 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 6 - // 03c: swap - // 03d: bipush 17 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 17 - // 044: swap - // 045: bipush 6 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 7 - // 04e: swap - // 04f: bipush 4 - // 050: caload - // 051: aload 0 - // 052: dup - // 053: bipush 4 - // 054: swap - // 055: bipush 7 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 161 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: bipush 85 - // 083: ixor - // 084: iload 5 - // 086: ixor - // 087: anewarray 54 - // 08a: astore 7 - // 08c: bipush 0 - // 08d: istore 8 - // 08f: aload 0 - // 090: iload 1 - // 091: iinc 1 1 - // 094: caload - // 095: sipush 151 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 142 - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: sipush 201 - // 0b9: ixor - // 0ba: lookupswitch 114 13 157 274 160 170 162 183 167 209 168 215 170 221 171 227 172 233 185 240 186 247 187 260 189 267 231 196 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1d6 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 08f - // 15c: aload 7 - // 15e: putstatic pack/tests/basics/inner/Test.d [Ljava/lang/String; - // 161: goto 214 - // 164: iload 11 - // 166: bipush 12 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1d6 - // 171: iload 11 - // 173: bipush 42 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1d6 - // 17e: iload 11 - // 180: bipush 72 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1d6 - // 18b: bipush 2 - // 18c: istore 12 - // 18e: goto 1d6 - // 191: bipush 3 - // 192: istore 12 - // 194: goto 1d6 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1d6 - // 19d: bipush 5 - // 19e: istore 12 - // 1a0: goto 1d6 - // 1a3: bipush 6 - // 1a5: istore 12 - // 1a7: goto 1d6 - // 1aa: bipush 7 - // 1ac: istore 12 - // 1ae: goto 1d6 - // 1b1: iload 11 - // 1b3: bipush -78 - // 1b5: ixor - // 1b6: istore 11 - // 1b8: bipush 1 - // 1b9: istore 12 - // 1bb: goto 1d6 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1d6 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1d6 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1d6 - // 1d3: goto 05d - // 1d6: iload 12 - // 1d8: tableswitch -71 0 10 -307 -172 -103 -90 -77 -71 -116 -53 -65 -59 -26 - // 214: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec index 74565839..e6535e54 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec @@ -16,239 +16,4 @@ public class Sub extends Super { public String face(int var1, int var2) { return var1 == 1 ? d[var2 ^ 8362] : d[var2 ^ 8363]; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u001bໄໄᅲ7ン\u0e7e4マ\u0014(" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 7 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 7 - // 013: swap - // 014: bipush 0 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 6 - // 01c: swap - // 01d: bipush 2 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 2 - // 022: swap - // 023: bipush 6 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 14 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 14 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 6 - // 04c: swap - // 04d: bipush 2 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 2 - // 052: swap - // 053: bipush 6 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 175 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: sipush 213 - // 082: ixor - // 083: iload 5 - // 085: ixor - // 086: anewarray 39 - // 089: astore 7 - // 08b: bipush 0 - // 08c: istore 8 - // 08e: aload 0 - // 08f: iload 1 - // 090: iinc 1 1 - // 093: caload - // 094: bipush 105 - // 096: ixor - // 097: iload 5 - // 099: ixor - // 09a: istore 2 - // 09b: iload 2 - // 09c: newarray 5 - // 09e: astore 9 - // 0a0: bipush 0 - // 0a1: istore 10 - // 0a3: iload 2 - // 0a4: ifle 156 - // 0a7: aload 0 - // 0a8: iload 1 - // 0a9: caload - // 0aa: istore 11 - // 0ac: aload 6 - // 0ae: iload 1 - // 0af: aload 6 - // 0b1: arraylength - // 0b2: irem - // 0b3: caload - // 0b4: bipush 123 - // 0b6: ixor - // 0b7: lookupswitch 137 16 8 193 9 219 11 225 12 238 13 244 14 250 15 256 16 263 18 276 20 283 24 297 25 304 26 311 30 318 40 206 85 290 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 1ff - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 08e - // 170: aload 7 - // 172: putstatic pack/tests/basics/overwirte/Sub.d [Ljava/lang/String; - // 175: goto 248 - // 178: iload 11 - // 17a: bipush 93 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1ff - // 185: iload 11 - // 187: bipush 100 - // 189: ixor - // 18a: istore 11 - // 18c: bipush 1 - // 18d: istore 12 - // 18f: goto 1ff - // 192: bipush 2 - // 193: istore 12 - // 195: goto 1ff - // 198: iload 11 - // 19a: bipush -50 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 1ff - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 1ff - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 1ff - // 1b1: bipush 5 - // 1b2: istore 12 - // 1b4: goto 1ff - // 1b7: bipush 6 - // 1b9: istore 12 - // 1bb: goto 1ff - // 1be: iload 11 - // 1c0: bipush -106 - // 1c2: ixor - // 1c3: istore 11 - // 1c5: bipush 1 - // 1c6: istore 12 - // 1c8: goto 1ff - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 1ff - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 1ff - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 1ff - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 1ff - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 1ff - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 1ff - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 1ff - // 1fc: goto 05b - // 1ff: iload 12 - // 201: tableswitch -86 0 13 -350 -193 -137 -124 -105 -92 -86 -74 -111 -80 -40 -67 -47 -33 - // 248: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec index d649ae43..03fe6bf3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec @@ -9,211 +9,4 @@ public abstract class Super implements Face { public void run(int var1) { System.out.println(d[var1 ^ 25940]); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0e78\u0e75\u0019\u001eᅵ<" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 1 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 7 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 7 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 4 - // 029: swap - // 02a: bipush 1 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 1 - // 02f: swap - // 030: bipush 4 - // 031: caload - // 032: castore - // 033: castore - // 034: goto 155 - // 037: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03a: bipush 0 - // 03b: aaload - // 03c: astore 4 - // 03e: aload 4 - // 040: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 043: invokevirtual java/lang/String.hashCode ()I - // 046: ldc 65535 - // 048: iand - // 049: istore 5 - // 04b: aload 4 - // 04d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 050: invokevirtual java/lang/String.toCharArray ()[C - // 053: astore 6 - // 055: aload 0 - // 056: iload 1 - // 057: iinc 1 1 - // 05a: caload - // 05b: sipush 221 - // 05e: ixor - // 05f: iload 5 - // 061: ixor - // 062: anewarray 35 - // 065: astore 7 - // 067: bipush 0 - // 068: istore 8 - // 06a: aload 0 - // 06b: iload 1 - // 06c: iinc 1 1 - // 06f: caload - // 070: sipush 213 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: istore 2 - // 078: iload 2 - // 079: newarray 5 - // 07b: astore 9 - // 07d: bipush 0 - // 07e: istore 10 - // 080: iload 2 - // 081: ifle 136 - // 084: aload 0 - // 085: iload 1 - // 086: caload - // 087: istore 11 - // 089: aload 6 - // 08b: iload 1 - // 08c: aload 6 - // 08e: arraylength - // 08f: irem - // 090: caload - // 091: bipush 92 - // 093: ixor - // 094: lookupswitch 140 16 15 259 40 196 41 209 42 215 43 228 44 234 46 247 47 253 51 273 53 286 55 293 57 300 61 307 62 314 63 321 114 266 - // 120: aload 9 - // 122: iload 10 - // 124: iload 11 - // 126: castore - // 127: iinc 10 1 - // 12a: iinc 1 1 - // 12d: iinc 2 -1 - // 130: bipush 0 - // 131: istore 12 - // 133: goto 1df - // 136: aload 7 - // 138: iload 8 - // 13a: iinc 8 1 - // 13d: new java/lang/String - // 140: dup - // 141: aload 9 - // 143: invokespecial java/lang/String. ([C)V - // 146: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 149: aastore - // 14a: iload 1 - // 14b: aload 0 - // 14c: arraylength - // 14d: if_icmplt 06a - // 150: aload 7 - // 152: putstatic pack/tests/basics/overwirte/Super.d [Ljava/lang/String; - // 155: goto 228 - // 158: iload 11 - // 15a: bipush 112 - // 15c: ixor - // 15d: istore 11 - // 15f: bipush 1 - // 160: istore 12 - // 162: goto 1df - // 165: bipush 2 - // 166: istore 12 - // 168: goto 1df - // 16b: iload 11 - // 16d: bipush -107 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1df - // 178: bipush 3 - // 179: istore 12 - // 17b: goto 1df - // 17e: iload 11 - // 180: bipush 95 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1df - // 18b: bipush 4 - // 18c: istore 12 - // 18e: goto 1df - // 191: bipush 5 - // 192: istore 12 - // 194: goto 1df - // 197: bipush 6 - // 199: istore 12 - // 19b: goto 1df - // 19e: bipush 7 - // 1a0: istore 12 - // 1a2: goto 1df - // 1a5: iload 11 - // 1a7: bipush 39 - // 1a9: ixor - // 1aa: istore 11 - // 1ac: bipush 1 - // 1ad: istore 12 - // 1af: goto 1df - // 1b2: bipush 8 - // 1b4: istore 12 - // 1b6: goto 1df - // 1b9: bipush 9 - // 1bb: istore 12 - // 1bd: goto 1df - // 1c0: bipush 10 - // 1c2: istore 12 - // 1c4: goto 1df - // 1c7: bipush 11 - // 1c9: istore 12 - // 1cb: goto 1df - // 1ce: bipush 12 - // 1d0: istore 12 - // 1d2: goto 1df - // 1d5: bipush 13 - // 1d7: istore 12 - // 1d9: goto 1df - // 1dc: goto 037 - // 1df: iload 12 - // 1e1: tableswitch -353 0 13 -353 -193 -137 -124 -99 -86 -80 -118 -74 -47 -60 -40 -33 -26 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec index fc91625b..d9992adf 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec @@ -46,222 +46,4 @@ public class Task { var0.doAdd(); Exec.i += var1; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "メศᅤᅧ\uffd0ຌศム\u0012\u001f\u0012" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 3 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 3 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 5 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 5 - // 022: swap - // 023: bipush 9 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 9 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 9 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 8 - // 03c: swap - // 03d: bipush 15 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 15 - // 044: swap - // 045: bipush 8 - // 047: caload - // 048: castore - // 049: castore - // 04a: goto 161 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: bipush 39 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: anewarray 97 - // 07a: astore 7 - // 07c: bipush 0 - // 07d: istore 8 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: sipush 133 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: istore 2 - // 08d: iload 2 - // 08e: newarray 5 - // 090: astore 9 - // 092: bipush 0 - // 093: istore 10 - // 095: iload 2 - // 096: ifle 142 - // 099: aload 0 - // 09a: iload 1 - // 09b: caload - // 09c: istore 11 - // 09e: aload 6 - // 0a0: iload 1 - // 0a1: aload 6 - // 0a3: arraylength - // 0a4: irem - // 0a5: caload - // 0a6: bipush 99 - // 0a8: ixor - // 0a9: lookupswitch 131 15 0 187 1 200 2 213 6 226 8 232 10 238 13 257 15 263 16 270 17 277 19 284 22 291 23 298 55 305 77 244 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07f - // 15c: aload 7 - // 15e: putstatic pack/tests/basics/runable/Task.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush -125 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: iload 11 - // 173: bipush -63 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1e4 - // 17e: iload 11 - // 180: bipush 83 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1e4 - // 18b: bipush 2 - // 18c: istore 12 - // 18e: goto 1e4 - // 191: bipush 3 - // 192: istore 12 - // 194: goto 1e4 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1e4 - // 19d: iload 11 - // 19f: bipush -103 - // 1a1: ixor - // 1a2: istore 11 - // 1a4: bipush 1 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 5 - // 1ab: istore 12 - // 1ad: goto 1e4 - // 1b0: bipush 6 - // 1b2: istore 12 - // 1b4: goto 1e4 - // 1b7: bipush 7 - // 1b9: istore 12 - // 1bb: goto 1e4 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04d - // 1e4: iload 12 - // 1e6: tableswitch -19 0 12 -337 -186 -104 -91 -85 -130 -117 -54 -47 -79 -73 -33 -19 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec index 444f2a1e..e8121657 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec @@ -10,239 +10,4 @@ public class Solver { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ハຣᄚᅯ�\uffd9ຣ\uffe7ᅯໃノ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 3 - // 00b: swap - // 00c: bipush 8 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 8 - // 013: swap - // 014: bipush 3 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 10 - // 01c: swap - // 01d: bipush 7 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 7 - // 024: swap - // 025: bipush 10 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 9 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 9 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 5 - // 03d: swap - // 03e: bipush 21 - // 040: caload - // 041: aload 0 - // 042: dup - // 043: bipush 21 - // 045: swap - // 046: bipush 5 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 4 - // 04d: swap - // 04e: bipush 3 - // 04f: caload - // 050: aload 0 - // 051: dup - // 052: bipush 3 - // 053: swap - // 054: bipush 4 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 175 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 104 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: anewarray 38 - // 088: astore 7 - // 08a: bipush 0 - // 08b: istore 8 - // 08d: aload 0 - // 08e: iload 1 - // 08f: iinc 1 1 - // 092: caload - // 093: bipush 14 - // 095: ixor - // 096: iload 5 - // 098: ixor - // 099: istore 2 - // 09a: iload 2 - // 09b: newarray 5 - // 09d: astore 9 - // 09f: bipush 0 - // 0a0: istore 10 - // 0a2: iload 2 - // 0a3: ifle 156 - // 0a6: aload 0 - // 0a7: iload 1 - // 0a8: caload - // 0a9: istore 11 - // 0ab: aload 6 - // 0ad: iload 1 - // 0ae: aload 6 - // 0b0: arraylength - // 0b1: irem - // 0b2: caload - // 0b3: bipush 113 - // 0b5: ixor - // 0b6: lookupswitch 138 16 1 194 2 207 3 226 4 239 5 245 7 251 16 257 18 270 19 277 20 284 24 291 26 298 29 305 30 312 34 213 95 319 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 1ff - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 08d - // 170: aload 7 - // 172: putstatic pack/tests/basics/sub/Solver.d [Ljava/lang/String; - // 175: goto 248 - // 178: iload 11 - // 17a: bipush -39 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1ff - // 185: bipush 2 - // 186: istore 12 - // 188: goto 1ff - // 18b: iload 11 - // 18d: bipush -76 - // 18f: ixor - // 190: istore 11 - // 192: bipush 1 - // 193: istore 12 - // 195: goto 1ff - // 198: iload 11 - // 19a: bipush -107 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 1ff - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 1ff - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 1ff - // 1b1: bipush 5 - // 1b2: istore 12 - // 1b4: goto 1ff - // 1b7: iload 11 - // 1b9: bipush -10 - // 1bb: ixor - // 1bc: istore 11 - // 1be: bipush 1 - // 1bf: istore 12 - // 1c1: goto 1ff - // 1c4: bipush 6 - // 1c6: istore 12 - // 1c8: goto 1ff - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 1ff - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 1ff - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 1ff - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 1ff - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 1ff - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 1ff - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 1ff - // 1fc: goto 05b - // 1ff: iload 12 - // 201: tableswitch -124 0 13 -351 -193 -137 -118 -105 -124 -74 -80 -86 -47 -40 -33 -26 -92 - // 248: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec index 69a782a3..2f8fc94c 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec @@ -1,7 +1,7 @@ package pack.tests.bench; public class Calc { - public static int count; + public static int count = 0; public int BRANCHLOCK_DOT_NET_DEMO; public Calc(int var1) { @@ -49,232 +49,4 @@ public class Calc { count++; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄇຶ;ᅠຶᅢᆱຳ゚ᅧᅯヌ\u0ef0ᄉຳ?テ8\uffc0b;ボຕ\ufff3ハ£テ\ufff3フヨンᆰ(\uffc1ᅣ)ホ59ᅰᅴ(ᆰᅮᅧ\ufff8ᅦ\uffc0ホᅰᅲᄡᄏ{ິາ\u0019ᅬ69フホ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 24 - // 00c: swap - // 00d: bipush 29 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 29 - // 014: swap - // 015: bipush 24 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 15 - // 01e: swap - // 01f: bipush 14 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 14 - // 026: swap - // 027: bipush 15 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 12 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 12 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 45 - // 040: swap - // 041: bipush 70 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 70 - // 048: swap - // 049: bipush 45 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: aload 0 - // 04f: dup - // 050: bipush 12 - // 052: swap - // 053: bipush 44 - // 055: caload - // 056: aload 0 - // 057: dup - // 058: bipush 44 - // 05a: swap - // 05b: bipush 12 - // 05d: caload - // 05e: castore - // 05f: castore - // 060: goto 165 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: bipush 94 - // 089: ixor - // 08a: iload 5 - // 08c: ixor - // 08d: anewarray 73 - // 090: astore 7 - // 092: bipush 0 - // 093: istore 8 - // 095: aload 0 - // 096: iload 1 - // 097: iinc 1 1 - // 09a: caload - // 09b: bipush 29 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 146 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: bipush 99 - // 0bd: ixor - // 0be: lookupswitch 114 13 0 170 1 189 2 202 6 215 8 228 11 234 13 246 15 253 16 260 19 267 23 274 32 183 77 240 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1da - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 095 - // 160: aload 7 - // 162: putstatic pack/tests/bench/Calc.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush 90 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: bipush 2 - // 176: istore 12 - // 178: goto 1da - // 17b: iload 11 - // 17d: bipush -74 - // 17f: ixor - // 180: istore 11 - // 182: bipush 1 - // 183: istore 12 - // 185: goto 1da - // 188: iload 11 - // 18a: bipush -82 - // 18c: ixor - // 18d: istore 11 - // 18f: bipush 1 - // 190: istore 12 - // 192: goto 1da - // 195: iload 11 - // 197: bipush -40 - // 199: ixor - // 19a: istore 11 - // 19c: bipush 1 - // 19d: istore 12 - // 19f: goto 1da - // 1a2: bipush 3 - // 1a3: istore 12 - // 1a5: goto 1da - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 063 - // 1da: iload 12 - // 1dc: tableswitch -71 0 10 -306 -172 -116 -71 -84 -97 -58 -103 -52 -46 -26 - // 218: bipush 0 - // 219: putstatic pack/tests/bench/Calc.count I - // 21c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec index a292c37c..47859ad4 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec @@ -6,7 +6,7 @@ public class annoe { @anno( val = "PASS" ) - private static final String fail; + private static final String fail = "WHAT"; public int BRANCHLOCK_DOT_NET_DEMO; public annoe(int var1) { @@ -33,218 +33,4 @@ public class annoe { public void dov() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "&ษ\u0eeeᅳ.ᅲษ0ᅮ33" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 9 - // 00c: swap - // 00d: bipush 0 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 0 - // 012: swap - // 013: bipush 9 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 2 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 2 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 0 - // 029: swap - // 02a: bipush 16 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 16 - // 031: swap - // 032: bipush 0 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 2 - // 039: swap - // 03a: bipush 7 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 7 - // 041: swap - // 042: bipush 2 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 14d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: bipush 69 - // 06f: ixor - // 070: iload 5 - // 072: ixor - // 073: anewarray 54 - // 076: astore 7 - // 078: bipush 0 - // 079: istore 8 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 132 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 12e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: bipush 45 - // 0a4: ixor - // 0a5: lookupswitch 115 13 3 197 65 171 66 184 67 210 70 223 72 229 75 235 76 241 78 247 89 254 93 261 94 268 95 275 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c2 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07b - // 148: aload 7 - // 14a: putstatic pack/tests/reflects/annot/annoe.d [Ljava/lang/String; - // 14d: goto 200 - // 150: iload 11 - // 152: bipush -30 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 1c2 - // 15d: iload 11 - // 15f: bipush 117 - // 161: ixor - // 162: istore 11 - // 164: bipush 1 - // 165: istore 12 - // 167: goto 1c2 - // 16a: iload 11 - // 16c: bipush 103 - // 16e: ixor - // 16f: istore 11 - // 171: bipush 1 - // 172: istore 12 - // 174: goto 1c2 - // 177: iload 11 - // 179: bipush -101 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1c2 - // 184: bipush 2 - // 185: istore 12 - // 187: goto 1c2 - // 18a: bipush 3 - // 18b: istore 12 - // 18d: goto 1c2 - // 190: bipush 4 - // 191: istore 12 - // 193: goto 1c2 - // 196: bipush 5 - // 197: istore 12 - // 199: goto 1c2 - // 19c: bipush 6 - // 19e: istore 12 - // 1a0: goto 1c2 - // 1a3: bipush 7 - // 1a5: istore 12 - // 1a7: goto 1c2 - // 1aa: bipush 8 - // 1ac: istore 12 - // 1ae: goto 1c2 - // 1b1: bipush 9 - // 1b3: istore 12 - // 1b5: goto 1c2 - // 1b8: bipush 10 - // 1ba: istore 12 - // 1bc: goto 1c2 - // 1bf: goto 049 - // 1c2: iload 12 - // 1c4: tableswitch -307 0 10 -307 -172 -77 -103 -90 -52 -58 -64 -40 -46 -33 - // 200: ldc "WHAT" - // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; - // 205: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec index 3746aff6..d31e9068 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec @@ -19,202 +19,4 @@ public class annot { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ฐฤ\u001cツ\u0016" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 0 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 1 - // 019: swap - // 01a: bipush 9 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 9 - // 021: swap - // 022: bipush 1 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 2 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 2 - // 031: caload - // 032: castore - // 033: castore - // 034: goto 13d - // 037: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03a: bipush 0 - // 03b: aaload - // 03c: astore 4 - // 03e: aload 4 - // 040: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 043: invokevirtual java/lang/String.hashCode ()I - // 046: ldc 65535 - // 048: iand - // 049: istore 5 - // 04b: aload 4 - // 04d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 050: invokevirtual java/lang/String.toCharArray ()[C - // 053: astore 6 - // 055: aload 0 - // 056: iload 1 - // 057: iinc 1 1 - // 05a: caload - // 05b: sipush 184 - // 05e: ixor - // 05f: iload 5 - // 061: ixor - // 062: anewarray 42 - // 065: astore 7 - // 067: bipush 0 - // 068: istore 8 - // 06a: aload 0 - // 06b: iload 1 - // 06c: iinc 1 1 - // 06f: caload - // 070: sipush 142 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: istore 2 - // 078: iload 2 - // 079: newarray 5 - // 07b: astore 9 - // 07d: bipush 0 - // 07e: istore 10 - // 080: iload 2 - // 081: ifle 11e - // 084: aload 0 - // 085: iload 1 - // 086: caload - // 087: istore 11 - // 089: aload 6 - // 08b: iload 1 - // 08c: aload 6 - // 08e: arraylength - // 08f: irem - // 090: caload - // 091: sipush 210 - // 094: ixor - // 095: lookupswitch 115 13 160 171 161 184 162 197 166 210 177 223 179 229 180 235 183 241 185 247 188 261 189 268 190 275 252 254 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1b2 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 06a - // 138: aload 7 - // 13a: putstatic pack/tests/reflects/annot/annot.d [Ljava/lang/String; - // 13d: goto 1f0 - // 140: iload 11 - // 142: bipush 16 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1b2 - // 14d: iload 11 - // 14f: bipush -25 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1b2 - // 15a: iload 11 - // 15c: bipush -52 - // 15e: ixor - // 15f: istore 11 - // 161: bipush 1 - // 162: istore 12 - // 164: goto 1b2 - // 167: iload 11 - // 169: bipush 101 - // 16b: ixor - // 16c: istore 11 - // 16e: bipush 1 - // 16f: istore 12 - // 171: goto 1b2 - // 174: bipush 2 - // 175: istore 12 - // 177: goto 1b2 - // 17a: bipush 3 - // 17b: istore 12 - // 17d: goto 1b2 - // 180: bipush 4 - // 181: istore 12 - // 183: goto 1b2 - // 186: bipush 5 - // 187: istore 12 - // 189: goto 1b2 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1b2 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1b2 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1b2 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1b2 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1b2 - // 1af: goto 037 - // 1b2: iload 12 - // 1b4: tableswitch -103 0 10 -308 -172 -77 -103 -64 -58 -46 -52 -116 -90 -40 - // 1f0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec index 720a1125..5210fd38 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec @@ -16,222 +16,4 @@ public class Count { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0003\u0efc\u0ef4\u0012ᄉᄐ\u0efcᄈᆰタメ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 5 - // 00b: swap - // 00c: bipush 9 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 9 - // 013: swap - // 014: bipush 5 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 8 - // 01c: swap - // 01d: bipush 10 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 10 - // 024: swap - // 025: bipush 8 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 2 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 2 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 10 - // 03c: swap - // 03d: bipush 13 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 13 - // 044: swap - // 045: bipush 10 - // 047: caload - // 048: castore - // 049: castore - // 04a: goto 161 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: bipush 95 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: anewarray 51 - // 07a: astore 7 - // 07c: bipush 0 - // 07d: istore 8 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: bipush 81 - // 087: ixor - // 088: iload 5 - // 08a: ixor - // 08b: istore 2 - // 08c: iload 2 - // 08d: newarray 5 - // 08f: astore 9 - // 091: bipush 0 - // 092: istore 10 - // 094: iload 2 - // 095: ifle 142 - // 098: aload 0 - // 099: iload 1 - // 09a: caload - // 09b: istore 11 - // 09d: aload 6 - // 09f: iload 1 - // 0a0: aload 6 - // 0a2: arraylength - // 0a3: irem - // 0a4: caload - // 0a5: sipush 211 - // 0a8: ixor - // 0a9: lookupswitch 131 15 144 251 160 187 161 200 163 213 166 219 167 232 176 245 178 257 181 263 182 270 184 277 188 284 189 298 191 305 253 291 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07f - // 15c: aload 7 - // 15e: putstatic pack/tests/reflects/counter/Count.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush -11 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: iload 11 - // 173: bipush 83 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1e4 - // 17e: bipush 2 - // 17f: istore 12 - // 181: goto 1e4 - // 184: iload 11 - // 186: bipush -26 - // 188: ixor - // 189: istore 11 - // 18b: bipush 1 - // 18c: istore 12 - // 18e: goto 1e4 - // 191: iload 11 - // 193: bipush -45 - // 195: ixor - // 196: istore 11 - // 198: bipush 1 - // 199: istore 12 - // 19b: goto 1e4 - // 19e: bipush 3 - // 19f: istore 12 - // 1a1: goto 1e4 - // 1a4: bipush 4 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 5 - // 1ab: istore 12 - // 1ad: goto 1e4 - // 1b0: bipush 6 - // 1b2: istore 12 - // 1b4: goto 1e4 - // 1b7: bipush 7 - // 1b9: istore 12 - // 1bb: goto 1e4 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04d - // 1e4: iload 12 - // 1e6: tableswitch -98 0 12 -338 -186 -117 -104 -85 -98 -66 -130 -72 -40 -60 -33 -47 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec index fb44e0f8..7aa27758 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec @@ -37,222 +37,4 @@ public class FTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ユໝໝᄁ\ufffeห→↓¦ᄑ\u0eda\u001a+\uffc9໘\u0012" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 6 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 6 - // 013: swap - // 014: bipush 2 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 13 - // 01c: swap - // 01d: bipush 0 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 0 - // 022: swap - // 023: bipush 13 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 3 - // 039: swap - // 03a: bipush 27 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 27 - // 041: swap - // 042: bipush 3 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 15d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: sipush 134 - // 070: ixor - // 071: iload 5 - // 073: ixor - // 074: anewarray 93 - // 077: astore 7 - // 079: bipush 0 - // 07a: istore 8 - // 07c: aload 0 - // 07d: iload 1 - // 07e: iinc 1 1 - // 081: caload - // 082: bipush 112 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 13e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: sipush 140 - // 0a5: ixor - // 0a6: lookupswitch 130 15 162 199 202 256 216 283 224 186 229 212 231 218 232 231 233 237 234 250 237 262 239 269 248 276 252 290 254 297 255 304 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1e0 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 07c - // 158: aload 7 - // 15a: putstatic pack/tests/reflects/field/FTest.d [Ljava/lang/String; - // 15d: goto 224 - // 160: iload 11 - // 162: bipush -83 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1e0 - // 16d: iload 11 - // 16f: bipush -15 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1e0 - // 17a: bipush 2 - // 17b: istore 12 - // 17d: goto 1e0 - // 180: iload 11 - // 182: bipush -67 - // 184: ixor - // 185: istore 11 - // 187: bipush 1 - // 188: istore 12 - // 18a: goto 1e0 - // 18d: bipush 3 - // 18e: istore 12 - // 190: goto 1e0 - // 193: iload 11 - // 195: bipush 123 - // 197: ixor - // 198: istore 11 - // 19a: bipush 1 - // 19b: istore 12 - // 19d: goto 1e0 - // 1a0: bipush 4 - // 1a1: istore 12 - // 1a3: goto 1e0 - // 1a6: bipush 5 - // 1a7: istore 12 - // 1a9: goto 1e0 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1e0 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1e0 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1e0 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1e0 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1e0 - // 1cf: bipush 11 - // 1d1: istore 12 - // 1d3: goto 1e0 - // 1d6: bipush 12 - // 1d8: istore 12 - // 1da: goto 1e0 - // 1dd: goto 049 - // 1e0: iload 12 - // 1e2: tableswitch -40 0 12 -337 -186 -117 -98 -104 -66 -85 -79 -130 -40 -33 -60 -26 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec index 2ef8f3e0..608ab5bc 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec @@ -12,228 +12,4 @@ public class LRun { Object var4 = var3.newInstance(); var3.getMethod("run").invoke(var4); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "Tๅ\r-EM\bRCHR\u000e\b\uffff│@\u0011CER\ufffe\b£¬G\u0019CSS\u0000\u0018\u0018\ufffe\t\u0e66ສTU" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 36 - // 00c: swap - // 00d: bipush 27 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 27 - // 014: swap - // 015: bipush 36 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 37 - // 01e: swap - // 01f: bipush 9 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 9 - // 026: swap - // 027: bipush 37 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 35 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 35 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 32 - // 040: swap - // 041: bipush 64 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 64 - // 048: swap - // 049: bipush 32 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: goto 175 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: bipush 1 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: anewarray 44 - // 07d: astore 7 - // 07f: bipush 0 - // 080: istore 8 - // 082: aload 0 - // 083: iload 1 - // 084: iinc 1 1 - // 087: caload - // 088: sipush 204 - // 08b: ixor - // 08c: iload 5 - // 08e: ixor - // 08f: istore 2 - // 090: iload 2 - // 091: newarray 5 - // 093: astore 9 - // 095: bipush 0 - // 096: istore 10 - // 098: iload 2 - // 099: ifle 156 - // 09c: aload 0 - // 09d: iload 1 - // 09e: caload - // 09f: istore 11 - // 0a1: aload 6 - // 0a3: iload 1 - // 0a4: aload 6 - // 0a6: arraylength - // 0a7: irem - // 0a8: caload - // 0a9: sipush 134 - // 0ac: ixor - // 0ad: lookupswitch 147 17 168 254 202 286 212 321 224 203 226 216 227 222 229 235 231 248 232 260 233 273 234 279 237 293 242 300 243 307 244 314 245 328 246 335 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 206 - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 082 - // 170: aload 7 - // 172: putstatic pack/tests/reflects/loader/LRun.d [Ljava/lang/String; - // 175: goto 254 - // 178: iload 11 - // 17a: bipush -115 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 206 - // 185: bipush 2 - // 186: istore 12 - // 188: goto 206 - // 18b: iload 11 - // 18d: bipush 38 - // 18f: ixor - // 190: istore 11 - // 192: bipush 1 - // 193: istore 12 - // 195: goto 206 - // 198: iload 11 - // 19a: bipush 125 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 206 - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 206 - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 206 - // 1b1: iload 11 - // 1b3: bipush 76 - // 1b5: ixor - // 1b6: istore 11 - // 1b8: bipush 1 - // 1b9: istore 12 - // 1bb: goto 206 - // 1be: bipush 5 - // 1bf: istore 12 - // 1c1: goto 206 - // 1c4: bipush 6 - // 1c6: istore 12 - // 1c8: goto 206 - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 206 - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 206 - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 206 - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 206 - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 206 - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 206 - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 206 - // 1fc: bipush 14 - // 1fe: istore 12 - // 200: goto 206 - // 203: goto 051 - // 206: iload 12 - // 208: tableswitch -112 0 14 -368 -200 -144 -131 -125 -93 -99 -74 -87 -61 -54 -112 -33 -47 -26 - // 254: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec index 52ab8b72..c5b4a478 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec @@ -24,194 +24,4 @@ public class LTest { public void run(int var1) { System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream(d[var1 ^ 12433]), (var1 | var1 ^ 32405) & (var1 ^ 24447)))); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "6\u0efb\u000bᅮํᅡ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 3 - // 019: swap - // 01a: bipush 7 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 7 - // 021: swap - // 022: bipush 3 - // 023: caload - // 024: castore - // 025: castore - // 026: goto 13d - // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 02c: bipush 0 - // 02d: aaload - // 02e: astore 4 - // 030: aload 4 - // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 035: invokevirtual java/lang/String.hashCode ()I - // 038: ldc 65535 - // 03a: iand - // 03b: istore 5 - // 03d: aload 4 - // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 042: invokevirtual java/lang/String.toCharArray ()[C - // 045: astore 6 - // 047: aload 0 - // 048: iload 1 - // 049: iinc 1 1 - // 04c: caload - // 04d: sipush 229 - // 050: ixor - // 051: iload 5 - // 053: ixor - // 054: anewarray 41 - // 057: astore 7 - // 059: bipush 0 - // 05a: istore 8 - // 05c: aload 0 - // 05d: iload 1 - // 05e: iinc 1 1 - // 061: caload - // 062: bipush 86 - // 064: ixor - // 065: iload 5 - // 067: ixor - // 068: istore 2 - // 069: iload 2 - // 06a: newarray 5 - // 06c: astore 9 - // 06e: bipush 0 - // 06f: istore 10 - // 071: iload 2 - // 072: ifle 11e - // 075: aload 0 - // 076: iload 1 - // 077: caload - // 078: istore 11 - // 07a: aload 6 - // 07c: iload 1 - // 07d: aload 6 - // 07f: arraylength - // 080: irem - // 081: caload - // 082: sipush 217 - // 085: ixor - // 086: lookupswitch 130 15 141 231 149 249 169 186 170 199 171 212 173 218 178 237 181 243 182 262 184 276 186 283 188 290 189 297 191 304 247 269 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1c0 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 05c - // 138: aload 7 - // 13a: putstatic pack/tests/reflects/loader/LTest.d [Ljava/lang/String; - // 13d: goto 204 - // 140: iload 11 - // 142: bipush -52 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1c0 - // 14d: iload 11 - // 14f: bipush 101 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1c0 - // 15a: bipush 2 - // 15b: istore 12 - // 15d: goto 1c0 - // 160: iload 11 - // 162: bipush -106 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1c0 - // 16d: bipush 3 - // 16e: istore 12 - // 170: goto 1c0 - // 173: bipush 4 - // 174: istore 12 - // 176: goto 1c0 - // 179: bipush 5 - // 17a: istore 12 - // 17c: goto 1c0 - // 17f: iload 11 - // 181: bipush 95 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 1c0 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1c0 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1c0 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1c0 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1c0 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1c0 - // 1af: bipush 11 - // 1b1: istore 12 - // 1b3: goto 1c0 - // 1b6: bipush 12 - // 1b8: istore 12 - // 1ba: goto 1c0 - // 1bd: goto 029 - // 1c0: iload 12 - // 1c2: tableswitch -79 0 12 -337 -186 -130 -104 -98 -85 -79 -117 -54 -67 -40 -73 -33 - // 204: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec index d6363bc3..6d4385f3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec @@ -36,233 +36,4 @@ public class Loader extends ClassLoader { byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class"), 31470); return this.defineClass(var1, var2, 0, var2.length); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "K๕K,ᅲ๖๕9^:ᅲ\u0e002ᄃ\u0006){q\u001e" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 14 - // 00c: swap - // 00d: bipush 13 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 13 - // 014: swap - // 015: bipush 14 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 5 - // 01d: swap - // 01e: bipush 0 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 0 - // 023: swap - // 024: bipush 5 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 11 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 11 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 6 - // 03c: swap - // 03d: bipush 22 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 22 - // 044: swap - // 045: bipush 6 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 11 - // 04e: swap - // 04f: bipush 2 - // 050: caload - // 051: aload 0 - // 052: dup - // 053: bipush 2 - // 054: swap - // 055: bipush 11 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 169 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 170 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: anewarray 40 - // 08b: astore 7 - // 08d: bipush 0 - // 08e: istore 8 - // 090: aload 0 - // 091: iload 1 - // 092: iinc 1 1 - // 095: caload - // 096: sipush 248 - // 099: ixor - // 09a: iload 5 - // 09c: ixor - // 09d: istore 2 - // 09e: iload 2 - // 09f: newarray 5 - // 0a1: astore 9 - // 0a3: bipush 0 - // 0a4: istore 10 - // 0a6: iload 2 - // 0a7: ifle 14a - // 0aa: aload 0 - // 0ab: iload 1 - // 0ac: caload - // 0ad: istore 11 - // 0af: aload 6 - // 0b1: iload 1 - // 0b2: aload 6 - // 0b4: arraylength - // 0b5: irem - // 0b6: caload - // 0b7: sipush 150 - // 0ba: ixor - // 0bb: lookupswitch 121 14 184 254 218 281 226 177 228 190 229 203 230 216 240 222 242 228 243 234 245 240 247 247 249 267 250 274 253 288 - // 134: aload 9 - // 136: iload 10 - // 138: iload 11 - // 13a: castore - // 13b: iinc 10 1 - // 13e: iinc 1 1 - // 141: iinc 2 -1 - // 144: bipush 0 - // 145: istore 12 - // 147: goto 1e5 - // 14a: aload 7 - // 14c: iload 8 - // 14e: iinc 8 1 - // 151: new java/lang/String - // 154: dup - // 155: aload 9 - // 157: invokespecial java/lang/String. ([C)V - // 15a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15d: aastore - // 15e: iload 1 - // 15f: aload 0 - // 160: arraylength - // 161: if_icmplt 090 - // 164: aload 7 - // 166: putstatic pack/tests/reflects/loader/Loader.d [Ljava/lang/String; - // 169: goto 224 - // 16c: iload 11 - // 16e: bipush 31 - // 170: ixor - // 171: istore 11 - // 173: bipush 1 - // 174: istore 12 - // 176: goto 1e5 - // 179: iload 11 - // 17b: bipush -61 - // 17d: ixor - // 17e: istore 11 - // 180: bipush 1 - // 181: istore 12 - // 183: goto 1e5 - // 186: iload 11 - // 188: bipush 105 - // 18a: ixor - // 18b: istore 11 - // 18d: bipush 1 - // 18e: istore 12 - // 190: goto 1e5 - // 193: bipush 2 - // 194: istore 12 - // 196: goto 1e5 - // 199: bipush 3 - // 19a: istore 12 - // 19c: goto 1e5 - // 19f: bipush 4 - // 1a0: istore 12 - // 1a2: goto 1e5 - // 1a5: bipush 5 - // 1a6: istore 12 - // 1a8: goto 1e5 - // 1ab: bipush 6 - // 1ad: istore 12 - // 1af: goto 1e5 - // 1b2: bipush 7 - // 1b4: istore 12 - // 1b6: goto 1e5 - // 1b9: iload 11 - // 1bb: bipush -124 - // 1bd: ixor - // 1be: istore 11 - // 1c0: bipush 1 - // 1c1: istore 12 - // 1c3: goto 1e5 - // 1c6: bipush 8 - // 1c8: istore 12 - // 1ca: goto 1e5 - // 1cd: bipush 9 - // 1cf: istore 12 - // 1d1: goto 1e5 - // 1d4: bipush 10 - // 1d6: istore 12 - // 1d8: goto 1e5 - // 1db: bipush 11 - // 1dd: istore 12 - // 1df: goto 1e5 - // 1e2: goto 05d - // 1e5: iload 12 - // 1e7: tableswitch -97 0 11 -321 -179 -123 -97 -78 -84 -66 -72 -60 -110 -46 -53 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec index 1139459c..03821404 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec @@ -25,230 +25,4 @@ public class Accesor { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "qລ}YK↓ຼh\uffde{sz!}ๅ!ᄆミjメ39}{!ᄆ■'}ᅩzᄂqᆴ}+ຼzh\uffde{sz!}ᄆ!ᄆミj}39}{!ᄆ■'}ᅩzᄂᄆᆴ}\u0ea4\uffd9 ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 094 - // 160: aload 7 - // 162: putstatic pack/tests/reflects/res/Accesor.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush 24 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: iload 11 - // 177: bipush -62 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1da - // 182: iload 11 - // 184: bipush -65 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1da - // 18f: bipush 2 - // 190: istore 12 - // 192: goto 1da - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1da - // 19b: iload 11 - // 19d: bipush 85 - // 19f: ixor - // 1a0: istore 11 - // 1a2: bipush 1 - // 1a3: istore 12 - // 1a5: goto 1da - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 061 - // 1da: iload 12 - // 1dc: tableswitch -65 0 10 -307 -172 -116 -77 -103 -65 -71 -52 -40 -46 -90 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec index b462639f..a025cb1e 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec @@ -14,213 +14,4 @@ public class Tracer { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "tf\u0e83\ufff8wງ\u0e83モtワh" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 2 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 2 - // 011: swap - // 012: bipush 1 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 8 - // 01a: swap - // 01b: bipush 2 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 2 - // 020: swap - // 021: bipush 8 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 5 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 5 - // 031: caload - // 032: castore - // 033: castore - // 034: aload 0 - // 035: dup - // 036: bipush 0 - // 037: swap - // 038: bipush 20 - // 03a: caload - // 03b: aload 0 - // 03c: dup - // 03d: bipush 20 - // 03f: swap - // 040: bipush 0 - // 041: caload - // 042: castore - // 043: castore - // 044: goto 141 - // 047: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04a: bipush 0 - // 04b: aaload - // 04c: astore 4 - // 04e: aload 4 - // 050: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 053: invokevirtual java/lang/String.hashCode ()I - // 056: ldc 65535 - // 058: iand - // 059: istore 5 - // 05b: aload 4 - // 05d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 060: invokevirtual java/lang/String.toCharArray ()[C - // 063: astore 6 - // 065: aload 0 - // 066: iload 1 - // 067: iinc 1 1 - // 06a: caload - // 06b: bipush 44 - // 06d: ixor - // 06e: iload 5 - // 070: ixor - // 071: anewarray 43 - // 074: astore 7 - // 076: bipush 0 - // 077: istore 8 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 46 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: istore 2 - // 086: iload 2 - // 087: newarray 5 - // 089: astore 9 - // 08b: bipush 0 - // 08c: istore 10 - // 08e: iload 2 - // 08f: ifle 122 - // 092: aload 0 - // 093: iload 1 - // 094: caload - // 095: istore 11 - // 097: aload 6 - // 099: iload 1 - // 09a: aload 6 - // 09c: arraylength - // 09d: irem - // 09e: caload - // 09f: bipush 67 - // 0a1: ixor - // 0a2: lookupswitch 106 12 23 238 32 162 34 194 37 213 38 219 40 245 47 259 48 175 49 188 51 207 55 225 109 252 - // 10c: aload 9 - // 10e: iload 10 - // 110: iload 11 - // 112: castore - // 113: iinc 10 1 - // 116: iinc 1 1 - // 119: iinc 2 -1 - // 11c: bipush 0 - // 11d: istore 12 - // 11f: goto 1af - // 122: aload 7 - // 124: iload 8 - // 126: iinc 8 1 - // 129: new java/lang/String - // 12c: dup - // 12d: aload 9 - // 12f: invokespecial java/lang/String. ([C)V - // 132: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 135: aastore - // 136: iload 1 - // 137: aload 0 - // 138: arraylength - // 139: if_icmplt 079 - // 13c: aload 7 - // 13e: putstatic pack/tests/reflects/retrace/Tracer.d [Ljava/lang/String; - // 141: goto 1e8 - // 144: iload 11 - // 146: bipush 36 - // 148: ixor - // 149: istore 11 - // 14b: bipush 1 - // 14c: istore 12 - // 14e: goto 1af - // 151: iload 11 - // 153: bipush -43 - // 155: ixor - // 156: istore 11 - // 158: bipush 1 - // 159: istore 12 - // 15b: goto 1af - // 15e: bipush 2 - // 15f: istore 12 - // 161: goto 1af - // 164: iload 11 - // 166: bipush -71 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1af - // 171: bipush 3 - // 172: istore 12 - // 174: goto 1af - // 177: bipush 4 - // 178: istore 12 - // 17a: goto 1af - // 17d: bipush 5 - // 17e: istore 12 - // 180: goto 1af - // 183: iload 11 - // 185: bipush 39 - // 187: ixor - // 188: istore 11 - // 18a: bipush 1 - // 18b: istore 12 - // 18d: goto 1af - // 190: bipush 6 - // 192: istore 12 - // 194: goto 1af - // 197: bipush 7 - // 199: istore 12 - // 19b: goto 1af - // 19e: bipush 8 - // 1a0: istore 12 - // 1a2: goto 1af - // 1a5: bipush 9 - // 1a7: istore 12 - // 1a9: goto 1af - // 1ac: goto 047 - // 1af: iload 12 - // 1b1: tableswitch -64 0 9 -291 -165 -109 -96 -64 -77 -58 -52 -83 -46 - // 1e8: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec index 63924c08..26291b71 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec @@ -37,233 +37,4 @@ public class SecTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄊナᄇᄍ\u0ef7レフヘᄇヨᄀラ\u0ef5\uffde\ufff1゙\ufff1ニᄌナᆰ\u0ef9゙\fຎᄇ\u0ef9\uffd0ラ゚ᄒ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 5 - // 00b: swap - // 00c: bipush 30 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 30 - // 013: swap - // 014: bipush 5 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 4 - // 01b: swap - // 01c: bipush 1 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 1 - // 021: swap - // 022: bipush 4 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 24 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 24 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 27 - // 03a: swap - // 03b: bipush 33 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 33 - // 042: swap - // 043: bipush 27 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 6 - // 04c: swap - // 04d: bipush 0 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 0 - // 052: swap - // 053: bipush 6 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 165 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 35 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: anewarray 68 - // 088: astore 7 - // 08a: bipush 0 - // 08b: istore 8 - // 08d: aload 0 - // 08e: iload 1 - // 08f: iinc 1 1 - // 092: caload - // 093: bipush 84 - // 095: ixor - // 096: iload 5 - // 098: ixor - // 099: istore 2 - // 09a: iload 2 - // 09b: newarray 5 - // 09d: astore 9 - // 09f: bipush 0 - // 0a0: istore 10 - // 0a2: iload 2 - // 0a3: ifle 146 - // 0a6: aload 0 - // 0a7: iload 1 - // 0a8: caload - // 0a9: istore 11 - // 0ab: aload 6 - // 0ad: iload 1 - // 0ae: aload 6 - // 0b0: arraylength - // 0b1: irem - // 0b2: caload - // 0b3: bipush 105 - // 0b5: ixor - // 0b6: lookupswitch 122 14 0 178 2 191 8 210 10 216 12 222 16 228 25 235 26 248 27 262 28 269 29 276 58 255 61 283 71 204 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1e1 - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 08d - // 160: aload 7 - // 162: putstatic pack/tests/security/SecTest.d [Ljava/lang/String; - // 165: goto 220 - // 168: iload 11 - // 16a: bipush -7 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1e1 - // 175: iload 11 - // 177: bipush -42 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1e1 - // 182: bipush 2 - // 183: istore 12 - // 185: goto 1e1 - // 188: bipush 3 - // 189: istore 12 - // 18b: goto 1e1 - // 18e: bipush 4 - // 18f: istore 12 - // 191: goto 1e1 - // 194: bipush 5 - // 195: istore 12 - // 197: goto 1e1 - // 19a: bipush 6 - // 19c: istore 12 - // 19e: goto 1e1 - // 1a1: iload 11 - // 1a3: bipush -106 - // 1a5: ixor - // 1a6: istore 11 - // 1a8: bipush 1 - // 1a9: istore 12 - // 1ab: goto 1e1 - // 1ae: bipush 7 - // 1b0: istore 12 - // 1b2: goto 1e1 - // 1b5: bipush 8 - // 1b7: istore 12 - // 1b9: goto 1e1 - // 1bc: bipush 9 - // 1be: istore 12 - // 1c0: goto 1e1 - // 1c3: bipush 10 - // 1c5: istore 12 - // 1c7: goto 1e1 - // 1ca: bipush 11 - // 1cc: istore 12 - // 1ce: goto 1e1 - // 1d1: iload 11 - // 1d3: bipush 67 - // 1d5: ixor - // 1d6: istore 11 - // 1d8: bipush 1 - // 1d9: istore 12 - // 1db: goto 1e1 - // 1de: goto 05b - // 1e1: iload 12 - // 1e3: tableswitch -179 0 11 -321 -179 -110 -97 -91 -123 -79 -73 -53 -66 -46 -85 - // 220: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec index b24c7fb8..edeb7011 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec @@ -14,222 +14,4 @@ public class Sman extends SecurityManager { throw new SecurityException("HOOKED"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ユ\u0ee0メ\u0edabムᆴY\u0ee0tUx゚フP" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 11 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 11 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 3 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 3 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 1 - // 03b: swap - // 03c: bipush 20 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 20 - // 043: swap - // 044: bipush 1 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 15d - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 113 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 23 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 79 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 13e - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: bipush 34 - // 0a5: ixor - // 0a6: lookupswitch 130 15 12 237 65 186 67 199 71 212 73 225 75 231 76 243 79 249 80 256 81 263 82 283 86 290 87 297 91 304 113 276 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1e0 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 07d - // 158: aload 7 - // 15a: putstatic pack/tests/security/Sman.d [Ljava/lang/String; - // 15d: goto 224 - // 160: iload 11 - // 162: bipush -38 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1e0 - // 16d: iload 11 - // 16f: bipush 26 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1e0 - // 17a: iload 11 - // 17c: bipush -21 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1e0 - // 187: bipush 2 - // 188: istore 12 - // 18a: goto 1e0 - // 18d: bipush 3 - // 18e: istore 12 - // 190: goto 1e0 - // 193: bipush 4 - // 194: istore 12 - // 196: goto 1e0 - // 199: bipush 5 - // 19a: istore 12 - // 19c: goto 1e0 - // 19f: bipush 6 - // 1a1: istore 12 - // 1a3: goto 1e0 - // 1a6: bipush 7 - // 1a8: istore 12 - // 1aa: goto 1e0 - // 1ad: iload 11 - // 1af: bipush 29 - // 1b1: ixor - // 1b2: istore 11 - // 1b4: bipush 1 - // 1b5: istore 12 - // 1b7: goto 1e0 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1e0 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1e0 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1e0 - // 1cf: bipush 11 - // 1d1: istore 12 - // 1d3: goto 1e0 - // 1d6: bipush 12 - // 1d8: istore 12 - // 1da: goto 1e0 - // 1dd: goto 04b - // 1e0: iload 12 - // 1e2: tableswitch -40 0 12 -336 -186 -130 -117 -85 -91 -73 -104 -53 -40 -67 -33 -26 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec index 9dbb78ab..c7f0eed1 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec @@ -1,7 +1,7 @@ package pack.tests.bench; public class Calc { - public static int count; + public static int count = 0; public static void runAll() { long start = System.currentTimeMillis(); diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec index 7e185aad..e1e5715f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec @@ -6,7 +6,7 @@ public class annoe { @anno( val = "PASS" ) - private static final String fail; + private static final String fail = "WHAT"; @anno public void dox() throws Exception { diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec new file mode 100644 index 00000000..a3aff8d8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec @@ -0,0 +1,4 @@ +package pack; + +public class Clazz { +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec new file mode 100644 index 00000000..389de3f2 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec @@ -0,0 +1,157 @@ +package pack; + +import java.io.File; +import pack.tests.basics.accu.Digi; +import pack.tests.basics.ctrl.Ctrl; +import pack.tests.basics.inner.Test; +import pack.tests.basics.overwirte.Sub; +import pack.tests.basics.runable.Task; +import pack.tests.basics.sub.Solver; +import pack.tests.bench.Calc; +import pack.tests.reflects.annot.annot; +import pack.tests.reflects.counter.Count; +import pack.tests.reflects.field.FTest; +import pack.tests.reflects.loader.LRun; +import pack.tests.reflects.res.Accesor; +import pack.tests.reflects.retrace.Tracer; +import pack.tests.security.SecTest; + +public class Main { + public static void main(String[] var0) throws Exception { + System.out.println("Obfuscator Test Program"); + System.out.println("Author: huzpsb"); + System.out.println("Version: 1.0r"); + System.out.println("Link: https://github.com/huzpsb/JavaObfuscatorTest"); + File var1 = new File("IK"); + if (!var1.exists()) { + var1.createNewFile(); + System.out.println(); + System.out.println("[HINT]"); + System.out.println("Only compatibility and efficiency are tested here!"); + System.out.println("For most users, pass all of the basics means the obfuscator is good enough."); + System.out.println("The Test #2 is for SpringBoot and Android like environment."); + System.out.println("Choose wisely among strength, compatibility, efficiency, size, and price."); + System.out.println("[HINT]"); + System.out.println(); + } + + System.out.println("-------------Test #1: Basics-------------"); + System.out.print("Test 1.1: Inheritance "); + + try { + new Sub().run(); + } catch (Throwable var17) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.2: Cross "); + + try { + new Sub().run(); + } catch (Throwable var16) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.3: Throw "); + + try { + new Ctrl().run(); + } catch (Throwable var15) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.4: Accuracy "); + + try { + new Digi().run(); + } catch (Throwable var14) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.5: SubClass "); + + try { + new Solver(); + } catch (Throwable var13) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.6: Pool "); + + try { + new Task().run(); + } catch (Throwable var12) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.7: InnerClass "); + + try { + new Test().run(); + } catch (Throwable var11) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #2: Reflects-------------"); + System.out.print("Test 2.1: Counter "); + + try { + new Count().run(); + } catch (Throwable var10) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.2: Chinese 通过LMAO\b\b\b\b \n"); + System.out.print("Test 2.3: Resource "); + + try { + new Accesor().run(); + } catch (Throwable var9) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.4: Field "); + + try { + new FTest().run(); + } catch (Throwable var8) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.5: Loader "); + + try { + new LRun().run(); + } catch (Throwable var7) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.6: ReTrace "); + + try { + new Tracer().run(); + } catch (Throwable var6) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.7: Annotation "); + + try { + new annot().run(); + } catch (Throwable var5) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.8: Sec "); + + try { + new SecTest().run(); + } catch (Throwable var4) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #3: Efficiency-------------"); + Calc.runAll(); + System.out.println("-------------Tests r Finished-------------"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec new file mode 100644 index 00000000..e44e0973 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec @@ -0,0 +1,24 @@ +package pack.tests.basics.accu; + +public class Digi { + public void run() { + double var1 = 0.0; + int var3 = 0; + float var4 = 1.1F; + + do { + var1 += 1.0E-18; + } while (++var3 <= 100 && (float)var1 != 2.0E-17F); + + if (var3 == 20) { + if (++var4 == 2.4F) { + System.out.println("PASS"); + return; + } + + System.out.println("FAIL"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec new file mode 100644 index 00000000..41de7ada --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.cross; + +public abstract class Abst1 { + public abstract int add(int var1, int var2); + + public int mul(int a, int b) { + return a * b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec new file mode 100644 index 00000000..da16cc4b --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.cross; + +public interface Inte { + int mul(int var1, int var2); +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec new file mode 100644 index 00000000..a61980fc --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.cross; + +public class Top extends Abst1 implements Inte { + public void run() { + if (this.add(1, 2) == 3 && this.mul(2, 3) == 6) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + @Override + public int add(int a, int b) { + return a + b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec new file mode 100644 index 00000000..d453e3ce --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec @@ -0,0 +1,26 @@ +package pack.tests.basics.ctrl; + +public class Ctrl { + private String ret = "FAIL"; + + public void runt() { + if (!"a".equals("b")) { + throw new UnsupportedOperationException(); + } + } + + public void runf() { + this.runt(); + + try { + this.runt(); + this.ret = "FAIL"; + } catch (Exception var2) { + } + } + + public void run() { + this.runf(); + System.out.println(this.ret); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec new file mode 100644 index 00000000..48a15caf --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec @@ -0,0 +1,22 @@ +package pack.tests.basics.inner; + +public class Exec { + public int fuss = 1; + + public void addF() { + this.fuss += 2; + } + + public class Inner { + int i; + + public Inner(int p) { + this.i = p; + } + + public void doAdd() { + Exec.this.addF(); + Exec.this.fuss = Exec.this.fuss + this.i; + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec new file mode 100644 index 00000000..6595e67d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.inner; + +public class Test { + public void run() { + Exec var1 = new Exec(); + Exec.Inner var2 = var1.new Inner(3); + var2.doAdd(); + Exec.Inner var3 = var1.new Inner(100); + var3.doAdd(); + if (var1.fuss == 108) { + System.out.println("PASS"); + } else { + System.out.println("ERROR"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec new file mode 100644 index 00000000..a5876ace --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.overwirte; + +public interface Face { + String face(int var1); +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec new file mode 100644 index 00000000..2e3939a0 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec @@ -0,0 +1,13 @@ +package pack.tests.basics.overwirte; + +public class Sub extends Super { + @Override + public void run() { + System.out.println(this.face(1)); + } + + @Override + public String face(int var1) { + return var1 == 1 ? "PASS" : "FAIL"; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec new file mode 100644 index 00000000..f621220d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.overwirte; + +public abstract class Super implements Face { + public void run() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec new file mode 100644 index 00000000..815a4287 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec @@ -0,0 +1,15 @@ +package pack.tests.basics.runable; + +public class Exec { + public static int i = 1; + private int d; + + public Exec(int delta) { + this.d = delta; + } + + void doAdd() { + Thread.sleep(200L); + i = i + this.d; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec new file mode 100644 index 00000000..23401574 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class Pool { + public static ThreadPoolExecutor tpe = new ThreadPoolExecutor(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec new file mode 100644 index 00000000..d97e9ef4 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec @@ -0,0 +1,42 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.RejectedExecutionException; + +public class Task { + public void run() throws Exception { + Exec var1 = new Exec(2); + Exec var2 = new Exec(3); + Exec var3 = new Exec(100); + + try { + Pool.tpe.submit(var2::doAdd); + + try { + Thread.sleep(50L); + } catch (InterruptedException var6) { + } + + Pool.tpe.submit(() -> { + int var1x = Exec.i; + var1.doAdd(); + Exec.i += var1x; + }); + + try { + Thread.sleep(50L); + } catch (InterruptedException var5) { + } + + Pool.tpe.submit(var3::doAdd); + } catch (RejectedExecutionException var7) { + Exec.i += 10; + } + + Thread.sleep(300L); + if (Exec.i == 30) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec new file mode 100644 index 00000000..10377cb3 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.sub; + +public class SolAdd { + public static int get() { + return (new med(1, 2)).result; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec new file mode 100644 index 00000000..220ba627 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec @@ -0,0 +1,11 @@ +package pack.tests.basics.sub; + +public class Solver { + public Solver() { + if (SolAdd.get() == 3) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec new file mode 100644 index 00000000..5b3bfab6 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.sub; + +class flo { + int solve(int a, int b) { + return a + b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec new file mode 100644 index 00000000..6683d6f8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.sub; + +class med { + int result; + + med(int a, int b) { + this.result = new flo().solve(a, b); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec new file mode 100644 index 00000000..09c53218 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec @@ -0,0 +1,48 @@ +package pack.tests.bench; + +public class Calc { + public static int count = 0; + + public static void runAll() { + long var0 = System.currentTimeMillis(); + + for (int var2 = 0; var2 < 10000; var2++) { + call(100); + runAdd(); + runStr(); + } + + System.out.println("Calc: " + (System.currentTimeMillis() - var0) + "ms"); + if (count != 30000) { + throw new RuntimeException("[ERROR]: Errors occurred in calc!"); + } + } + + private static void call(int var0) { + if (var0 == 0) { + count++; + } else { + call(var0 - 1); + } + } + + private static void runAdd() { + double var0 = 0.0; + + while (var0 < 100.1) { + var0 += 0.99; + } + + count++; + } + + private static void runStr() { + String var0 = ""; + + while (var0.length() < 101) { + var0 = var0 + "ax"; + } + + count++; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec new file mode 100644 index 00000000..4149deff --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec @@ -0,0 +1,11 @@ +package pack.tests.reflects.annot; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface anno { + String val() default "yes"; + + String val2() default "yes"; +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec new file mode 100644 index 00000000..cb126be2 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec @@ -0,0 +1,32 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Field; + +public class annoe { + @anno( + val = "PASS" + ) + private static final String fail = "WHAT"; + + @anno + public void dox() throws Exception { + String var1 = "FAIL"; + + for (Field var5 : annoe.class.getDeclaredFields()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null) { + var1 = var6.val(); + } + } + + System.out.println(var1); + } + + @anno( + val = "no" + ) + public void dov() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec new file mode 100644 index 00000000..46d75595 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec @@ -0,0 +1,27 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Method; +import pack.tests.reflects.counter.Countee; +import pack.tests.reflects.retrace.Tracer; + +public class annot { + public void run() throws Exception { + annoe var1 = new annoe(); + + for (Method var5 : annoe.class.getDeclaredMethods()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null && var6.val().equals("yes")) { + var5.invoke(var1); + } + } + } + + public static Throwable I(Throwable var0) { + if (Tracer.I == null) { + Countee.I = var0; + } + + return var0; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec new file mode 100644 index 00000000..9c35832f --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.counter; + +public class Count { + public void run() throws Throwable { + if (Countee.class.getFields().length == 1 + && Countee.class.getDeclaredFields().length == 4 + && Countee.class.getMethods().length > 4 + && Countee.class.getDeclaredMethods().length == 4) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec new file mode 100644 index 00000000..a73b632a --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec @@ -0,0 +1,21 @@ +package pack.tests.reflects.counter; + +public class Countee { + public int cpuli = 0; + protected int cprot = 0; + int cpackp = 1; + private int cpriv = 0; + public static Throwable I; + + public void mpuli() { + } + + public void mprot() { + } + + public void mpackp() { + } + + public void mpriv() { + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec new file mode 100644 index 00000000..a6e774d8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec @@ -0,0 +1,13 @@ +package pack.tests.reflects.field; + +public class FObject extends Throwable { + private int i; + + private FObject(int i) { + this.i = i; + } + + private void add() { + this.i += 3; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec new file mode 100644 index 00000000..d2dfdc13 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec @@ -0,0 +1,35 @@ +package pack.tests.reflects.field; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class FTest { + public void run() throws Exception { + Constructor var1 = FObject.class.getDeclaredConstructor(int.class); + if (var1.isAccessible()) { + System.out.println("FAIL"); + } else { + var1.setAccessible(true); + FObject var2 = (FObject)var1.newInstance(1); + Method var3 = FObject.class.getDeclaredMethod("add", null); + if (var3.isAccessible()) { + System.out.println("FAIL"); + } else { + var3.setAccessible(true); + var3.invoke(var2); + Field var4 = FObject.class.getDeclaredField("i"); + if (var4.isAccessible()) { + System.out.println("FAIL"); + } else { + var4.setAccessible(true); + if (var4.getInt(var2) != 4) { + System.out.println("FAIL"); + } else { + System.out.println("PASS"); + } + } + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec new file mode 100644 index 00000000..c422249f --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec @@ -0,0 +1,10 @@ +package pack.tests.reflects.loader; + +public class LRun { + public void run() throws Exception { + Loader var1 = new Loader(); + Class var2 = var1.findClass("pack.tests.reflects.loader.LTest"); + Object var3 = var2.newInstance(); + var2.getMethod("run").invoke(var3); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec new file mode 100644 index 00000000..977e40be --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec @@ -0,0 +1,23 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +public class LTest { + public static byte[] readAllBytes(InputStream var0) throws IOException { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + public void run() throws Exception { + System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec new file mode 100644 index 00000000..93dfd004 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec @@ -0,0 +1,30 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class Loader extends ClassLoader { + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + @Override + public InputStream getResourceAsStream(String var1) { + return (InputStream)(var1.contains("TEST") ? new ByteArrayInputStream("PASS".getBytes()) : super.getResourceAsStream(var1)); + } + + @Override + public Class findClass(String var1) throws ClassNotFoundException { + byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); + return this.defineClass(var1, var2, 0, var2.length); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec new file mode 100644 index 00000000..5315e138 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec @@ -0,0 +1,9 @@ +package pack.tests.reflects.res; + +public class Accesor { + public void run() { + Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read(); + byte var10001 = 97; + throw new RuntimeException(); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec new file mode 100644 index 00000000..ca742ee1 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec @@ -0,0 +1,17 @@ +package pack.tests.reflects.retrace; + +public class Tracee { + public static int p = 0; + + private void doTrace(int var1) throws Exception { + p++; + StackTraceElement var2 = new Throwable().getStackTrace()[1]; + Tracee.class.getDeclaredMethod(var2.getMethodName(), int.class).invoke(this, var1 - 1); + } + + public void toTrace(int var1) throws Exception { + if (var1 != 0) { + this.doTrace(var1); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec new file mode 100644 index 00000000..8f5b637d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.retrace; + +public class Tracer { + public static Throwable I; + + public void run() throws Exception { + new Tracee().toTrace(5); + if (Tracee.p == 5) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec new file mode 100644 index 00000000..009cef2a --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec @@ -0,0 +1,7 @@ +package pack.tests.security; + +public class SecExec { + private static void doShutdown() { + System.exit(-1); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec new file mode 100644 index 00000000..b1b48d8d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec @@ -0,0 +1,35 @@ +package pack.tests.security; + +import java.lang.reflect.Method; + +public class SecTest { + public void run() { + System.setSecurityManager(new Sman()); + System.out.print("FAIL"); + + try { + Method var1 = SecExec.class.getDeclaredMethod("doShutdown"); + var1.setAccessible(true); + var1.invoke(null); + } catch (Throwable var6) { + Throwable var3 = var6; + + while (true) { + Throwable var2 = var3.getCause(); + if (var2 == null) { + String var4 = var3.getMessage(); + if (var4 == null) { + return; + } + + if (var4.contains("HOOK")) { + System.out.println("\b\b\b\bPASS"); + } + break; + } + + var3 = var2; + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec new file mode 100644 index 00000000..0d501b9c --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec @@ -0,0 +1,12 @@ +package pack.tests.security; + +import java.security.Permission; + +public class Sman extends SecurityManager { + @Override + public void checkPermission(Permission var1) { + if (var1.getName().contains("exitVM")) { + throw new SecurityException("HOOKED"); + } + } +}