|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 13, 2004 01:50:41 Короче, фиг знает, что это. Для нахождения использовал два критерия (про первый писал выше): 1) LOOP K2=0xAD to 0xFFFF
LOOP K1=0 to K2-1
; Здесь предполагаем, что в тексте будут
; команды типа int 21h+int 20h или другие.
; Отсюда знаем гамму для этих команд
; Следовательно, K0 ~ gamma*K2 / M,
; где M=((key1 * 65536 + t / key2) % key2);
; Получаем приближение [K0min,K0max]
LOOP K0=K0min to K0max
; Здесь проверяем, что расшифровка следующих
; команд также верна
END K0
END K1
END K2
2) Вышеописанный критерий, только оставшийся расшифрованный текст содержит не менее 18 букв.
Для выбора известного плейнтекста делал следующие предположения: ; Код начинается либо так: mov dx,offset xxx BA XX 02 mov ah,09h B4 09 int 21h CD 21 int 20h CD 20 ; Либо с mov ah,09h B4 09 mov dx,offset xxx BA XX 02 int 21h CD 21 int 20h CD 20 ; Или (базонезависимый): E8 00 00 call ][3 5A pop dx 81C20B00 add dx,000B B409 mov ah,09 CD21 int 21 CD20 int 20 Составил тестовые примеры в этом духе. Проверил своими критериями. Находит замечательно. Проверил даже вариант с тем, что сами ключи часть выполняемого кода. Тогда K2 может быть равен 20CDh. Тоже вроде не то. Кто-нибудь еще думал над этой задачей ? Просьба написать, если да.. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066 |