компиляция 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 - декомпилятор со встроеным деобфускатором http://j2me.ucoz.ru/forum/2-45-1
    2) JavaByte - Это не декомпилятор Java-class-файлов. Это именно дизассемблер. Причем, это дизассемблер с возможностью падча class-файлов без декомпилирования и перекомпиляции. Т.е. вы можете самостоятельно добавить парочку инструкций. В определенных условиях (например, когда class-файл обработан скремблером и декомпилятор такой файл не берет) может оказаться полезной http://www.wasm.ru/forum/viewtopic.php?pid=219151#p219151
    3) JDO Java DeObfuscator - деобфускатор http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/Java-DeObfuscator.shtml
    4) Java Decompiler со своим ядром декомпиляции (не использует jad) http://java.decompiler.free.fr
    5) еще коллекция http://www.java-decompiler.com

    На всякий случай, ликбез для начинающих:
    http://www.wasm.ru/article.php?article=1009005
    http://www.xakep.ru/magazine/xa/088/074/1.asp
    http://netgigg.livejournal.com/8631.html
    http://www.steike.com/code/java-reverse-engineering/
    http://hardline.ru/1/3/3307/
    http://java-crack.narod.ru/
     
  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
    Верни байты назад и добавь файл в архив. Если будез запускаться, то что-то некорректно сделано при патче.
     
Статус темы:
Закрыта.