Привет Гость!
Ты можешь:
Войти или зарегистрироваться

Забыл пароль
Регистрация
Меню сайта
Главная страница Каталог файлов Всё для моддинга Новости Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [174]
Уроки по переводу java игр [15]
Программы для компьютера [100]
Программы для телефона [82]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Уроки по модификации java

13.08.2014, 11:40

Исходный код - Путь от модера к кодеру

Приятного времени суток всем на этом сайте, сегодня я затрону тему связанную напрямую с восстановлением исходного кода мобильных приложений написанных на java.
Итак, приступим.

ps Вы из будущего, когда увидите свой код :D

Необходимые программы...
Всего, для получения исходного кода нам требуется три программы.
1. ProGuard Deobfuscator
2. JD Decompiler
3. fernflower.jar
А теперь по подробнее о каждой, и, к слову, все имена кликабельны ;)

Что такое обфускация-деобфускация?
Не секрет, что большинство разработчиков не хотят раскрывать тайны своего исходного кода для других, что-бы не допустить "дополнительной сторонней отладки" и использования на свое усмотрение, так сказать. Все то же большинство разработчиков используют для защиты своих приложений один действенный способ. Разумеется не в 100% случаев, но в 90 точно =)
Свои приложения они подвергают обфускации, и код становится абсолютно непонятным. Методы,переменные и классы теряют все свои уникальные имена, и, понять как приложение работает просто нереально. Более того, обычные декомпиляторы даже такой код восстановить не в состоянии.
Добрые люди из отдела поддержки пиратства создали программку ProGuard Deobfuscator, она работает в точности до наоборот. Присваивая всем переменным и методам уникальные (но все еще непонятные имена) и, делая код возможным к запуску в принципе.

Зачем нужен JD Decompiler?
Просто так, если захочется только посмотреть код. Ибо полная декомпиляция занимает некоторое время. А вот за просмотром отдельных классов, прошу использовать эту программу. Хотя код на 100% она не восстанавливает, но, явно лучше чем DJ Java Decompiler, который лишь представлял набор команд для виртуальной машины java.

fernflower.jar - Какого черта?
А это и есть то, ради чего мы все здесь сегодня собрались. Маленький декомпилятор без интерфейса который делает чудеса. Найти его очень трудно, если не сказать больше. Но, он возвращает исходный код. Самый натуральный.

Среда разработки или как там её черт возьми...
Совсем забыл, что для редактирования (удобного, а не через блокнот) и компиляции кода, нужен компилятор. Сам лично пользуюсь NetBeans. Премудростями его установки сейчас делиться не стану, ибо есть и другие среды разработки, вы вольны в своем выборе) Но, код придется "вставлять" в одну из таких программ-компиляторов. Так что, не забудьте что-нибудь установить ;)

Порядок действий.
Вы готовы стать кодерами?)
И перенять на себя всю ту головную боль от рефакторинга приложений?
Тогда вот с чего мы начнем:
1. Найдем какую нибудь небольшую игрушку. Пускай это будут танчики про.
2. Теперь берем Jar файл этой замечательной игры, и кидаем его со всей дури на deobfuscate.bat
3. А теперь самое интересное - консоль. Открываем её через комбинацию Win+R, вписываем cmd, затем Enter =)
4. Чем дальше тем лучше. Для начала установим адрес до папки с нашим jar-файлом. Командой "cd" устанавливаем каталог с fernflower-ом и нашей игрушкой после деобфускации.
ps

5. Как же там было... Ах да, сначала пишем активацию нашего цветочка, затем путь до приложения, а затем папку в которую нужно будет поместить исходный код.
Получилось что-то вроде:
java -jar fernflower.jar A:\Users\Беспалевный\Desktop\Гайды\танчики\tanchiki_pro.jar
A:\Users\Беспалевный\Desktop\Гайды\танчики\out
ps Естественно без переноса строк.
6. Вот и все. Заходим в папку куда был загружен jar с декомпилированными файлами. Распаковываем его 7zip-ом или чем-то подобным. Выдираем из рук разработчиков файлы с расширением java и спокойно уносим их в закат под героическую музыку...


Что делать дальше? Заносить содержимое jar в среду разработки, настраивать проект под особенности приложения и компилировать. Затем искать критические ошибки (если есть) и исправлять их. А потом приступать к рефакторингу...


На этом желаю всем удачи в расчленении своих любимых, и не обязательно, игр.
ps Программы нужные для декомпиляции уже залиты, ссылки в начале страницы кликабельны
Категория: Уроки по модификации java | Добавил: ALDECOTAN
Просмотров: 3618 | Комментарии: 18 | Рейтинг: 5.0/5

