Сейчас на форуме: vsv1, johnniewalker, NIKOLA (+7 невидимых)

 eXeL@B —› Крэки, обсуждения —› Зашифрованные Java классы
Посл.ответ Сообщение

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

Создано: 10 июня 2016 12:24
· Личное сообщение · #1

Добрый день форумчане!
Имеется программа написанная на смеси Java/C++. Часть Java классов зашифрована. Расшифровка их происходит налету специальной Java машиной. То есть прога использует свою jvm.dll которая расшифровывает классы и потом передает в обычную jvm.dll.
Пробовал модифицировать defineClass в рантайме чтобы сделать дамп классов после дешифровки, но дамп оказался тем же самым зашифрованным.
Подскажите в каком направлении копать чтобы расшифровать классы.
Всем доброго дня!




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 10 июня 2016 13:16
· Личное сообщение · #2

jinoweb пишет:
Подскажите в каком направлении копать чтобы расшифровать классы.

Eclipse с плагином для отладки Java не пробовали?

-----
IZ.RU




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

Создано: 10 июня 2016 13:59
· Личное сообщение · #3

DenCoder пишет:
Eclipse с плагином для отладки Java не пробовали?

Нет не пробовал. О каком плагине идет речь?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 10 июня 2016 14:38
· Личное сообщение · #4

jinoweb гугл

http://stackoverflow.com/questions/975271/remote-debugging-a-java-application
http://www.ibm.com/developerworks/library/os-ecbug/index.html

-----
[nice coder and reverser]




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

Создано: 10 июня 2016 15:00
· Личное сообщение · #5

Hellspawn пишет:
jinoweb гугл

http://stackoverflow.com/questions/975271/remote-debugging-a-java-application
http://www.ibm.com/developerworks/library/os-ecbug/index.html


Проблема в том что прога использует модифицированную Java машину и такой прием не прокатит



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

Создано: 10 июня 2016 21:30
· Личное сообщение · #6

Ето случаем у вас не Excelsior ?
http://www.excelsiorjet.com/



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

Создано: 11 июня 2016 13:14
· Личное сообщение · #7

sendersu пишет:
Ето случаем у вас не Excelsior ?
http://www.excelsiorjet.com/


Нет



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

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

Срывайте покровы. Имя софта в студию, тут не форум гадалок.



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

Создано: 11 июня 2016 21:33
· Личное сообщение · #9

Quadcon пишет:
Срывайте покровы. Имя софта в студию, тут не форум гадалок.


Нет никакой тайны в названии софта - DAS XEntry Openshell 05-06/2016. Установочный диск весит 20 гигов. Могу дать ссылку




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

Создано: 20 июля 2016 11:30
· Личное сообщение · #10

там не совсем ява машина, а что то типа proxy exe и dll, он все запросы через себя сразу на оригинальную jvm пропускает, НО при старте ставит свои хуки на функции в java.dll:
_Java_java_lang_ClassLoader_defineClass0@28
_Java_java_lang_ClassLoader_defineClass1@32
_Java_java_lang_ClassLoader_defineClass2@32
и обрабатывает их по своему - то есть читает класс, определяет зашифрован или нет, если да - расшифровывает (алгоритм AES Rijndael, но не понял в чистом ли виде) и делает дальше то что делают оригинальные функции из java.dll

Добавлено спустя 1 минуту
jinoweb
а как дамп классов реализовывал?



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

Создано: 02 августа 2016 22:34
· Личное сообщение · #11

Дамп классов пробовал через модификацию defineClass* в рантайме джавы, а также пробовал снять heap dump



Ранг: 0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2016 22:18
· Личное сообщение · #12

RAMZEZzz пишет:
там не совсем ява машина, а что то типа proxy exe и dll, он все запросы через себя сразу на оригинальную jvm пропускает, НО при старте ставит свои хуки на функции в java.dll:
_Java_java_lang_ClassLoader_defineClass0@28
_Java_java_lang_ClassLoader_defineClass1@32
_Java_java_lang_ClassLoader_defineClass2@32
и обрабатывает их по своему - то есть читает класс, определяет зашифрован или нет, если да - расшифровывает (алгоритм AES Rijndael, но не понял в чистом ли виде) и делает дальше то что делают оригинальные функции из java.dll


Нашли ключ которым зашифрованы классы? Меня тоже интересует данный вопрос.




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

Создано: 23 сентября 2016 23:34
· Личное сообщение · #13

assassin59
Ну не то что бы нашел... Сделал статик анпакер/пакер для этих классов. Извините сразу, поделиться не могу.
Но подскажу некоторые моменты.
Для каждого класса ключ уникальный,генерится хитрым алгоритмом с ксорками и таблицами из полного имени класса.
У шифрокласса есть заголовок длиной 0x1a, в котором содержится сигнатура и контрольная сумма.
Сам шифр тоже непростой, несколько раз aes, плюс ксорки по таблицам, перестановки и рекурсивные функции с AES.
Разбирал долго, недели 3 по 8-10 часов в день. IDA с декомпиляторами вам в помощь. Но в паблик, если что получится выкладывать не советую, они и так защиту чуть ли не в каждой версии меняют. А в классах заготовки для использования донглов уже находил...



Ранг: 0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2016 23:54
· Личное сообщение · #14

Спасибо за наводку. Как-то сложно все выглядит по вашим словам. Буду изучать.



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

Создано: 30 октября 2016 00:03
· Личное сообщение · #15

Я написал собственный пакет/анпакер для джава файлов. Топик можно закрыть




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 30 октября 2016 01:46
· Личное сообщение · #16

Автор сам может закрыть свою тему, кнопка "Закрыть тему" находится внизу страницы, под кнопкой "Отправить сообщение".


 eXeL@B —› Крэки, обсуждения —› Зашифрованные Java классы
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати