This only happens in some classes in static_init:
javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824) at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.java:314) at javax.crypto.Cipher.doFinal(Cipher.java:2165)
Probably the decryption class returns a wrong key.
I've noticed all of those classes have a super or interface class. I think it has something to do with initialization order.
Loading all classes in a single vm (keeping decryption classes loaded) and decrypting parent classes didn't work for me (only the first class was decrypted). Could this mean ZKM knows the initialization order of classes and uses it as protection?
A file with both decryption classes (methods and fields mapped) and a sample class with obfuscated strings is attached.
This only happens in some classes in static_init:
javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824) at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.java:314) at javax.crypto.Cipher.doFinal(Cipher.java:2165)
Probably the decryption class returns a wrong key. I've noticed all of those classes have a super or interface class. I think it has something to do with initialization order. Loading all classes in a single vm (keeping decryption classes loaded) and decrypting parent classes didn't work for me (only the first class was decrypted). Could this mean ZKM knows the initialization order of classes and uses it as protection? A file with both decryption classes (methods and fields mapped) and a sample class with obfuscated strings is attached.https://workupload.com/file/rpQvXHfv