Всего комментариев: 181 2 »
Спам
ALDECOTAN   (18.08.2014 18:45)
St@SyaN, попробовал. Сработало. Но, у меня программа которую требовалось декомпилировать обычно лежала в другой папке где нибудь на диске, и я по привычке прописывал полный путь.

Спам
ALDECOTAN   (18.08.2014 18:44)
stalkeros, прикидывается. Он засветился впервые два года назад, под предыдущей статьей, и там выглядел куда образованнее.
   Касательно той статьи, все не так просто как кажется. Источник у которого я и получил всю информацию оказался с сюрпризом. Но, понял я это лишь спустя пару лет. Ворошить прошлое не буду, скажу лишь, что тогда он был прав по сути, сейчас же, все решительно наоборот.

Спам
stalkeros   (18.08.2014 18:07)
Gunman, ты реально такой дурак,или притворяешься?

Спам
Gunman   (18.08.2014 16:29)
.

Спам
ALDECOTAN   (18.08.2014 16:17)
Gunman, любишь же ты нести ахинею. В прочем, здесь мат запрещен, но, я бы высказал пару ласковых в твой адрес при первой же возможности.
Если ты все еще не понял, что в принципе не удивительно, речь здесь идет не о декомпиляции отдельного класса, а о получении исходного кода всего приложения. Если не проводить деобфускации, и просто пропустить игру через fernflower, код будет насчитывать несколько тысяч ошибок. Связанных с адресами переменных методов и классов.
А теперь иди лесом, парень, и не говори о том, чего не знаешь.

Спам
Gunman   (18.08.2014 02:46)
.

Спам
Gunman   (18.08.2014 02:44)
.

Спам
ALDECOTAN   (17.08.2014 19:02)
Gunman, ищи на хабре, раз ты говоришь что автор декомпилятора сидит именно там.

Спам
ALDECOTAN   (17.08.2014 18:58)
Gunman, а статью на хабре все же нашел. Жаль только, что, увидел уже после написания статьи. В прочем, кому я это объясняю?

Спам
ALDECOTAN   (17.08.2014 18:55)
Gunman, хм... ну так дерзай. Попробуй получить код из приложения, без деобфускации. Что-бы он при этом работал. Ибо, в каждом классе будут абсолютно одинаковые переменные и методы. И, при их запуске компилятор выдаст пару сотен ошибок.

1-10 11-18
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

Quantum 3.0
Комментов: 65 | Загрузок: 205
{Crutches} Bloody Friday
Комментов: 1 | Загрузок: 24
Temple Run
Комментов: 0 | Загрузок: 41
Fruit Ninja
Комментов: 0 | Загрузок: 19
Talking Tom
Комментов: 0 | Загрузок: 33
SILENT EVIL 3D v.1.4 Beta (Обнова 12.08.2018)
Комментов: 51 | Загрузок: 319
Gish Ultimate
Комментов: 0 | Загрузок: 33
Help Me
Комментов: 1 | Загрузок: 31
Resident Evil: Raccoon City
Комментов: 4 | Загрузок: 61
Darkest Fear 3D [Alpha]
Комментов: 11 | Загрузок: 61

БЫСТРАЯ НАВИГАЦИЯ ПО САЙТУ
Комментов: 3 | Просмотров: 2709
Работа с EMG Studio
Комментов: 9 | Просмотров: 4064
J2ME Loader - 1.2.5.1 (эмулятор Java на Android)
Комментов: 2 | Просмотров: 2143
M3G to OBJ Converter + Lang Editor
Комментов: 2 | Просмотров: 863
Исходный код Gish Reloaded
Комментов: 2 | Просмотров: 1901
Моды Minecraft PE
Комментов: 0 | Просмотров: 1514
Оптимизация графики
Комментов: 5 | Просмотров: 2600

Неизданное (JAVA)
Комментов: 10 | Просмотров: 435
Splatterhouse: Cry & Fear
Комментов: 15 | Просмотров: 322
КОНКУРС МОДОВ 2018
Комментов: 3 | Просмотров: 373
Old Gameloft games
Комментов: 0 | Просмотров: 468
С наступающим короч)
Комментов: 1 | Просмотров: 739
Silent Evil - что же с релизом?
Комментов: 5 | Просмотров: 630
Alien Shooter на телефон! |Java| (Полное прохождение)
Комментов: 0 | Просмотров: 663
Случайный мод
Мой первый мод на онлайн игру третий мир.
1552 242 9 3.0
Статистика
Онлайн всего: 4
Гостей: 4
Пользователей: 0
Пользователи
Гости сайта

[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2018 | Хостинг от uCoz