Сейчас на форуме: -Sanchez- (+8 невидимых)

 eXeL@B —› Основной форум —› Java. Взлом и реверсинг
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 19 сентября 2013 21:43 · Поправил: 4kusNick
· Личное сообщение · #1

Дружественные темы: Взлом .net приложений, Flash, Взлом под Android, Unity3D.

Всё-в-одном
JByteMod - красивый и удобный комбайн для взлома и реверсинга явы: декомпиляция, правка байткода, навигация, Control Flow граф и проч.
Bytecode Viewer - комбайн для взлома java апплетов. Содержит в себе кучу разных инструментов.


Декомпиляторы:
Andro Chef Java Decompiler - декомпилятор от автора DJ Java Decompiler, справляется лучше, чем DJ, развивается.

CFR - свежий консольный бесплатный декомпиль, справляется со сложными конструкциями, выхлоп качественный, но пока только в консоль.

DJ Java Decompiler - а вот и DJ Java Decompiler. Давно не обновлялся, автор явно перестал его поддерживать в пользу Andro Chef.

Fernflower - неплохой, но заброшенный бесплатный консольный декомпиль (не обновлялся с 2010). Иногда справляется с обфусцированным байткодом. Readme.txt

JD-GUI - бесплатный, неплохой ява дизассемблер.

SecureTeam Java Decompiler - бесплатный, простой декомпиль. Понимает гегенрики и typesafe enum'ы, но может наврать на ровном месте.
Luyten - аналогично, немного удобней, чем SecureTeam'овский.
Оба используют в основе Procyon - набор разных полезных фреймворков, таких как reflection (думаю тут понятно) и expressions (по сути порт Linq.Expressions из .NET).

Дизассемблеры и редакторы байткода
Class Construction Kit - юзабельный редактор байткода с глючноватым интерфейсом.

Class Editor - симпотишный, но древнючий редактор байткода.

dirtyJOE - умеет редактировать байткод и не только.

JBE - Java Bytecode Editor - глючноватый редактор байткода.
CJBE - Continued Java Bytecode Editor - ещё один глючноватый редактор байткода

JBytedit - опенсорс редактор байткода, умеет декриптить строки после обфускации ZKM (Zelix KlassMaster).

Krakatau - продвинутый асм, дизасм и декомпилятор в одном флаконе. Требует питон и хорошо настроенные руки с головой для работы.

reJ - очередной редактор байткода.

Hook Manager - инструмент для инжекта своего кода в существующие JAR файлы, даже если байткод обфусцирован. Также может извлекать код из указанных методов.
Модификация от vovanre --> Just_Hook_Manager.zip <-- и описание модификации --> Link <--

Отладчики:
JavaSnoop - бесплатный, удобный тул

JDebugTool - неполохой дебаггер, но работает по стандартам (жертва должна ждать отладчик через Shared Memory или сокет).

Деобфускаторы
Java Deobfuscator - сырой деобфускатор (скорей как помощник).
JDeobT - умеет выковыривать строки из-под Allatori и ZKM
JMD - довольно серьёзный деобфускатор (даже обновлялся вроде не так давно).

Разное
jloader - самодельная утлита от vovanre для подмены классов в рантайме, подробности см. в посте --> Link <--

Если есть что добавить - пишите, добавим!

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: ZaZa, JohnyDoe, Rustem, Coderess, mak

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 20 сентября 2013 08:21
· Личное сообщение · #2

4kusNick
еще https://bitbucket.org/mstrobel/procyon/overview

-----
SaNX


| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 20 сентября 2013 13:58 · Поправил: 4kusNick
· Личное сообщение · #3

SaNX
Спасибо, ещё на основе Procyon есть декомпили:
http://www.secureteam.net/Java-Decompiler.aspx
https://github.com/deathmarine/Luyten
Правда справляются они так себе, много странных вложенных конструкций с Label'ами могут сгенерить на ровном месте.
Но фреймворк стоит взять на заметку в любом случае, т.к. он вроде как активно пилится.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 20 сентября 2013 14:34
· Личное сообщение · #4

Добавил в шапку ещё неколько инструментов:
CFR - свежий декомпилятор
Krakatau - свежий асм\дизасм\декомпилятор

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 18 октября 2013 14:52 · Поправил: ajax
· Личное сообщение · #5

--> StrongNameHelper4ANDROID by whoknows <--
4kusNick
там одни баловни

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 18 октября 2013 20:46
· Личное сообщение · #6

Хороший архивчик) Ему будут рады и в этой ветке: Взлом прог под Android

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 30 ноября 2013 11:35 · Поправил: sendersu
· Личное сообщение · #7

Обновка dirtyJOE - Java Overall Editor

2013-11-28 v1.6 (c472):
Added Restore Debug Info feature (GUI and command line support)
Added viewer and editor for LocalVariableTable attribute
Added viewer for LineNumberTable attribute
....... /и много всего иного
..........
http://dirty-joe.com/help/changelog.php


