Skip to content

Commit c92f1aa

Browse files
committed
feat(obfuscator): added background analytics to *exclusively* track only the amount of users, nothing else!
1 parent 1bc95cc commit c92f1aa

7 files changed

Lines changed: 54 additions & 2 deletions

File tree

dev.skidfuscator.obfuscator/client/src/main/java/dev/skidfuscator/obfuscator/SkidfuscatorMain.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public static void main(String[] args) {
5252
new File(System.getProperty("java.home"), "lib/rt.jar"),
5353
false,
5454
false,
55+
false,
5556
false
5657
);
5758

dev.skidfuscator.obfuscator/client/src/main/java/dev/skidfuscator/obfuscator/command/ObfuscateCommand.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ public class ObfuscateCommand implements Callable<Integer> {
6767
)
6868
private boolean fuckit;
6969

70+
@CommandLine.Option(
71+
names = {"-notrack", "--notrack"},
72+
description = "If you do not wish to be part of analytics!"
73+
)
74+
private boolean notrack;
75+
7076
@Override
7177
public Integer call() {
7278
/* Total number of processors or cores available to the JVM */
@@ -157,6 +163,7 @@ public Integer call() {
157163
.phantom(phantom)
158164
.jmod(MiscUtil.getJavaVersion() > 8)
159165
.fuckit(fuckit)
166+
.analytics(!notrack)
160167
.build();
161168

162169
final Skidfuscator skidfuscator = new Skidfuscator(skidInstance);

dev.skidfuscator.obfuscator/commons/src/main/java/dev/skidfuscator/obfuscator/SkidfuscatorSession.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public class SkidfuscatorSession {
2020
private boolean jmod;
2121
private boolean fuckit;
2222

23+
private boolean analytics;
24+
2325
/**
2426
*
2527
* @return the input
@@ -84,4 +86,8 @@ public boolean isJmod() {
8486
public boolean isFuckIt() {
8587
return fuckit;
8688
}
89+
90+
public boolean isAnalytics() {
91+
return analytics;
92+
}
8793
}

dev.skidfuscator.obfuscator/obfuscator/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>progressbar</artifactId>
3838
<version>0.9.3</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>com.github.matomo-org</groupId>
42+
<artifactId>matomo-java-tracker</artifactId>
43+
<version>v1.7</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>com.github.Col-E</groupId>
4247
<artifactId>jphantom</artifactId>

dev.skidfuscator.obfuscator/obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import dev.skidfuscator.obfuscator.transform.impl.number.NumberTransformer;
4242
import dev.skidfuscator.obfuscator.transform.impl.string.StringTransformer;
4343
import dev.skidfuscator.obfuscator.util.MapleJarUtil;
44+
import dev.skidfuscator.obfuscator.util.MiscUtil;
4445
import dev.skidfuscator.obfuscator.util.ProgressUtil;
4546
import dev.skidfuscator.obfuscator.util.misc.Counter;
4647
import dev.skidfuscator.obfuscator.util.misc.TimedLogger;
@@ -58,13 +59,17 @@
5859
import org.mapleir.deob.dataflow.LiveDataFlowAnalysisImpl;
5960
import org.mapleir.ir.cfg.ControlFlowGraph;
6061
import org.objectweb.asm.Opcodes;
62+
import org.piwik.java.tracking.CustomVariable;
63+
import org.piwik.java.tracking.PiwikRequest;
64+
import org.piwik.java.tracking.PiwikTracker;
6165
import org.topdank.byteengineer.commons.data.JarClassData;
6266
import org.topdank.byteio.in.AbstractJarDownloader;
6367

6468
import java.io.BufferedReader;
6569
import java.io.File;
6670
import java.io.FileReader;
6771
import java.io.IOException;
72+
import java.net.URL;
6873
import java.util.*;
6974
import java.util.stream.Collectors;
7075

@@ -107,6 +112,33 @@ public Skidfuscator(SkidfuscatorSession session) {
107112
public void run() {
108113
LOGGER.post("Beginning Skidfuscator Community...");
109114

115+
if (session.isAnalytics()) {
116+
try {
117+
final PiwikTracker tracker = new PiwikTracker(
118+
"https://analytics.skidfuscator.dev/matomo.php"
119+
);
120+
121+
final PiwikRequest request = new PiwikRequest(
122+
1,
123+
null
124+
);
125+
126+
final URL url = new URL("https://app.skidfuscator.dev");
127+
request.setActionUrl(url);
128+
request.setActionName("skidfuscator/launch");
129+
130+
131+
request.setEventAction("launch");
132+
request.setEventCategory("skidfuscator/community");
133+
request.setEventName("Java");
134+
request.setEventValue(MiscUtil.getJavaVersion());
135+
136+
tracker.sendRequestAsync(request);
137+
} catch (Exception e){
138+
//e.printStackTrace();
139+
}
140+
}
141+
110142
/*
111143
* Initializes a null skid directory. This skid directory is used as a
112144
* cache or a temporary directory, most often for silly things such as

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

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

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

6161
keyMap.put(parentNode, keysT);

dev.skidfuscator.obfuscator/obfuscator/src/test/java/dev/skidfuscator/test/SampleJarTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public void test2() throws Exception {
4444
.output(output)
4545
.runtime(new File(System.getProperty("java.home"), "lib/rt.jar"))
4646
.phantom(true)
47+
.analytics(false)
4748
.build();
4849

4950
final Skidfuscator skidfuscator = new Skidfuscator(session);

0 commit comments

Comments
 (0)