· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Теоретический вопрос

<< . 1 . 2 .

Посл.отвђт Сообщен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. Тоже вроде не то.

Кто-нибудь еще думал над этой задачей ? Просьба написать, если да..

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066