Сейчас на форуме: jinoweb (+6 невидимых) |
eXeL@B —› Программирование —› Идентификация алгоритма |
Посл.ответ | Сообщение |
|
Создано: 21 ноября 2018 07:48 · Личное сообщение · #1 Не секрет что в 80% случаев программисты народ ленивый и пользуется стандартными алгоритмами. Следующий кусок декомпиляции из IDA представляет собой функцию для расшифровки данных длиной 128 байт. Вопрос в том что это какой-то стандартный алгоритм или что-то самопальное. Прога написана в 2002 году. Данный после этого шифрования еще накрываются Blowfish и используется CRC16 для контроля целостности. Есть у кого идеи по поводу этого алгоритма? Code:
|
|
Создано: 21 ноября 2018 09:10 · Поправил: BlackCode · Личное сообщение · #2 |
|
Создано: 21 ноября 2018 09:17 · Личное сообщение · #3 |
|
Создано: 21 ноября 2018 09:23 · Поправил: f13nd · Личное сообщение · #4 Я бы придрался только к тому, что оно и так шифруется стандартным алгоритмом, какой смысл применять два. По содержанию вроде бы ни на что не похоже. Так что наверное придется сворачивать его самому, а не искать готовый алгоритм, как делают 80% ленивых программистов =) ЗЫ: Ленивые программисты любят готовые библиотеки. Если этот код был подключен из такой, по тушке программы скорей всего было бы видно. ----- 2 оттенка серого | Сообщение посчитали полезным: BlackCode |
|
Создано: 21 ноября 2018 09:40 · Личное сообщение · #5 |
|
Создано: 21 ноября 2018 09:40 · Личное сообщение · #6 |
|
Создано: 21 ноября 2018 09:41 · Личное сообщение · #7 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 21 ноября 2018 10:32 · Личное сообщение · #8 jinoweb пишет: Этот код из отдельной маленькой dll 40397F - ImageBase явно не dll. Тамщемта ладно. Вставьте хотя бы код, который xref's на sub_40397F. Если несколько раз уже зашифрованный код прогнать, через этот алго, фигня получается? Одно можно сказать точно - всё привязано к четной/нечетной итерации Code:
|
|
Создано: 21 ноября 2018 10:37 · Личное сообщение · #9 ELF_7719116 пишет: Вставьте хотя бы код, который xref's на sub_40397F Вот код где вызывается sub_40397F: Code:
Добавлено спустя 2 минуты ELF_7719116 пишет: Если несколько раз уже зашифрованный код прогнать, через этот алго, фигня получается? Наверное я неправильно обьяснил. Blowfish накладывается после шифрования нашей неизвестной функцией |
|
Создано: 21 ноября 2018 10:41 · Личное сообщение · #10 |
|
Создано: 21 ноября 2018 11:08 · Личное сообщение · #11 reversecode пишет: sub_404804(&v19, (int)&s, v3); sub_4049D0((int)&v19, ptr, ptr, 0x80u); sub_4012F8(ptr); sub_403B70((int)&v19, 2); а эти функи В процедуре sub_401346 идет расшифровка файлов в цикле по FindNextFile. Инициализируется Blowfish ключем - sub_404804 Расшифровка Blowfish - sub_4049D0 Снятие неизвестного шифра - sub_40397F Проверка чексуммы - sub_4012F8 |
|
Создано: 21 ноября 2018 11:20 · Личное сообщение · #12 как уже говорил это очень похоже на пермутацию с дес https://en.wikipedia.org/wiki/Data_Encryption_Standard The algorithm's overall structure is shown in Figure 1: there are 16 identical stages of processing, termed rounds. There is also an initial and final permutation, termed IP and FP, which are inverses (IP "undoes" the action of FP, and vice versa). IP and FP have no cryptographic significance, but were included in order to facilitate loading blocks in and out of mid-1970s 8-bit based hardwar |
|
Создано: 21 ноября 2018 14:11 · Личное сообщение · #13 Не нашёл в теме упоминание о FLIRT сигнатурах, поэтому поработаю немного Капитаном Очевидность и предложу то, с чего, по идее, следовало бы начинать: Применить к базе данных IDA все крипто сигны, какие найдёшь, в том числе: - отдельные sig (FLIRT) - сигнатуры на базе Yara - плагины Если не поможет, то взять все популярные крипто библиотеки того времени (времени создания программы), собрать их тем же компилятором, что и собрана программа (файл ты не выкладываешь, поэтому хз, что за компилятор), после чего создать на основе собранных объектников/либ собственные FLIRT сигнатуры. Это если точно уверен, что автор брал что-то готовое. В большинстве случаев проблема с крипто в оптимизации алгоритмов и в том, что проще всего ловить по константам. ----- EnJoy! |
|
Создано: 21 ноября 2018 15:00 · Поправил: rmn · Личное сообщение · #14 |
eXeL@B —› Программирование —› Идентификация алгоритма |
Эта тема закрыта. Ответы больше не принимаются. |