Подскажите, чем защищен .class и как с этим бороться.

Тема в разделе "WASM.BEGINNERS", создана пользователем DevOne, 3 янв 2012.

  1. DevOne

    DevOne New Member

    Публикаций:
    0
    Регистрация:
    3 янв 2012
    Сообщения:
    3
    Добрый день.
    Прошу Вашей помощи в декомпиляции .class файла.
    Ребята делают замечательный продукт. Но дергать разработчиков по каждому моему таракану не хочется.
    Иногда нужно глянуть, как реализован тот или иной метод, чтоб добавить свой (хочу использовать JavaBite).
    При попытке декомпила JD и все остальные вылетают с крит. ошибкой.

    Подскажите, пожалуйста, чем защищен файл. Как его декомпилировать? И дайте гугловое направление в использовании такой защиты.

    Заранее спасибо.
     
  2. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Код (Text):
    1. D:\>java Scripts
    2. Exception in thread "main" java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file Scripts
    3.         at java.lang.ClassLoader.defineClass1(Native Method)
    4.         at java.lang.ClassLoader.defineClassCond(Unknown Source)
    5.         at java.lang.ClassLoader.defineClass(Unknown Source)
    6.         at java.security.SecureClassLoader.defineClass(Unknown Source)
    7.         at java.net.URLClassLoader.defineClass(Unknown Source)
    8.         at java.net.URLClassLoader.access$000(Unknown Source)
    9.         at java.net.URLClassLoader$1.run(Unknown Source)
    10.         at java.security.AccessController.doPrivileged(Native Method)
    11.         at java.net.URLClassLoader.findClass(Unknown Source)
    12.         at java.lang.ClassLoader.loadClass(Unknown Source)
    13.         at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    14.         at java.lang.ClassLoader.loadClass(Unknown Source)
    15. Could not find the main class: Scripts.  Program will exit.
    jdk 6u30

    Файл либо битый, либо шифрованный - возможно, грузится через самопальный класслоадер. Либо сделан не для сановской явы - какой-нибудь изврат вроде андроида или другой VM.

    Лучшим декомпилятором до сих пор является JAD. Есть плагин для эклипса, позволяющий декомпилировать class-файлы на лету - не безглючный, но жить можно
     
  3. DevOne

    DevOne New Member

    Публикаций:
    0
    Регистрация:
    3 янв 2012
    Сообщения:
    3
    Спасибо. Я уже "на кошках" потренировался. Поковырял другие классы программы. Приловчился выкусывать проблемное место JavaBite'ом, а потом уже JAD берет.

    Сначала думал, что прога шифрованная. После декомпила вижу, что просто кривая, как бумеранг.
     
  4. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Как оно вообще работает-то? должно же высыпаться при загрузке классов. У вас какая ява?
     
  5. DevOne

    DevOne New Member

    Публикаций:
    0
    Регистрация:
    3 янв 2012
    Сообщения:
    3
    jdk1.6.0_25.
    Но дело в том, что я не компилирую сборку сервера (это java-сервер онлайн-игры).
    В принципе, все работает... до тех пор, пока не вдаешься в подробности...