компиляция java в class

Тема в разделе "Другие языки", создана пользователем saen, 2 июн 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Есть ява апплеат с кучей классов. беру класс и декомпилирую его с помощь dj java decompiler. Ставлю jdk 6, в этом же dj decompiler пытаюсь компилировать java class. Не компилируется. Вылезает куча ошибок. Кто может помочь?
     
  2. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Попробуй java-компилятор jikes (на SourceForge). Компилируется так:

    Код:
    set MSIE_CLASSES=%WINDIR%\java\packages\CWQGEFND.ZIP <- подставь свое имя, заглянув в каталог
    jikes -classpath ".;%MSIE_CLASSES%" my.java -Xstdout
     
  3. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    не получается( можеь сам попробуешь скомпилировать, если я выложу аттач?
     
  4. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    выкладывай, попробую.
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    В аттаче апплет и декомпилированный класс
     

    Вложения:

    • jikes.rar
      Размер файла:
      264,8 КБ
      Просмотров:
      12
  6. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Перекомпилировать этот код сразу после декомпиляции не получится, поскольку код обфускацирован. Необходимо применить деобфускацию.

    Рекомендую следующий софт для этого:
    1) JavaDec - декомпилятор со встроеным деобфускатором Перейти по ссылке
    2) JavaByte - Это не декомпилятор Java-class-файлов. Это именно дизассемблер. Причем, это дизассемблер с возможностью падча class-файлов без декомпилирования и перекомпиляции. Т.е. вы можете самостоятельно добавить парочку инструкций. В определенных условиях (например, когда class-файл обработан скремблером и декомпилятор такой файл не берет) может оказаться полезной Перейти по ссылке
    3) JDO Java DeObfuscator - деобфускатор Перейти по ссылке
    4) Java Decompiler со своим ядром декомпиляции (не использует jad) Перейти по ссылке
    5) еще коллекция Перейти по ссылке

    На всякий случай, ликбез для начинающих:
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
     
  7. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Сейчас такая проблема возникла:

    открываю класс через javabyte. Там есть 2 метода: isFreeMode и is LicenseValid. То есть если лицензия есть, то подгружает класс Ab. Если не прокатывает, то срабатывает метод isFreeMode и подгружает класс Bb. в javabyte для isFreeMode меняю getfield Bb на getfield Ab. СОхраняю класс и через винзип заменяю в самом jar-апплете. Обновляю страницу с апплетом и выходит ошибка:

     
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Проверь внимательно, существует ли класс com.softsynth.javasonics.recplay.PlayerApplet.class
    Не превратились ли прописные буквы в строчные.
     
  9. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    в архиве то есть этот файл. может какие-то тонкости есть в jar-архивации?
     
  10. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    я архивирую утилитой jar:

    Код:
    jar cf archive.jar my.class
    Верни байты назад и добавь файл в архив. Если будез запускаться, то что-то некорректно сделано при патче.
     
Статус темы:
Закрыта.