Skip to content

Commit cd00aa4

Browse files
committed
fix(commons): some additions + fixed mappings
1 parent 8677448 commit cd00aa4

5 files changed

Lines changed: 35 additions & 3 deletions

File tree

dev.skidfuscator.obfuscator/commons/src/main/java/dev/skidfuscator/inflator/SkidInflator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010

1111
@UtilityClass
1212
public class SkidInflator {
13-
private final int ARRAY_SIZE = 1024;
13+
private final int ARRAY_SIZE = 1024 * 8;
1414

1515
public byte[] compress(byte[] data) throws IOException {
1616
final Deflater deflater = new Deflater();
1717
deflater.setInput(data);
18+
deflater.finish();
1819

1920
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
2021
final byte[] buffer = new byte[ARRAY_SIZE];
@@ -24,6 +25,7 @@ public byte[] compress(byte[] data) throws IOException {
2425
outputStream.write(buffer, 0, count);
2526
}
2627
outputStream.close();
28+
deflater.end();
2729

2830
final byte[] output = outputStream.toByteArray();
2931

@@ -42,6 +44,7 @@ public byte[] decompress(byte[] data) throws IOException, DataFormatException {
4244
outputStream.write(buffer, 0, count);
4345
}
4446
outputStream.close();
47+
inflater.end();
4548

4649
final byte[] output = outputStream.toByteArray();
4750

dev.skidfuscator.obfuscator/commons/src/main/java/dev/skidfuscator/jghost/GhostHelper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ private ApplicationClassSource getLibrary(final SkidfuscatorSession session, fin
5656
library = GhostHelper.readFromLibraryFile(output);
5757
}
5858

59+
return importFile(session, library);
60+
}
61+
62+
public ApplicationClassSource importFile(final SkidfuscatorSession session, final GhostLibrary library) {
5963
/* Create a new library class source with superior to default priority */
6064
final ApplicationClassSource libraryClassSource = new ApplicationClassSource(
6165
"libraries",
@@ -68,7 +72,6 @@ private ApplicationClassSource getLibrary(final SkidfuscatorSession session, fin
6872
);
6973
LOGGER.info("[✓] Imported " + library.getContents().getClasses().size() + " library classes...");
7074

71-
7275
return libraryClassSource;
7376
}
7477

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ public File getLibs() {
4242
return libs;
4343
}
4444

45+
/**
46+
* @return the mappings file
47+
*/
48+
public File getMappings() {
49+
return mappings;
50+
}
51+
4552
/**
4653
* @return the exempt
4754
*/

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

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

3+
import dev.skidfuscator.jghost.Ghost;
34
import dev.skidfuscator.jghost.GhostHelper;
5+
import dev.skidfuscator.jghost.tree.GhostLibrary;
46
import dev.skidfuscator.obfuscator.creator.SkidApplicationClassSource;
57
import dev.skidfuscator.obfuscator.creator.SkidCache;
68
import dev.skidfuscator.obfuscator.directory.SkiddedDirectory;
@@ -254,7 +256,24 @@ public void run() {
254256
* This would allow for a lot of cool stuff, including tracking
255257
* and remote HWIDs.
256258
*/
257-
if (session.getLibs() != null && session.getLibs().listFiles() != null) {
259+
if (session.getMappings() != null) {
260+
final File[] libs = Arrays.stream(session.getMappings().listFiles())
261+
.filter(e -> e.getAbsolutePath().endsWith(".json"))
262+
.toArray(File[]::new);
263+
264+
LOGGER.post("Importing " + libs.length + " mappings...");
265+
266+
for (File lib : libs) {
267+
final GhostLibrary library = GhostHelper.readFromLibraryFile(lib);
268+
final ApplicationClassSource libraryClassSource = GhostHelper.importFile(session, library);
269+
/* Add library source to class source */
270+
classSource.addLibraries(new LibraryClassSource(
271+
libraryClassSource,
272+
5
273+
));
274+
}
275+
LOGGER.log("✓ Finished importing mappings!");
276+
} else if (session.getLibs() != null && session.getLibs().listFiles() != null) {
258277
final File[] libs = Arrays.stream(session.getLibs().listFiles())
259278
.filter(e -> e.getAbsolutePath().endsWith(".jar"))
260279
.toArray(File[]::new);
Binary file not shown.

0 commit comments

Comments
 (0)