кому интересно детали
http://blog.rewolf.pl/blog/?p=786

| Сообщение посчитали полезным: 4kusNick


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 30 ноября 2013 11:46
· Личное сообщение · #8

http://www.drgarbage.com/bytecode-visualizer.html

| Сообщение посчитали полезным: DimitarSerg, 4kusNick

Ранг: 30.2 (посетитель), 18thx
Активность: 0.030
Статус: Участник

Создано: 01 декабря 2013 12:17 · Поправил: Quadcon
· Личное сообщение · #9

Сфига jd-gui заброшенный? о0 последний апдейт 05 Nov 2013

http://jd.benow.ca


@4kusNick: извини если обидел.

| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 01 декабря 2013 15:43
· Личное сообщение · #10

Quadcon
Ну, когда я пост писал, последний апдейт был 18 Oct 2012, рад что автор таки не заброил его и выпустил апдейт спустя год!

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 декабря 2013 15:50
· Личное сообщение · #11

к слову сказать --> Link <--



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 04 декабря 2013 23:57
· Личное сообщение · #12

на тутси CodeCracker --> запостил XorStringDecryptor (Java) <--
Another java string decryption tools:
- you only need to specify a directory with java classes
- faster than JavaStringDecryptor


ee80_04.12.2013_EXELAB.rU.tgz - XorStringDecryptor.zip

| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 05 декабря 2013 00:28
· Личное сообщение · #13

Тул конечно не универсальный, но зато можно без проблем заточить его под свои нужды, не надо с нуля самому реплэйсер кодить будет.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 24 июня 2014 10:39 · Поправил: -=AkaBOSS=-
· Личное сообщение · #14

наткнулся на косяк в JD-GUI - неправильно декомпилятся операнды для типа данных Long

Code:
  1. // так декомпилит JD-GUI
  2.   long l4 = (l2 & 0xFF000000) >> 24;
  3.  
  4. // а так - DJ Java Decompiler
  5.   long l6 = (l4 & 0xffffff000000L) >> 24;


т.е JD-GUI режет операнд до 32бит, и пофиг что работа идёт с 64битной переменной
возможно, кому-нибудь это сэкономит пару часов, потраченных на отладку

кстати, DJ Java Decompiler таки обновился - 3.12.12.98 Revised: 07 April 2014



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 24 июня 2014 15:11
· Личное сообщение · #15

Кста, кто не вкурсе, можно джэбом декампилить жаву. Надо сделать так: dx --dex -output=123.dex your.jar и полученный декс открывать в джэбе. Тулза dx берется из андроид сдк.

-----
SaNX


| Сообщение посчитали полезным: Jaa

Ранг: 13.1 (новичок), 18thx
Активность: 0.020
Статус: Участник

Создано: 24 июня 2014 16:19
· Личное сообщение · #16

-=AkaBOSS=- пишет:
кстати, DJ Java Decompiler таки обновился - 3.12.12.98 Revised: 07 April 2014

DJ.Java.Decompiler.v3.12.12.98.Cracked.by.yoza[UpK].



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 26 октября 2014 21:14
· Личное сообщение · #17

Утянул у китайчегов: http://rghost.ru/58729972
там лютен и процион, китайчег пишет типа баги поправил. китайчег с ником scz - видно сильно шарит в жабе, тутор какой-то он там делал по взлому джэба.

-----
SaNX


| Сообщение посчитали полезным: 4kusNick, uncleua

Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 27 октября 2014 14:16
· Личное сообщение · #18

Может кому понадобиться обфускатор -> --> Stringer 1.6.11.patch <--

| Сообщение посчитали полезным: sapog93, t0ShA


Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 07 мая 2015 11:10 · Поправил: Coderess
· Личное сообщение · #19

vovanre
Может кому понадобиться обфускатор -> --> Stringer 1.6.11.patch <--

Исследую некоторые возможности обфускации Java кода и понадобилась данная тулза, перезалейте пожалуйста

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 07 мая 2015 13:06
· Личное сообщение · #20

Coderess, увы давно утерян. Могу подсказать сам (в лс скинул джабер), почти год потратил на изучение что можно намутить в java.

//ps вся суть его обфускации была это шифрование строк с привязкой к вызывающему методу и юзанье нового опкода в 7 java.

| Сообщение посчитали полезным: Coderess


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 07 мая 2015 13:13
· Личное сообщение · #21

У меня сохранилась:
--> Link <--

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 07 мая 2015 15:32 · Поправил: vovanre
· Личное сообщение · #22

Да там просто сломать, гляньте boolean метод в классе License_что там_



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 07 мая 2015 15:42
· Личное сообщение · #23

vovanre
а дексгуард так и не осилил?

-----
SaNX




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 07 мая 2015 17:11 · Поправил: vovanre
· Личное сообщение · #24

SaNX, я не уверен, но пишет что активировано --> dexprotector.jar <-- : BDA30A0D7A89379AD12BD686C6D608B529F2811E



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 07 мая 2015 21:17 · Поправил: SaNX
· Личное сообщение · #25

