eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: hlop, RevCred, minaevmaksimik, moreno410 (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Опознать тип шифрования CryptoPP
Посл.ответ Сообщение

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 2 июня 2018 08:08 · Поправил: c0deh1der New!
Цитата · Личное сообщение · #1

Помогите опознать какой тип шифрования используется.

Опишу принцип:

Вижу в отладчике, что создается дамп 1024 байта (0x400)
и далее берется зашифрованный файл и каждый байт расшифровывается типом XOR
только не побайтно а сразу по 4 байта (DWORD), но это в принципе никакого значения не имеет.
Расшифровывается блоками по 256 байт(0x100), то есть 4 куска.

Библиотека CryptoPP используется.

Так бы, конечно просто было бы вытащить дамп, ключа, но он генерируется всего 1024 байта и так весь файл. Файл может быть большой и хотелось бы поняв что за алгоритм, найти исходный ключ, который скорее всего 16 байт, на базе которого и генерятся эти блоки.

Может есть методика какая, как по каким-то опорным точкам определить тип шифрования? )

P.S. Добавлю по наблюдениям: дамп для XOR создается сначала первые 16 байт, потом после нескольких скачков по функциям остальные 1008 байт. Вижу как сразу весь кусок добавлется.
И шифрование видно что симметричное, так как в разных файлах одни и те же байты в одних и тех же местах зашифрованные байты одинаковы. Рисунок "матрицы" совпадает.

Рядом в коде вижу такие штуки типа: TestAuthenticatedSymmetricCipher


Ранг: 315.6 (мудрец)
Статус: Участник
born to be evil

Создано: 2 июня 2018 08:33 New!
Цитата · Личное сообщение · #2

c0deh1der
сигнатуры для ида поищи или сделай сам. криптопп в сырках на офсайте.

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 2 июня 2018 09:57 New!
Цитата · Личное сообщение · #3

Много там разного находится, не относящегося к делу. Поэтому проги для сканирования сигнатур не катят. Про CryptoPP это я тоже знаю, но библиотека поддерживает такое кол-во видов, что если только пробовать каждый, компилить и потом идой смотреть как он выглядит чтобы сравнить))))))) Мне кажется это садомазо)))


Ранг: 1964.0 (!!!!)
Статус: Модератор
retired

Создано: 2 июня 2018 10:36 New!
Цитата · Личное сообщение · #4

c0deh1der
ajax пишет:
сигнатуры для ида

Гугл IDA FLIRT.

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 2 июня 2018 13:28 New!
Цитата · Личное сообщение · #5

c0deh1der А если попробовать Crypto Checker? (CC by Aleph)
Он хоть всякие sbox-ы и прочие константы покажет. И в зависимости от того что покажет дальше разбираться.
Можно и Detect It Easy попробовать, но CC больше криптосигнатур знает.

А вообще файл в студию. Людям тоже интересно посмотреть.


Ранг: 119.7 (ветеран)
Статус: Участник

Создано: 2 июня 2018 14:37 · Поправил: f13nd New!
Цитата · Личное сообщение · #6

Факт того, что при одинаковых данных на входе каждый раз те же данные на выходе, указывает не на симметричный алгоритм, а отсутствие соли. Если известно что за библиотека, я бы посоветовал найти ее в виде dll и по константам/строкам выяснить имена используемых функций. Это был бы самый простой и быстрый способ.

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 2 июня 2018 16:16 · Поправил: c0deh1der New!
Цитата · Личное сообщение · #7

Попробовал FLIRT, и кучу других плагинов, попробовал CC by Aleph.
Находят очень много всего)))
Теперь еще сложнее. Все дело в том, что в этой библиотеке много разных функций для разных задач. Например, есть работа с HASP, но он нам не нужен. Есть разные CRC и прочее.

f13nd, обычно шифрование каждый последующий байт шифрует на основе предыдущих данных. Таким образом изменение одного байта приводит к изменению всего файла после этого байта. Здесь же такого нет.

В архиве, расшифрованная dll, взятая из памяти. и файлы .cfg зашифрованные и расшифрованные для двух разных версий (для сравнения).
(.cfg читает эта dll и расшифровывает в памяти для себя)

если IDA открыть, то начинается с чтения этого файла тут: sub_12431960
sub_12438860 - собирается ключ
3E FC D2 98 C7 AF 7A D5 36 B0 3E 9A 66 0E 19 5B
D9 C6 14 3B 44 10 AF 48 83 3B 3C 3E FC D2 98 C7
два по 16 байт
думаю это ключ и IV
только пробовал декодировать используя их всякими утилитами - не катит.

Во благо народного достояния, готов отблагодарить немного, если поможете. А то я уже все декодировал, нужное так из памяти выдрал. Но дело принципа не дает мне покоя)))

Я подсунул вместо cfg ему файл с нулями размером в 10 метров, и из IDA выдрал созданный декодированный дамп точно такого же размера, по сути являющийся xor. С помощью него можно декодировать любой файл меньшего размера... но ведь не по фен шую))

Ранг: 556.7 (!)
Статус: Модератор

Создано: 2 июня 2018 16:55 New!
Цитата · Личное сообщение · #8

c0deh1der
Это какой-то потоковый крипто. Вероятно, производный от блокового.
Если бы вы выложили софт - было бы гораздо проще.


Ранг: 119.7 (ветеран)
Статус: Участник

Создано: 2 июня 2018 17:28 · Поправил: f13nd New!
Цитата · Личное сообщение · #9

