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

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [10]
Мини-чат
Главная » Статьи » Уроки по модификации 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
Просмотров: 5691 | Комментарии: 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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

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

Rise Of Antares
Комментов: 1 | Загрузок: 44
РЕЗНЯ 3D: Not city of sins
Комментов: 0 | Загрузок: 101
Vice Multi-Player 0.1 beta RC 8-4-9-5
Комментов: 0 | Загрузок: 18
GTA San Andreas Beta 1
Комментов: 1 | Загрузок: 172
Galaxy Force 2 FINAL
Комментов: 42 | Загрузок: 1
Haunting abandoned mansion (color mod)
Комментов: 0 | Загрузок: 148
Deadly game Resident Evil 7 DLC
Комментов: 0 | Загрузок: 226
GTA SA FLY
Комментов: 0 | Загрузок: 281
GTA SA Mobile: Definitive Edition
Комментов: 1 | Загрузок: 492
QUAKE
Комментов: 51 | Загрузок: 432

Чат в Телеге
Комментов: 0 | Просмотров: 72
ODN Remake - скриншоты
Комментов: 0 | Просмотров: 80
O. D. N Remake
Комментов: 0 | Просмотров: 131
Новый сайт с мобильными загрузками - Oldfag
Комментов: 7 | Просмотров: 1490
Здорово и вечно 2 свободное человечество анонс номер два
Комментов: 9 | Просмотров: 1418
Дневник разработки "Шизофрения 3D" #2 - Концепция
Комментов: 2 | Просмотров: 1431
Дневник разработки "Шизофрения 3D" #1 - Общая инфа
Комментов: 0 | Просмотров: 1381
Случайный мод
mcs mod 2011- это новый мод на micro counter strike.
В этом моде изменено:
карты, оружие, деревья и т.д.
язык: русский
спасибо FMR за текстуры людей,деревьев и картинки с горами!!!
2809 360 11 4.0
Статистика
Онлайн всего: 3
Гостей: 3
Пользователей: 0
Пользователи
Гости сайта

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