Encrypted / Packed Bytecode Crypter

Packed_Class_Crypter Обфускация (Obfuscation) CRITICAL +8 очков

🎮 Влияние на механику Minecraft

Основной байткод мода зашифрован криптографическими алгоритмами (AES, DES, XOR) и расшифровывается в память во время выполнения через кастомный загрузчик классов (defineClass).

🔍 Анализируемые функции и API

ClassLoader.defineClass

Динамическая загрузка байтового массива в среду JVM.

Cipher.doFinal

Расшифровка полезной нагрузки через javax.crypto.Cipher.

💻 Реализация в моде (Исходный код)

// Crypter Stub Source
public class StubLoader extends ClassLoader {
    public Class<?> load(byte[] encrypted) throws Exception {
        Cipher c = Cipher.getInstance("AES");
        byte[] decrypted = c.doFinal(encrypted);
        return defineClass(null, decrypted, 0, decrypted.length);
    }
}

⚙️ Декомпилированный вид (Vineflower)

// Decompiled with Vineflower 1.12
public class StubLoader extends ClassLoader {
    public Class load(byte[] encrypted) throws Exception {
        Cipher c = Cipher.getInstance("AES");
        byte[] decrypted = c.doFinal(encrypted);
        return this.defineClass((String)null, decrypted, 0, decrypted.length);
    }
}

🛡️ Сигнатура байткода и статический детект

Совпадение вызовов ClassLoader.defineClass после криптографических операций Cipher или циклов XOR.