c0deh1der
То есть ты получил 10метровый файл, поксорив на который зашифрованный файл ты получаешь оригинал? Очень сомневаюсь, что это имеет отношение к серьезным криптографическим библиотекам.

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 2 июня 2018 18:05 New!
Цитата · Личное сообщение · #10

r_e,
Дистриб: http://catcut.net/ACwv

Та dll, которая присутствует в оригинале, внутри содержит зашифрованную dll, которую я выложил в предыдущем посту. Я ее кладу рядом c родной и запускаю lecroySparqapp.exe с отладкой расшифрованной dll. И все работает.
Все это в папке: c:\Program Files\LeCroy\XStream\

Сразу над пофиксить IsDebuggerPresent().

f13nd,

В том и дело ж-)
В предыдущей версии они пользовали Blowfish. И вроде все было понятно, но когда их рассекретили, они побыстрому "пофиксили" и сделали какую-то муть, что не понятно - вроде и шифрование и вроде где-то кто-то кого-то нае^^^.

Ранг: 556.7 (!)
Статус: Модератор

Создано: 2 июня 2018 18:58 New!
Цитата · Личное сообщение · #11

c0deh1der
Не вижу выше ни либ ни имен, но криптопп нашлось только в одном файле ConfigMgrSvr.dll.
На первый взгляд шифрование идет через
CryptoPP::TF_VerifierImpl<CryptoPP::TF_SignatureSchemeOptions<CryptoPP::TF_SS<CryptoPP::PKCS1v15,CryptoPP::SHA1,CryptoPP::RSA,int>,CryptoPP::RSA,CryptoPP::PKCS1v15_SignatureMessageEncodingMethod,CryptoPP::SHA1>>

Надеюсь смогете понять как это в с++ будет. Параметры инициализации для нее в sub_100AE481

Добавлено спустя 1 минуту
Кстати, раз уж вы Lecroy копаете, может подскажете есть ли для его девайсов генераторы кодов активации фич?


Ранг: 119.7 (ветеран)
Статус: Участник

Создано: 2 июня 2018 19:07 New!
Цитата · Личное сообщение · #12

Таблицу формирует в 124080C0, по ней тупоксорит 1024байта в 12406168. Если это тебя вдохновляет на подвиг, можешь разобраться как, но я бы ограничился этим 10мб файлом. Смотря для чего это тебе надо.

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 2 июня 2018 19:51 New!
Цитата · Личное сообщение · #13

f13nd,
да но что это за алгоритм? )))

Так то понятно что все работает как-бы... но топик называется иначе)

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



Ранг: 119.7 (ветеран)
Статус: Участник

Создано: 2 июня 2018 21:01 · Поправил: f13nd New!
Цитата · Личное сообщение · #14

c0deh1der такая хурма, как я уже говорил, к серьезной криптографии относиться не может. Поэтому что за алгоритм? - любительская поделка, с характерным "ты состаришься пока разберешь эти два мегабайта кода". Мне нечто подобное иногда попадается в устройствах управления, но скорей как защита от дурака и потому что не всякий контроллер потянет что-то сложней за приемлемое время посчитать. Ну скорей не подобное, а в точности такое же

Code:
  1. proc xxxx_decrypt_encrypt,pData,nSize,pCounter,pPoly1,nPoly2,nPoly3
  2.                     pushad
  3.                     mov esi,[pCounter]
  4.                     mov edi,[pPoly1]
  5.                     xor ebx,ebx
  6.             .next: .if ebx < [nSize]
  7.                         .if DWORD[esi] = 0
  8.                               test DWORD[edi],1b
  9.                              .if ZERO?
  10.                                    mov eax,[nPoly2]
  11.                                    add DWORD[edi],eax
  12.                              .else
  13.                                    mov eax,[nPoly3]
  14.                                    xor DWORD[edi],eax
  15.                              .endif
  16.                               ror DWORD[edi],1
  17.                               mov DWORD[esi],4
  18.                         .endif
  19.                          mov ecx,4
  20.                          sub ecx,DWORD[esi]
  21.                          imul ecx,ecx,8
  22.                          mov eax,DWORD[edi]
  23.                          shr eax,cl
  24.                          mov edx,[pData]
  25.                          xor BYTE[edx + ebx],al
  26.                          inc ebx
  27.                          dec DWORD[esi]
  28.                          jmp .next
  29.                    .endif
  30.                     popad
  31.                     ret
  32. endp

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

Ранг: 556.7 (!)
Статус: Модератор

Создано: 2 июня 2018 22:12 New!
Цитата · Личное сообщение · #15

f13nd пишет:
такая хурма, как я уже говорил, к серьезной криптографии относиться не может.

Это неверное утверждение. Такое шифрование называется "гаммирование" и обладает той же стойкостью что и задающий генератор.


Ранг: 119.7 (ветеран)
Статус: Участник

Создано: 2 июня 2018 23:47 New!
Цитата · Личное сообщение · #16

r_e спасибо, не слыхал даже. В таком случае скорей всего один из high speed stream ciphers: ChaCha (8/12/20), Panama, Sosemanuk, Salsa20 (8/12/20), XSalsa20. Одним словом Recommended for applications where speed is more important than confidence.

Ранг: 11.1 (новичок)
Статус: Участник

Создано: 3 июня 2018 07:40 New!
Цитата · Личное сообщение · #17

Спасибо! ))))))))
 eXeL@B —› Основной форум —› Опознать тип шифрования CryptoPP

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS