Ранг: 11.2 (новичок), 9thx Активность: 0.03↘0 Статус: Участник
Создано: 14 сентября 2012 20:34 · Поправил: Flasher-11 · Личное сообщение · #1
Приветствую всех. Исследую шифровщик/дешифровщик - пакер/анпакер. Первый раз занимаюсь такими вещами. Уже на финальном этапе, осталось расшифровать корневую ФС. Тут я уже в очередной раз застрял. --> Анпакер <-- Отрывок из алгоритма расшифровки
Code:
00401318PUSHEBP
00401319MOVEBP,ESP
0040131BPUSHEDI
0040131CPUSHESI
0040131DPUSHEBX
0040131ESUBESP,10
00401321MOVEAX,DWORDPTRSS:[EBP+8]
00401324MOVEBX,DWORDPTRDS:[EAX]
00401326XOREBX,DWORDPTRDS:[402030]- а откуда там этот массив взялся, никак не пойму
0040132CMOVEDI,DWORDPTRDS:[EAX+4]
0040132FXOREDI,DWORDPTRDS:[402034]
00401335MOVEAX,EDI
00401337SHREAX,18
0040133AMOVEDX,EDI
Проблема в том, что я никак не могу найти где генерируется этот массив, где в последующем он используется для расшифровки. Думаю, что он уже предусмотрен в тулзе.
Восстановил код, дизассемблер + декомпилятор. Код конечно ужасен, не приводил его в нормальный вид. По сути он работает достаточно быстро, но сделал я так чтоб он считывал статический ключ из файла и по смещениям находил нужные ему dword'ы. Но тут оказалось, что я немного лох, а может и полный и так делать не стоило, т.к из-за каждого поиска нужно смещения расшифровка данных сводится почти к 20-30 кб/c. Может кто помочь советом, как лучше сделать поиск смещений по ключу? Или как лучше организовать все это?
Весь код не читал, но .Seek & .Read будет выполняться долго. Он же уже в память прочитан, почему бы там не искать? //Пардон, если глупость, спать надо.
Я его считывал в uint массив, но если с ним работать, то вся логика рушиться напрочь. Считывал его, потому что удобнее использовать какие-то статичные значения, чем опять использовать Seek
Vovan666, это понятно. Я просто не понимаю, допустим, если ключ 402030+402034, то длина получается 64 бита, как Вы говорили, то зачем остальной массив?
В исходниках только 4 статических массива. MDS,Q0,Q1,RS, даже если брать их, то статический ключ будет больше всех вместе взятых статических массивов. MDS массив вроде такой {4020C0,4024C0,402СС0,4028С0} если конечно я не ошибаюсь.