Skip to content

Commit 1754c5b

Browse files
committed
fix(obfuscator): fixed several annoying bugs
1 parent 6bdcfb9 commit 1754c5b

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

dev.skidfuscator.obfuscator/obfuscator/src/main/java/dev/skidfuscator/obfuscator/hierarchy/SkidHierarchy.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
import dev.skidfuscator.obfuscator.skidasm.*;
66
import dev.skidfuscator.obfuscator.skidasm.cfg.SkidControlFlowGraph;
77
import dev.skidfuscator.obfuscator.util.ProgressUtil;
8+
import dev.skidfuscator.obfuscator.util.misc.Parameter;
89
import me.tongfei.progressbar.ProgressBar;
910
import org.mapleir.asm.ClassNode;
1011
import org.mapleir.asm.MethodNode;
1112
import org.mapleir.ir.cfg.ControlFlowGraph;
1213
import org.mapleir.ir.code.expr.invoke.*;
13-
import org.objectweb.asm.ClassVisitor;
14-
import org.objectweb.asm.Handle;
15-
import org.objectweb.asm.MethodVisitor;
16-
import org.objectweb.asm.Opcodes;
14+
import org.objectweb.asm.*;
1715
import org.objectweb.asm.commons.JSRInlinerAdapter;
1816
import org.objectweb.asm.tree.AnnotationNode;
1917

@@ -64,7 +62,18 @@ public void accept(ClassNode node) {
6462
}
6563
}
6664

67-
node.getMethods().forEach(method -> {
65+
node.getMethods().stream().sorted(new Comparator<MethodNode>() {
66+
@Override
67+
public int compare(MethodNode o1, MethodNode o2) {
68+
final Parameter parameter1 = new Parameter(o1.getDesc());
69+
final Parameter parameter2 = new Parameter(o2.getDesc());
70+
71+
final List<Type> args1 = parameter1.getArgs();
72+
final List<Type> args2 = parameter2.getArgs();
73+
74+
return args1.size() - args2.size();
75+
}
76+
}).forEach(method -> {
6877
getGroup(skidfuscator, method);
6978

7079
if (method.node.visibleAnnotations != null) {

dev.skidfuscator.obfuscator/obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/string/StringTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void handle(final RunMethodTransformEvent event) {
5252
Integer[] keysT = keyMap.get(parentNode);
5353

5454
if (keysT == null) {
55-
final int size = RandomUtil.nextInt(128) + 1;
55+
final int size = RandomUtil.nextInt(128);
5656
keysT = new Integer[size];
5757
for (int i = 0; i < size; i++) {
5858
keysT[i] = RandomUtil.nextInt(128);

0 commit comments

Comments
 (0)