RPGStudio 127 Опубликовано 15 сентября, 2015 Решил попробовать себя в этом направлении) Как компилировать обратно в class ?) Спасибо) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virtual 2 Опубликовано 15 сентября, 2015 (изменено) Решил попробовать себя в этом направлении) Как компилировать обратно в class ?) Спасибо) Как понять обратно в класс, ты имеешь файлы .java его ты компилируешь в байт коды .class больше тут нечего нет! компилировать или же антом, или IDE.. для разработки .. Изменено 15 сентября, 2015 пользователем Virtual Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RPGStudio 127 Опубликовано 15 сентября, 2015 ну вот смотри. С помощью декомпилятора я получил java файлы , внес свои изменения. Как потом эти java превратить опять в class что бы закинуть в jar ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virtual 2 Опубликовано 15 сентября, 2015 (изменено) ну вот смотри. С помощью декомпилятора я получил java файлы , внес свои изменения. Как потом эти java превратить опять в class что бы закинуть в jar ? Используй cmd, javac но что бы скомпилить тебе нужен ант... и прописать в пути в pach в переменных ... вот так... но если код который ты декомпилировал как правило уже сломан тоесть надо брать и дописывать будет если неверен он выдаст ошибки... Изменено 15 сентября, 2015 пользователем Virtual Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RPGStudio 127 Опубликовано 15 сентября, 2015 (изменено) Как все запутано ) Изменено 15 сентября, 2015 пользователем RPGStudio Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virtual 2 Опубликовано 15 сентября, 2015 Вот пример Учимся декомпилировать и собирать обратно в классы Сегодня мы с вами научимся декомпилировать и собирать(компилировать обратно) привычные для нас ядра различных сборок. Много криков слышится о том что без исходных кодов работать с компилированным ядром ява сервера - не возможно. Это абсолютно не верная информация и абсолютно не правильная. Сегодня, мы с вами ознакомимся с 1 из методов работы с подобным видом продуктов. Что нам понадобится? 1. Естественно, любой свободный декомпилятор Java среды. 2. Любой версии Java JDK платформы (Developer kit). 3. Наличие хотябы 1 полу прямой руки. Итак, для начала - выбираем нашу любимую жертву, над которой будем усердно работать. Не знаю, для какой цели вам нужен кусок исходных кодов - но дело ваше. Для эксперемента, жертвой были выбран скомпилированный код команды l2jserver, чтоб обидно не было никому. Первым нашим шагом будет декомпиляция собственно нужного нам класса. Много ума здесь совсем не нужно. Поэтому - задействуем ранее скачанный декомпилятор(я буду вести пример на основе jd gui decompiller). Открываем jar архив с нужным нам классом: http://s004.radikal.ru/i208/1007/ec/7912b85b1eea.jpg Декомпилируем нужный нам класс в исходные коды (java): http://s02.radikal.ru/i175/1007/cd/6f0e1a5ea630.jpg Теперь, настал момент истины и их нужно обратно собрать. Делать мы это будем ровно в 1 клик. Для сбора мы создадим папочку: D:\compile\, в которую поместим декомпилированный нами ранее класс(скрин №2) и сам .jar архив который мы декомпилировали. Теперь - осталось не много не мало - скомпилировать наш класс. Для этого, мы используем консоль нашей OS (у виндузятников - cmd, линупсоиды - думаю подсказывать не нужно где консоль). Для начала, проверим - доступен ли нам компилятор (javac) в исконном виде. Введем в консоль: javac Если после введения команды нам высветило большой манаул - все в порядке. Если же результатом исполнения стало: "javac" не является внутренней или внешней командой то беда пришла за нами. Дело - копеечное, решается ровно в 4 клика. Если возникло двигаем: Мой компьюетр->свойства->дополнительно->переменные среды и ищем там переменную "Path". Выбираем - редактирование, и дописываем путь к бинарникам нашей Jdk (/путь до jdk/bin), к примеру это будет выглядеть так: c:\Program Files\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Alky for Applications\Libraries\ C:\program files\java\jdk1.6.0_21\bin и добавляем (через ; к переменной). Сохраняем, и открываем консоль снова. Если при исполнении javac все в порядке - воуля, проблема устранена. Теперь - непосредственно компилируем ранее декомпилированный нами класс. Заходим туда, где лежит наш класс: D: && cd compile Компилируем сам класс: D:\compile>javac -classpath l2jlionna.jar -Xlint:unchecked RegionBBSManager.java как пример - компиляция GameServer.java : D:\compile>javac -classpath l2jserver.jar -Xlint:unchecked GameServer.java Что ж, на выходе (в той же папке) мы получили: наш_класс.class. Дело сделано, все довольны. Осталось - мелочи. Открываем декомплируемое нами ядро (l2jserver.jar) простым архиватором (winzip, winrar, 7z) и доходим до уровня, где лежит старый класс (/com/sf/ и т д). Удаляем старый класс, жмем "ADD" и запихиваем сюда класс, который мы скомпилировали выше. Вот собственно и все, мы проделали операцию нужную вам. После декомпилирования класса вы можете внести свои поправки в исходный код и успешно скомпилировать его и всунуть куда нужно. П.С. Этот мануал вам поможет если вы хотите внести какие то изменения в ядро а исходного кода нету. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RPGStudio 127 Опубликовано 15 сентября, 2015 А нет простой программы как декомпилятор , только копмилятор ?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virtual 2 Опубликовано 15 сентября, 2015 Если помог от + не откажусь) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virtual 2 Опубликовано 15 сентября, 2015 неа... тока иде, или кмд Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RPGStudio 127 Опубликовано 15 сентября, 2015 Все получилось, спасибо) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты