2012-02-26 2 views
0

Я использовал декомпилятор JD для декомпиляции файла jar. У меня есть исходный код. Однако, я думаю, что он зашифрован! Я получаю некоторый класс с именем «Cny3», «JmcU», «Ow0w», «YrRb», «Jhaa», «gzL9», .... Могу ли я расшифровать или получить имя класса с любым программным обеспечением или технологии. Спасибо за помощь.Java, проблема с декомпилятором

+0

Поскольку шифрование не волшебным образом сокращает ваши имена классов и методов (не говоря уже о сокращении их до 4 символов), вы можете исключить шифрование. Если было развернуто шифрование режима CBC, вы ожидаете строки с длиной N * 8 или N * 16 байтов, а не 4 байта. –

ответ

4

Код не был зашифрован, но obfuscated (см. obfuscated code в Википедии). Названия классов и методов, которые преобразуются в уникальные случайные строки, чтобы затруднить понимание декомпилированного кода. Реверсирование этого преобразования невозможно.

0

№ Источник был, вероятно, запутанным.

0

(курсив мой):

я некоторые класс с именем, как «Cny3»,

Если большинство класса имеют хорошие имена, и есть всего лишь несколько некрасиво имена, тогда я бы не подумал об обфускации кода. Я бы подумал, что некоторый инструмент для улучшения байт-кода создал несколько внутренних классов. Или, возможно, какой-то другой инструмент, который генерирует классы.

Инструменты, которые могут быть вовлечены:

  • АОП инструменты обычно можно ткать во время компиляции.
  • Все остроумие в APT плагин компилятора (Аннотация Processing Tool)

Редактировать запутывания инструменты, как правило, также шифровать экземпляра поля и имена методов, насколько это возможно. Как они выглядят?

Смежные вопросы