2010-11-11 3 views
1

У меня есть файл, который является двоичным java-файлом, который был скомпилирован с использованием проприетарной программы. Я попытался открыть это в некоторых стандартных декомпиляторах, но они не узнают его.Декомпилировать скомпилированный файл Java с проприетарными заголовками

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

[Редактировать]

Как примечание стороны я хотел бы знать, как это было достигнуто, другими словами, что объект/особенность Java позволяет использовать их компилятор таким настраиваемой, как это ?

alt text P.S. Изображение больше, если вы откроете его на другой вкладке. alt text

+2

Это не похоже на файл класса java. Откройте его в шестнадцатеричном редакторе, первые 4 байта должны быть CA FE BA BE. Может, это банка? Попробуйте открыть его как zip-файл. –

+1

Это не файл jar - файл jar должен начинаться с «PK». –

+1

Попробуйте шестнадцатеричный дамп (или откройте в шестнадцатеричном редакторе и экране захвата). Невозможно увидеть, что этот персонаж на вашем изображении. –

ответ

2

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

Если это так, должна быть другая часть пакета, которая имеет как ключ, так и механизм для его расшифровки. Вы говорите, что это двоичный файл Java, но это может означать файл .class или файл jar.

Как выполняется этот код? Вам нужно запустить jvm самостоятельно («c: /> java com.mystery.App») или это модуль, используемый другим исполняемым файлом (exe, jar, batch и т. Д.)?

+0

Большие вопросы. Этот файл является надстройкой для настольного приложения. Это приложение позволяет вам скопировать некоторые Java и скомпилировать все это из самого приложения. После компиляции он создает файл * .jfx, который содержит то, что вы видите выше в кешках экрана. Этот скомпилированный файл переносится, и приложение позволяет вам регистрировать файлы .jfx, которые вы бросаете в папку. – James

+0

Попробуйте добавить файл * .jfx в проект Eclipse и посмотреть, может ли Eclipse показывать вам общедоступные поля/методы, если это класс или пакеты и классы, если это банка. –

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