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

Забыл пароль
Регистрация
Меню сайта
Главная страница Каталог файлов Всё для моддинга Новости Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [174]
Уроки по переводу java игр [15]
Программы для компьютера [101]
Программы для телефона [83]
Модификация смартфонных игр [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
Просмотров: 4519 | Комментарии: 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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

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

DOOM RPG : DEATHMATCH
Комментов: 1 | Загрузок: 19
Quantum (Build 20.05.2020+обнова конвертера)
Комментов: 76 | Загрузок: 555
Project Beta: Advanced Warfighter [FINAL BUILD]
Комментов: 7 | Загрузок: 322
Неделя в Аду / Week In Hell
Комментов: 7 | Загрузок: 29
Chousei Kantai Sazer X
Комментов: 0 | Просмотров: 163
Нечто - Графический квест
Комментов: 1 | Загрузок: 31
L2D mod
Комментов: 1 | Загрузок: 44
ГТА: Советская Россия Русский Перевод BETA 1 "Основы и Принципы"
Комментов: 0 | Загрузок: 41
Doom RPG Brew Sounds
Комментов: 1 | Загрузок: 68
Stalker Quest
Комментов: 3 | Загрузок: 75

Mescii
Комментов: 0 | Просмотров: 307
M3G Ripper с экспортом текстур из моделей
Комментов: 0 | Просмотров: 358
M3G to OBJ Converter + Lang Editor
Комментов: 2 | Просмотров: 2048
БЫСТРАЯ НАВИГАЦИЯ ПО САЙТУ
Комментов: 3 | Просмотров: 3541
Работа с EMG Studio
Комментов: 9 | Просмотров: 5340
J2ME Loader - эмулятор Java на Android
Комментов: 4 | Просмотров: 3760
Исходный код Gish Reloaded
Комментов: 2 | Просмотров: 2704

Поколение Java #4 — ФЕНОМЕН Left 2 Die
Комментов: 1 | Просмотров: 120
Gangstar 2 Beta
Комментов: 0 | Просмотров: 188
[Поколение Java #3] ВСЕ ИГРЫ про Человека-паука
Комментов: 0 | Просмотров: 511
Sonic.EXE - Анонс
Комментов: 0 | Просмотров: 968
ИТОГИ 2018
Комментов: 3 | Просмотров: 1028
С Новым 2019 Годом Кабана!
Комментов: 1 | Просмотров: 1025
Неизданное (JAVA)
Комментов: 10 | Просмотров: 1552
Случайный мод
Prototype mod
3701 412 18 3.1
Статистика
Онлайн всего: 2
Гостей: 2
Пользователей: 0
Пользователи
Гости сайта

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