You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+33-3Lines changed: 33 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,11 +23,35 @@
23
23
## 🚀 Quickstart
24
24
25
25
> [!TIP]
26
-
> You can download Skidfuscator [here](https://github.com/skidfuscatordev/skidfuscator-java-obfuscator/releases) and run it directly using:
27
-
> ```
28
-
> java -jar skidfuscator.jar obfuscate <path to your jar>
26
+
> If you are using Gradle, consider using our [Gradle plugin](https://github.com/skidfuscatordev/skidfuscator-gradle-plugin) for easy integration.
27
+
> ```java
28
+
> plugins {
29
+
> id("io.github.skidfuscatordev.skidfuscator") version "0.1.3"
30
+
> }
31
+
>
32
+
> skidfuscator {
33
+
>// Configure the plugin here
34
+
> skidfuscatorVersion ="latest"
35
+
> exempt = ["com/example/SomeClass"]
36
+
>
37
+
> transformers {
38
+
> interprocedural {
39
+
> enabled =true
40
+
> exempt = ["com/example/IgnoredClass"]
41
+
> }
42
+
> stringEncryption {
43
+
> type ="STANDARD"
44
+
> enabled =true
45
+
> }
46
+
> }
47
+
>}
29
48
> ```
30
49
50
+
You can download Skidfuscator [here](https://github.com/skidfuscatordev/skidfuscator-java-obfuscator/releases) and run it directly using:
51
+
```
52
+
java -jar skidfuscator.jar obfuscate <path to your jar>
53
+
```
54
+
31
55
Skidfuscator uses a config system, which allows you to customize your obfuscation. Wetry to automatically download all compatible libraries, but some may slip through the cracks. TheGradle plugin is a work in progress. For now, use:
32
56
```
33
57
java -jar skidfuscator.jar obfuscate <path to your jar>-li=<path to folder with all libs>
In the event of errors or failed obfuscation, Skidfuscator implements a recovery system that intelligently resolves conflicts and provides suggestions to fix issues. This ensures minimal disruption in your development workflow.
Skidfuscator comes with built-in presets for common configurations, allowing quick setup without needing to manually tweak every aspect of the obfuscation process. For advanced users, all settings remain fully customizable.
Skidfuscator introduces third-generation control flow obfuscation (FlowGEN3), which scrambles method logic and makes the control flow harder to understand. This method introduces opaque predicates and complex flow redirections, hindering static and dynamic analysis.
Copy file name to clipboardExpand all lines: dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/command/ObfuscateCommand.java
+10-10Lines changed: 10 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -31,61 +31,61 @@ public class ObfuscateCommand implements Callable<Integer> {
31
31
index = "0",
32
32
description = "The file which will be obfuscated."
33
33
)
34
-
privateFileinput;
34
+
publicFileinput;
35
35
36
36
@CommandLine.Option(
37
37
names = {"-rt", "--runtime"},
38
38
description = "Path to the runtime jar"
39
39
)
40
-
privateFileruntime;
40
+
publicFileruntime;
41
41
42
42
@CommandLine.Option(
43
43
names = {"-li", "--libs"},
44
44
description = "Path to the libs folder"
45
45
)
46
-
privateFilelibFolder;
46
+
publicFilelibFolder;
47
47
48
48
@CommandLine.Option(
49
49
names = {"-ex", "--exempt"},
50
50
description = "Path to the exempt file"
51
51
)
52
-
privateFileexempt;
52
+
publicFileexempt;
53
53
54
54
@CommandLine.Option(
55
55
names = {"-o", "--output"},
56
56
description = "Path to the output jar location"
57
57
)
58
-
privateFileoutput;
58
+
publicFileoutput;
59
59
60
60
@CommandLine.Option(
61
61
names = {"-cfg", "--config"},
62
62
description = "Path to the config file"
63
63
)
64
-
privateFileconfig;
64
+
publicFileconfig;
65
65
66
66
@CommandLine.Option(
67
67
names = {"-ph", "--phantom"},
68
68
description = "Declare if phantom computation should be used"
69
69
)
70
-
privatebooleanphantom;
70
+
publicbooleanphantom;
71
71
72
72
@CommandLine.Option(
73
73
names = {"-fuckit", "--fuckit"},
74
74
description = "Do not use!"
75
75
)
76
-
privatebooleanfuckit;
76
+
publicbooleanfuckit;
77
77
78
78
@CommandLine.Option(
79
79
names = {"-dbg", "--debug"},
80
80
description = "Do not use!"
81
81
)
82
-
privatebooleandebug;
82
+
publicbooleandebug;
83
83
84
84
@CommandLine.Option(
85
85
names = {"-notrack", "--notrack"},
86
86
description = "If you do not wish to be part of analytics!"
0 commit comments