В статье «Взлом шифрования байт-кода Java» ( javaworld.com / javaworld / javaqa / 2003-05 / 01-qa-0509-jcrypt.html ) объясняется, почему шифрование файлов классов с использованием пользовательскихзагрузчик классов не имеет смысла, потому что в какой-то момент вам всегда нужно вызывать defineClass (), который передает файл класса в JVM в виде незашифрованного байтового массива.
Однако я видел решения, где немного другой подходиспользуемый;класс расшифровывается собственной библиотекой и передается JVM как экземпляр java.lang.Class через метод findClass () - defineClass () никогда не вызывается.
Означает ли это, что эти решениянет этой слабости?Конечно, вы всегда можете извлечь файлы классов, работая с отладчиком на уровне ассемблера, и решительный хакер может сломать любую защиту.Но по крайней мере это делает декомпиляцию немного более сложной, чем просто установка заплатки defineClass () для выгрузки незашифрованных файлов .class на диск.Или я что-то пропускаю?