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

 eXeL@B —› Основной форум —› Реверс крипто.
Посл.ответ Сообщение

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 20 марта 2013 02:17 · Поправил: vden
· Личное сообщение · #1

Есть exe. Использует, как мне кажется, измененный AES и MD5. Функция расшифровки есть в exe и её можно удачно использовать, а зашифровки вроде нет. Я в криптоалгоритмах не силен, поэтому прошу посмотреть, что изменили в алгоритме (возможно что-то сразу бросается в глаза), моя задача выполнить шифрование.

В архиве главный файл: crap.exe (он почищен от мусора, все важные функции помечены экспортами).
encrypted - зашифрованный буфер
decrypted - расшифрованный буфер
key - ключ (128 бит)

Архив

Прототипы функций примерно такие:

Code:
  1. BOOL __thiscall AES::InitKey(AES *this, BYTE *Key, BYTE *IV, int Size_1, size_t Size_2)
  2. BOOL __thiscall AES::Decrypt(AES *this, BYTE *src, BYTE *dst, int size, int bswitch)


ещё интересно, для чего нужен bswitch (при расшифровке он = 0)




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

Создано: 20 марта 2013 03:11 · Поправил: reversecode
· Личное сообщение · #2

при bswitch=2 у него все функции шифратором работать

только с режимами как то накручено
CBC ECB что ли сделаны

bswitch=1 дешифровка
bswitch=2 шифровка
они идентичные по алгориму в конце каждого цикла xor

а bswitch=0 дешифровка без xor вконце каждого цикла

md5 вроде стандартный, если что и меняли то надо по константам в Transform смотреть
но думаю проще обычный md5 перепроверить какие то стандартные вектора с wiki на предмет проверки

в инициализации ключа как мне кажется что то не стандартное там..
4 таблицы вообщем какието там покрученые

add
для шифрования вроде нужно по другому инициализивароть матрицу от ключа (?)
по теории алго помоему заимствует процедуру инициализации матрицы для дешифрования

а там какие то странные таблицы в инициализации для дешифрования
.rdata:00409528
.rdata:00409928
.rdata:00409D28
.rdata:0040A128
причем значение явно из базовых,
но либо они трогались для изменения алго
либо какая то неизвестная оптимизация(реализация)

MD5Final абсолютно стандартный
едиственно там после Transfrom стоит конвертация массива для BIG ENDIAN
возможно программа какойто упаковщик для ембеддед архитектур

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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 20 марта 2013 16:44
· Личное сообщение · #3

Спасибо.

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

md5 похоже отличается только в md5final.


 eXeL@B —› Основной форум —› Реверс крипто.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати