22 октября 2011

Декомпиляция Java / На примере кода проекта l2jserver

От себя...

По разным причинам состояние l2jserver имеет разный ход в миру.
К примеру целенаправленная продажа проекта,разделяя его функциональность
на публичный сборки и коммерческие,в лице пары балбесов из Сан-Петербурга.
Де компиляция прежде всего порой необходима для личных нужд.
К примеру убрать копирайтеры так называемых создателей и копипастеров.
А также при необходимости работа над классами ядра и его дополнение.

***

Опираться будем на Linux софт...
Работаем с программой java decompiler free.

http://java.decompiler.free.fr/

JD-Core and JD-GUI are written in C++. This allows an extremely fast
decompilation and a display.
JD-Core does not require the Java runtime environment for its
functioning, therefore no special setup is required.

JD-Core works with most current compilers including the following:

jdk1.1.8
jdk1.3.1
jdk1.4.2
jdk1.5.0
jdk1.6.0
jdk1.7.0

jikes-1.22
harmony-jdk-r533500
Eclipse Java Compiler v_677_R32x, 3.2.1 release
jrockit90_150_06
JD-Core supports the following new features of Java 5:
Annotations
Generics
Type "enum"

JD-GUI supports Drag and Drop.
JD-GUI supports JAR files.
JD-GUI displays color coded Java source code.
JD-GUI allows you to browse the "class" files hierarchy.
JD-GUI displays "log" files, and allow you to decompile "class" files
appearing in Java stack traces.
JD-Core, JD-GUI and JD-Eclipse use the excellent cross-platform
wxWidgets toolkit.

***

- Открываем jar архив с нужным нам классом.
- Декомпилируем нужный нам класс в исходные коды (java).
- Собираем обратно используя классы ядра.

Простой пример...

$ javac -classpath l2jserver.jar -Xlint:unchecked Имя__класса.java

***

Заметка не обсуждает дополнительные принципы de или com Java а лишь
затрагивает цель просмотра внутреннего кода и знакомства с ним.

***

На зубок и к пиву...

http://www.wasm.ru/print.php?article=1009005

Сектора Лирики