Skip to content

Commit e2d972b

Browse files
committed
chore(obfuscator): ui improvements + wip on memory recommendation
1 parent 3240314 commit e2d972b

5 files changed

Lines changed: 77 additions & 20 deletions

File tree

maple-ir/org.mapleir.app-services/src/main/java/org/mapleir/app/service/ClassTree.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public void removeEdge(InheritanceEdge e) {
252252
@Override
253253
public Set<InheritanceEdge> getEdges(ClassNode cn) {
254254
if(!containsVertex(cn)) {
255-
System.err.println("warn: implicit add of " + cn.getDisplayName());
255+
LOGGER.warn("warn: implicit add of " + cn.getDisplayName());
256256
addVertex(cn);
257257
}
258258
return super.getEdges(cn);
@@ -261,7 +261,7 @@ public Set<InheritanceEdge> getEdges(ClassNode cn) {
261261
@Override
262262
public Set<InheritanceEdge> getReverseEdges(ClassNode cn) {
263263
if(!containsVertex(cn)) {
264-
System.err.println("warn(2): implicit add of " + cn.getDisplayName());
264+
LOGGER.warn("warn(2): implicit add of " + cn.getDisplayName());
265265
addVertex(cn);
266266
}
267267
return super.getReverseEdges(cn);

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,26 @@ public class ObfuscateCommand implements Callable<Integer> {
6767

6868
@Override
6969
public Integer call() {
70+
/* Total number of processors or cores available to the JVM */
71+
final String processors =
72+
String.format("%19.19s", "Processors:")
73+
+ " "
74+
+ String.format(
75+
"%-19.19s",
76+
Runtime.getRuntime().availableProcessors() + " cores"
77+
);
78+
79+
final long freeMemory = Math.round(Runtime.getRuntime().freeMemory() / 1E6);
80+
final String memory =
81+
String.format("%19.19s", "Current Memory:")
82+
+ " "
83+
+ String.format("%-19.19s", freeMemory + "mb");
84+
85+
final long maxMemory = Math.round(Runtime.getRuntime().maxMemory() / 1E6);
86+
final String topMemory =
87+
String.format("%19.19s", "Max Memory:")
88+
+ " "
89+
+ String.format("%-19.19s", (maxMemory == Long.MAX_VALUE ? "no limit" : maxMemory) + "mb");
7090
final String[] logo = new String[] {
7191
"",
7292
" /$$$$$$ /$$ /$$ /$$ /$$$$$$ /$$",
@@ -78,8 +98,13 @@ public Integer call() {
7898
"| $$$$$$/| $$ \\ $$| $$| $$$$$$$| $$ | $$$$$$/ /$$$$$$$/| $$$$$$$| $$$$$$$ | $$$$/| $$$$$$/| $$",
7999
" \\______/ |__/ \\__/|__/ \\_______/|__/ \\______/ |_______/ \\_______/ \\_______/ \\___/ \\______/ |__/",
80100
"",
81-
" Author: Ghast Version: 2.0.2 Today: " + new Date(Instant.now().toEpochMilli()).toGMTString(),
101+
" ┌───────────────────────────────────────────┐",
102+
" │ " + processors + " │",
103+
" │ " + memory + " │",
104+
" │ " + topMemory + " │",
105+
" └───────────────────────────────────────────┘",
82106
"",
107+
" Author: Ghast Version: 2.0.2 Today: " + new Date(Instant.now().toEpochMilli()).toGMTString(),
83108
""
84109
};
85110

obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/flow/BasicRangeTransformer.java

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,32 @@
4040
/**
4141
* This transformer basically does some whacky stuff:
4242
*
43-
* Original flow:
43+
* Original flow: Obfuscated Flow:
4444
*
45-
* A
46-
* ↓
47-
* B
45+
* ┌─────────┐ ┌─────────┐
46+
* │ Block A │ │ Block A │
47+
* └────┬────┘ └────┬────┘
48+
* │ │
49+
* ┌────▼────┐ ┌───────▼────────┐
50+
* │ Block B │ │ Random If Stmt │
51+
* └─────────┘ └───────┬────────┘
52+
* │
53+
* ┌─────┐◄──┴───►┌─────┐
54+
* │ Yes │ │ No │
55+
* └─────┘ └──┬──┘
56+
* │
57+
* ┌─────▼─────┐
58+
* │ Exception │
59+
* └───────────┘
4860
*
49-
* Obfuscated flow:
50-
*
51-
* A
52-
* ↓
53-
* Fake
54-
* Condition
55-
* / \
56-
* Trap Exception
57-
*
58-
*
59-
* [Exception catcher]
60-
* ↓
61-
* B
61+
* ┌─────────────┐
62+
* │ Exception │
63+
* │ Catcher │
64+
* └──────┬──────┘
65+
* │
66+
* ┌────▼────┐
67+
* │ Block B │
68+
* └─────────┘
6269
*/
6370
public class BasicRangeTransformer extends AbstractTransformer {
6471
public BasicRangeTransformer(Skidfuscator skidfuscator) {

obfuscator/src/main/java/dev/skidfuscator/obfuscator/util/MiscUtil.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public <T> int indexOf(T[] arr, T t) {
2424

2525
return -1;
2626
}
27+
public String fixedLengthString(String string, int length) {
28+
return String.format("%1$"+length+ "s", string);
29+
}
2730

2831
public int getJavaVersion() {
2932
String version = System.getProperty("java.version");
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Redirect log messages to console
2+
log4j.rootLogger=DEBUG, stdout
3+
log4j.rootLogger=ERROR, stderr
4+
log4j.rootLogger=INFO, stdout
5+
6+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
7+
log4j.appender.stdout.Target=System.out
8+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
9+
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n
10+
11+
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
12+
log4j.appender.stderr.Target=System.err
13+
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
14+
log4j.appender.stderr.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n
15+
16+
# Redirect log messages to a log file, support file rolling.
17+
# log4j.appender.file=org.apache.log4j.RollingFileAppender
18+
# log4j.appender.file.File=C:\\log4j-application.log
19+
# log4j.appender.file.MaxFileSize=5MB
20+
# log4j.appender.file.MaxBackupIndex=10
21+
# log4j.appender.file.layout=org.apache.log4j.PatternLayout
22+
# log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

0 commit comments

Comments
 (0)