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

Забыл пароль
Регистрация
Меню сайта
Главная страница Каталог файлов Всё для моддинга Новости Моды ПК игр Форум 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
Просмотров: 3009 | Комментарии: 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)
Я читал ту статью (habrahabr.ru/post/176825) давно, сталобыть ник создателя декомпилятора Stiver, английская справка там присутствует.

Спам
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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

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

Gish The Mobile Game Remake [0.1 Beta]
Комментов: 18 | Загрузок: 117
SILENT EVIL 3D 2017 DEMO - NEW! v.1.1.1
Комментов: 17 | Загрузок: 48
Amityville Horror: Mobile Game
Комментов: 0 | Загрузок: 18
SERVERSIDE Demo
Комментов: 3 | Загрузок: 52
Quakeman ORIGINS - Beta Test
Комментов: 32 | Загрузок: 48
Flappy Bird
Комментов: 0 | Загрузок: 35
Piano Tiles 2
Комментов: 0 | Загрузок: 40
L2D Android
Комментов: 10 | Просмотров: 1265
DOOM II APK
Комментов: 21 | Загрузок: 70
Gravity Defied Antology 2017 LevelPack Part 13
Комментов: 0 | Загрузок: 70
Случайный мод

Вот и вышел долгожданный мод... Настолько долгожданный, что большинство тех кто его ждали уже приобрели новые смартфоны да и попросту на него забили после постоянных переносов даты выхода и решили что он вообще никогда не выйдет. Или это всё фейк и скрины нарисованы в фотошопе, были и такие кадры.
14935 121 3.4
Статистика
Онлайн всего: 2
Гостей: 2
Пользователей: 0
Пользователи
Гости сайта

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