eXeL@B —› Основной форум —› Определить крипто алго |
Посл.ответ | Сообщение |
|
Создано: 23 апреля 2011 10:49 · Личное сообщение · #1 Есть некая прога, которая криптует свои файлы. Алго я вытащил, но хочется знать название чтобы переписать было проще. В аттаче кусок кода. Может кто сказать название этой бадяги? 02a9_22.04.2011_EXELAB.rU.tgz - крипт файлов.rar |
|
Создано: 23 апреля 2011 11:38 · Поправил: neomant · Личное сообщение · #2 |
|
Создано: 23 апреля 2011 12:08 · Личное сообщение · #3 neomant, там же оно, будь внимательнее. Nightshade 02F86000 - изюминка алго, на входе 8 байт ключа, который первоначально берётся из 2F98F00, на выходе 8 байт изменённого ключа. 1) Перед её вызовом и после производится преобразование в Big Endian или из него. 2) После чего оригинальные 64 бит информации меняются ксором 64 битами из изменённого ключа, но перед этим оригинал заменяет ключ. 3) Шаги 1-3 повторяются, пока информация не иссякнет. В функции 02F86000 последовательно используются 4 таблицы по 1к (256 1байтовых значений, выровненных до DWORD) и 18 констант для шифрования 2FA9CA0...2FA9CE4. По константам можно быстрее идентифицировать, если они не отличаются от оригинальных. Можете их привести? Не AES точно, и не RSA... Что-то, похожее на Pukall Cipher, но у Пукалла много разновидностей... ----- IZ.RU | Сообщение посчитали полезным: Nightshade |
|
Создано: 23 апреля 2011 12:08 · Личное сообщение · #4 |
|
Создано: 23 апреля 2011 12:35 · Поправил: Vovan666 · Личное сообщение · #5 |
|
Создано: 23 апреля 2011 12:37 · Личное сообщение · #6 |
|
Создано: 23 апреля 2011 13:19 · Поправил: DenCoder · Личное сообщение · #7 Кстати, почему не Blowfish? Именно он и есть! Берём книгу Панасенко "Алгоритмы шифрования. Справочник 2009г.", 118 стр. Цитирую описание раундов, которые выполняются в функции 02F860DD: 1) Значение субблока складывается с ключом i-го раунда Ki операцией XOR, результат операции становится новым значением субблока. 2) Субблок обрабатывается функцией F (описана далее).... Функция F: F(x) = ((S1(x1) + S2(x2) mod 2^32) XOR S3(x3)) + S4(x4) mod 2^32 Исходные значения ключей K1..K18 (2FA9CA0...2FA9CE4) инициализируются hex-записью дробной части числа ПИ (операцией XOR на них накладывается ключ шифрования).: Code:
Значения таблиц - остальная часть числа пи. (Насчет выровненных значений до DWORD напутал, сорри). Детект нескольких признаков BlowFish. Это он! ----- IZ.RU |
|
Создано: 23 апреля 2011 20:37 · Поправил: Nightshade · Личное сообщение · #8 02FAA0E8 CC C1 D4 FA 7F BA 48 93 C5 57 09 49 C1 10 CD 4E МБФъєH“ЕW.IБНN 02FAA0F8 ED 97 93 73 BE 55 1E F9 1A C7 C9 D0 00 2F CF AB н—“sѕUщЗЙР./П« 02FA9CA0 17 76 F7 68 61 6B E2 04 56 F8 07 30 C8 8B 45 14 vчhakвVш0И‹E 02FA9CB0 46 93 3A F7 A9 1D F5 8E AA BA F0 78 CA 55 8A 26 F“:ч©хЋЄєрxКUЉ& Пока не нашел похожих констант upd 02F951A0 88 6A 3F 24 D3 08 A3 85 2E 8A 19 13 44 73 70 03 €j?$УЈ….ЉDsp 02F951B0 22 38 09 A4 D0 31 9F 29 98 FA 2E 08 89 6C 4E EC "8.¤Р1џ)ъ.‰lNм |
|
Создано: 23 апреля 2011 20:46 · Поправил: DenCoder · Личное сообщение · #9 Так это не константы. Вы привели остальную дробную часть числа ПИ сложенную с ключом шифрования вверху, внизу кусок первой части числа ПИ, сложенный с ключом шифрования операцией XOR. DenCoder пишет: Исходные значения ключей K1..K18 (2FA9CA0...2FA9CE4) инициализируются hex-записью дробной части числа ПИ (операцией XOR на них накладывается ключ шифрования) Можете поискать в памяти одно из значений таблиц, должно найтись. ______________________ Ага, пока я писал, уже нашли. Оно и есть ----- IZ.RU |
|
Создано: 23 апреля 2011 21:01 · Личное сообщение · #10 Nightshade пишет: В аттаче кусок кода Проще смотреть на сам исполняемый файл. dfd2_23.04.2011_EXELAB.rU.tgz - cc.rar |
|
Создано: 23 апреля 2011 21:07 · Поправил: Nightshade · Личное сообщение · #11 Где почитать про блуфиш желательно с примерами кода. Ничерта не пойму как из куска файла получить расшифрованный вариант. И как должен выглядеть ключ? Могу привести зашифрованные и расшифрованные данные. Но не могу понять как получить их самому. Пробовал через снд тулз прогнать строку - выдает мусор. |
|
Создано: 23 апреля 2011 21:13 · Личное сообщение · #12 |
|
Создано: 23 апреля 2011 21:36 · Поправил: Nightshade · Личное сообщение · #13 Зашифрованный текст 226BDAC26C2293412A03161CC6342E278435309358C09B42831E311F1B Расшифрованный 5246204F6E6C696E65206279204F64696E5465616D2073285E4F5E297A Как получить из одного другое зная ключ? Калькулятор снд не выдает ничего путного. Возможно я не догоняю что ему надо как ключ Нашел исходники дешифровщика шифровщика файлов по blowfish. С ключом 58A57513B485644F и B485644F58A57513 02F98F00 13 75 A5 58 4F 64 85 B4 91 5F 46 19 BE 41 B2 51 uҐXOd…ґ‘_FѕAІQ 02F98F10 63 55 A5 01 10 A9 CE 91 78 33 48 E7 5A EB 0F 2F cUҐ©О‘x3HзZл/ 02F98F20 D7 B1 69 BB 8D C1 67 87 DC 49 DB 13 75 A5 58 4F Ч±i»ЌБg‡ЬIЫuҐXO 02F98F30 64 85 B4 13 B5 F1 2B AF 52 69 F1 49 D4 1B A0 15 d…ґµс+ЇRiсIФ 02F98F40 24 97 57 4D 7F 15 31 25 CC 31 F9 02 00 00 00 00 $—WM1%М1щ.... Ничего путного не получил |
|
Создано: 23 апреля 2011 23:57 · Поправил: DenCoder · Личное сообщение · #14 Nightshade пишет: Где почитать про блуфиш желательно с примерами кода Раньше там Панасенко, по-моему был, оттуда кажется качал.... не могу найти. Зато эта книга как раз с исходниками, в том числе и блоуфиша. ----- IZ.RU |
|
Создано: 24 апреля 2011 19:49 · Личное сообщение · #15 Nightshade пишет: И как должен выглядеть ключ? Ключ шифрования - это просто строка. Например, набор символов "asdfghef", или же слово "key12", или же массив байт. Есть требование для ключа шифрования - от 4 символов до 56 символов (байт). Nightshade пишет: Зашифрованный текст 226BDAC26C2293412A03161CC6342E278435309358C09B42831E311F1B Расшифрованный 5246204F6E6C696E65206279204F64696E5465616D2073285E4F5E297A Как получить из одного другое зная ключ? Собственно, если нужно сделать кейген, то закейгенить, зная ключ шифрования для Blowfish проще простого. Так как алго симметричный, то выбирается ключ, он будет использован для шифрования и дешифрования. Сначала идет операция развертывания ключа - здесь образуется массив байт длиной около 4*4*256 байт. Затем собственно операция шифрования или дешифрования блока данных, и закрытие алгоритма (освобождение буферов развернутого ключа). Поэтому для кейгена нужно просто определить какая функа юзается - encrypt или decrypt, и проделать обратную операцию. ----- Программист SkyNet |
|
Создано: 29 апреля 2011 16:10 · Личное сообщение · #16 |
|
Создано: 30 апреля 2011 08:56 · Поправил: FrenFolio · Личное сообщение · #17 Nightshade пишет: Нашел ключ. В проге была подъебка - ключ длинной 64 байт Любопытно. В модификациях Blowfish обычно изменяют константы из массива подключей PBox или SBox, но не длину ключа. ЗЫ Дык, закрывай тему, раз разобрался. Nightshade пишет: В Blowfish оказывается максимальная длина ключа 72 байта, а не 56 как везде пишут В классическом алгоритме блочного шифра Blowfish, разработанным Брюсом Шнайером, нет длины ключа 72, а максимум 56, так что ты столкнулся с модификацией алгоритма. ----- Программист SkyNet |
|
Создано: 30 апреля 2011 14:26 · Личное сообщение · #18 |
eXeL@B —› Основной форум —› Определить крипто алго |
Эта тема закрыта. Ответы больше не принимаются. |