vovanre
java -jar dexprotector.jar
Error: Invalid or corrupt jarfile dexprotector.jar

Добавил манифест, запустилось.

License file: C:\Users\SaNX\dexprotector.licel
DexProtector
Version: 5.0.3
Build id: 20141119

(c) Copyright Licel LLC 2011-2014. All rights reserved.
Visit http://dexprotector.com

Third-Party Licenses. Information about third-party components and
its licenses can be found in distribution

The license file is not found or corrupted. Try run DexProtector with -activate option

И мессэджбокс с "Internal error"

-----
SaNX




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 07 мая 2015 21:56 · Поправил: vovanre
· Личное сообщение · #26

SaNX попробуй через gui

// сейчас переделаю



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 07 мая 2015 22:03 · Поправил: SaNX
· Личное сообщение · #27

vovanre
это и есть через гуи

в консоли так:
DexProtector v5.0.3(20141119), Licel LLC
License file: C:\Users\SaNX\dexprotector.licel
DexProtector
Version: 5.0.3
Build id: 20141119

(c) Copyright Licel LLC 2011-2014. All rights reserved.
Visit http://dexprotector.com

Third-Party Licenses. Information about third-party components and
its licenses can be found in distribution


[Error] Failed to process due to: The license file is not found or corrupted. Tr
y run DexProtector with -activate option

-----
SaNX




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 07 мая 2015 22:51
· Личное сообщение · #28

Чёрт, они что то новое добавили. Нужно разбираться

Добавлено спустя 18 минут
Чёрт!
Code:
  1. [Extracting]
  2. [Analyzing]
  3.         in: populateAllFiles:V
  4.             found assets method call: Landroid/content/res/AssetManager;->open:Ljava/io/InputStream;Ljava/lang/String;
  5.         in: onCreateWindow:ZLandroid/webkit/WebView;ZZLandroid/os/Message;
  6.             found setWebViewClient method call: Landroid/webkit/WebView;->setWebViewClient:VLandroid/webkit/WebViewClient;
  7. [Processing]
  8. [Processing assets]
  9. [Processing classes]
  10. java.lang.NullPointerException: string == null




Ранг: 4.5 (гость)
Активность: 0.020
Статус: Участник

Создано: 26 сентября 2015 13:39
· Личное сообщение · #29

Спасибо,если пишите в среде eclipse то для таких целей есть плагин:decompiler вроде-бы.



Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 05 января 2016 00:02 · Поправил: vovanre
· Личное сообщение · #30

Вообщем есть такая тулза --> Hook Manager <-- (её стоит добавить в шапку), мне понравилась идея, но не понравилась реализация.

По этому я её прилично переделал ->
--> Just_Hook_Manager.zip <--

Теперь нужно делать больше действий, но появился полный контроль над выполнением кода.

1) Читаете инструкцию оригинального Hook Manager'а
2) После того, как отметили нужные функции для перехвата сохраняете Jar'ник
3) Далее нужно сгенерировать каркас для обработчиков хука. Для этого идём в File и тыкаем

Выбираем папку куда сохранять исходники. Исходники будут такого вида:


Менять название функций или имя пакета - ЗАПРЕЩЕНО!

4) Меняете обработчики как вам угодно (Что бы нормально cкомпилировалось, нужно изменённый jar добавить как библиотеку).
5) Если вы хотите прервать выполнение оригинальной функции или вернуть свой результат, нужно кинуть исключение
Code:
  1. throw new ReturnException("Hello word!")

6) Закидывает скомпиленные обработчики хука в изменённый jar'ник.
7) PROFIT!!1!

Если тип возвращаемого значение не совпадает с оригинальным вы получите cast exception, защиту от ошибок я не делал.


Возможны любые глюки\вылеты\краши, если такие будут пишите в лс.

Добавлено спустя 36 минут


И вдогонку

Комбайн для работы с байткодом + менеджер декомпиляторов -> --> Link <--

Сырой деобфускатор (скорей как помощник) -> --> Link <--

Добавлено спустя 12 часов 5 минут
И пожалуй ещё маленькую тулзень выложу (самопальную).

Иногда классы java пошифрованны и(или) подгружаются динамически, в таких случаях очень муторно их изменять.
Накодил программку которая через javaagent api подменяет классы на лету.
Инструкция:
1) Складываем пропатченные class файлы в отдельный jar(или zip) (пути нужно сохранять)
2) Запускаем
Code:
  1. java -javaagent:jloader.jar=<путь до файла с пропатченными классами без русских символов > -jar <нужный jar>

3) ???
4) PROFIT!11!1

--> jloader.jar<--

| Сообщение посчитали полезным: 4kusNick, SaNX, VodoleY, JohnyDoe, yanus0, t0ShA, Autokent, r_e
. 1 . 2 . >>
 eXeL@B —› Основной форум —› Java. Взлом и реверсинг
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати