Я использовал декомпилятор JD для декомпиляции файла jar. У меня есть исходный код. Однако, я думаю, что он зашифрован! Я получаю некоторый класс с именем «Cny3», «JmcU», «Ow0w», «YrRb», «Jhaa», «gzL9», .... Могу ли я расшифровать или получить имя класса с любым программным обеспечением или технологии. Спасибо за помощь.Java, проблема с декомпилятором
ответ
Код не был зашифрован, но obfuscated (см. obfuscated code в Википедии). Названия классов и методов, которые преобразуются в уникальные случайные строки, чтобы затруднить понимание декомпилированного кода. Реверсирование этого преобразования невозможно.
№ Источник был, вероятно, запутанным.
(курсив мой):
я некоторые класс с именем, как «Cny3»,
Если большинство класса имеют хорошие имена, и есть всего лишь несколько некрасиво имена, тогда я бы не подумал об обфускации кода. Я бы подумал, что некоторый инструмент для улучшения байт-кода создал несколько внутренних классов. Или, возможно, какой-то другой инструмент, который генерирует классы.
Инструменты, которые могут быть вовлечены:
- АОП инструменты обычно можно ткать во время компиляции.
- Все остроумие в APT плагин компилятора (Аннотация Processing Tool)
Редактировать запутывания инструменты, как правило, также шифровать экземпляра поля и имена методов, насколько это возможно. Как они выглядят?
- 1. Загрузить источники, замененные декомпилятором?
- 2. Проблема с API Java Java
- 3. Проблема с Java-маршаллингом Java
- 4. Проблема с запуском Java Java
- 5. Проблема с Runtime.freeMemory() - Java
- 6. Проблема, начинающаяся с java
- 7. Проблема с сканером Java
- 8. Java - проблема с координатами
- 9. Java - Проблема с Collections.sort()
- 10. Проблема с java-арифметикой
- 11. Java проблема с входным
- 12. Java Scanner.useDelimiter() проблема с ""
- 13. Проблема с блокировкой Java
- 14. Проблема с генераторами Java
- 15. Проблема с упаковкой Java
- 16. Java - проблема с classpath
- 17. Java проблема кодирования с ├ └
- 18. Java - проблема с резьбой
- 19. Проблема Java с уставкой
- 20. Проблема с SplashScreen java
- 21. Проблема с Java GridBagConstraints
- 22. Java - Проблема с абстракцией
- 23. Java - проблема с памятью
- 24. Проблема с потоками Java?
- 25. Проблема с генераторами Java
- 26. Проблема с использованием Java
- 27. java: Проблема с JSplitpane
- 28. Проблема с списками Java
- 29. Проблема с Java quiz
- 30. Проблема с интерфейсом Java
Поскольку шифрование не волшебным образом сокращает ваши имена классов и методов (не говоря уже о сокращении их до 4 символов), вы можете исключить шифрование. Если было развернуто шифрование режима CBC, вы ожидаете строки с длиной N * 8 или N * 16 байтов, а не 4 байта. –