Skip to content

Commit 5ddbb00

Browse files
committed
Mixin fix + ASM update
1 parent 103f7f5 commit 5ddbb00

File tree

12 files changed

+49
-15759
lines changed

12 files changed

+49
-15759
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ allprojects {
5757

5858

5959
ext {
60-
asm = 'org.ow2.asm:asm:9.7.1'
61-
asm_commons = 'org.ow2.asm:asm-commons:9.7.1'
62-
asm_tree = 'org.ow2.asm:asm-tree:9.7.1'
60+
asm = 'org.ow2.asm:asm:9.9.1'
61+
asm_commons = 'org.ow2.asm:asm-commons:9.9.1'
62+
asm_tree = 'org.ow2.asm:asm-tree:9.9.1'
6363
cafedude = 'com.github.Col-E:CAFED00D:2.1.1'
6464
slf4j_api = 'org.slf4j:slf4j-api:1.7.36'
6565
jlinker = 'com.github.xxDark:jlinker:1.0.7'

dev.skidfuscator.obfuscator/skidfuscator-error-aqt.txt

Lines changed: 0 additions & 1576 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator-error-arq.txt

Lines changed: 0 additions & 694 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator-error-ium.txt

Lines changed: 0 additions & 1235 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator-error-rxp.txt

Lines changed: 0 additions & 388 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator-error-sbc.txt

Lines changed: 0 additions & 599 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator-error-zjl.txt

Lines changed: 0 additions & 673 deletions
This file was deleted.

dev.skidfuscator.obfuscator/skidfuscator.log.1

Lines changed: 0 additions & 10567 deletions
This file was deleted.

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

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.skidfuscator.obfuscator.hierarchy;
22

33
import dev.skidfuscator.obfuscator.Skidfuscator;
4+
import dev.skidfuscator.obfuscator.hierarchy.err.InvalidLambdaCallException;
45
import dev.skidfuscator.obfuscator.hierarchy.matching.ClassMethodHash;
56
import dev.skidfuscator.obfuscator.skidasm.*;
67
import dev.skidfuscator.obfuscator.skidasm.cfg.SkidControlFlowGraph;
@@ -383,25 +384,8 @@ private void setupInvoke() {
383384
if (!node.getMethods().isEmpty()) {
384385

385386
// [validation] cannot have more than one method in implicit function
386-
if (node.getMethods().size() > 1) {
387-
throw new IllegalStateException(String.format(
388-
"""
389-
-----------------------------------------------------
390-
/!\\ Skidfuscator failed to verify a lambda call!
391-
Please report this to the developer...
392-
-----------------------------------------------------
393-
Bound: %s
394-
Target: %s
395-
Target Methods: %s
396-
-----------------------------------------------------
397-
""",
398-
boundFunc,
399-
node.getDisplayName(),
400-
node.getMethods().stream()
401-
.map(MethodNode::toString)
402-
.reduce("\n- ", (s, s2) -> s + "\n- " + s2)
403-
404-
));
387+
if (node.getMethods().size() != 1) {
388+
throw new InvalidLambdaCallException(boundFunc, node);
405389
}
406390

407391
// must be correct
@@ -411,6 +395,11 @@ private void setupInvoke() {
411395
}
412396

413397
if (methodNode != null) {
398+
// [validation] Discovered lambda call must belong to a group
399+
if (methodNode.getGroup() == null) {
400+
throw new InvalidLambdaCallException(boundFunc, targetClass);
401+
}
402+
414403
methodNode.getGroup().setImplicitFunction(true);
415404
return;
416405
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package dev.skidfuscator.obfuscator.hierarchy.err;
2+
3+
import org.mapleir.asm.ClassNode;
4+
import org.mapleir.asm.MethodNode;
5+
import org.objectweb.asm.Handle;
6+
7+
public class InvalidLambdaCallException extends RuntimeException {
8+
public InvalidLambdaCallException(Handle boundFunc, ClassNode node) {
9+
super(String.format(
10+
"""
11+
-----------------------------------------------------
12+
/!\\ Skidfuscator failed to verify a lambda call!
13+
Please report this to the developer...
14+
-----------------------------------------------------
15+
Bound: %s
16+
Target: %s
17+
Target Methods: %s
18+
-----------------------------------------------------
19+
""",
20+
boundFunc,
21+
node.getDisplayName(),
22+
node.getMethods().stream()
23+
.map(MethodNode::toString)
24+
.reduce("\n- ", (s, s2) -> s + "\n- " + s2)
25+
26+
));
27+
}
28+
}

0 commit comments

Comments
 (0)