Welcome to ROOTPWN!

Реверс софта на Java. Уровень для чайников и прочих самоваров

Регистрация
10 Дек 2018
Сообщения
9
Симпатии
22
#1
Статья предназначена для новичков, аниме-дебилов и юных поддуванов секты реверсеров. Если вы не относите себя к таковым, не читайте её.


Пожалуй, нет реверса проще, чем реверс софта, написанного на Java. Существуют разные методы защиты ваших (и не очень) трудов от чужих глаз, но о них позже. Скорее всего, когда вы слышите про реверс Java приложений, вам на ум сразу приходит декомпилятор и поднесённый на блюдечке исходный код. Что ж, справедливости ради, такое тоже встречается, обычно на всяких CTF, но чаще попадается код, который прогнали хорошим обфускатором, после чего он превращается в вырвиглазное и совершенно нечитаемое месиво бессмысленных символов. Пока что такой ужас трогать мы не будем, а попробуем начать с простого.

Нам понадобится:

- JRE (лучше последней версии, подойдёт последний апдейт 8-й мажорной версии)

- Браузер

- Что-нибудь для открытия ZIP-архивов

- IDE или текстовый редактор с подсветкой синтаксиса (здесь и далее я буду использовать vim, NetBeans или Geany)


Поехали.

Для начала возьмём какой-нибудь файл (можно при желании накодить самостоятельно, но тогда без JDK не обойтись). В качестве "донора" я использую таск с QCTF. Прикреплять джарники нельзя, так что скачать его можете тута -> https://www.mediafire.com/file/3a1t4vt7ybgv1gz/qdrive.jar/file (контрольные суммы прикреплять не буду, обойдётесь).

Теперь идём на сайт https://javadecompilers.com и заливаем его туда.

Я предпочитаю CFR, мне нравится код на выходе. Можете по желанию воспользоваться любым другим, кроме JAD, потому что это древнее говно даже Java пятой версии декомпильнуть нормально уже не может. А так был охуительный декомпилятор, да.
После этого качаем файлик с декомпилированным кодом.
1544542105536.png
Распаковываем куда угодно и видим примерно следующее:
1544542147466.png
Здесь уже в силу вступает чисто ваше знание Java. Сразу скажу что в папках com и org лежат сторонние либы, зашитые в код, поэтому там ничего особо интересного нет. Нас интересует пакет ru.qctf.drive со следующим содержимым:
1544542230687.png
Делаем vim Main.java и смотрим
1544542355318.png
Ну, в принципе, всё, на этом можно и закончить. Я ведь предупреждал, что это уровень для совсем новичков, правда? Если зайдёт, то в дальнейшем будем бороться с обфускацией, подменять классы и пересобирать джарники. А на этом пока всё.
 

Вложения

Регистрация
10 Дек 2018
Сообщения
9
Симпатии
22
#4

DXristianin

Участник
Регистрация
4 Дек 2018
Сообщения
3
Симпатии
3
#5
Доберёмся и до андроида, для него кстати и софт интересный есть, позволяющий прямо на девайсе ковыряться в apk-шниках.
Я видел подобное, но не всё подходит) Можно на примере приложения "Вконтакте"?)
 
Регистрация
10 Дек 2018
Сообщения
9
Симпатии
22
#6
Я видел подобное, но не всё подходит
Ну, может, будет новенький софт. Забегая вперёд, скажу, что я видел две достойных софтины - MT_Manager и ADK Editor.

Можно на примере приложения "Вконтакте"?)
Хм, ну почему бы и нет, с удовольствием в нём покопаюсь, только это определённо задержит выход статьи, т.к. мне нужно будет пособирать материала.
 
Сверху Снизу