Архив задач

Вирус

Полиморфный вирус дописывает к заражаемой программе: код расшифровщика, команду безусловного перехода, случайные байты и вредоносный код:

 

Код расшифровщика

Код заражаемой программы

E9(JMP)

(1 байт)

Смещение
(2 байта)

Случайные байты

Вредоносный код

 

При этом вредоносный код записывается в зашифрованном виде. Ниже приведена функция, которая использовалась для шифрования:

 

// crypto_const – неизвестнаяконстанта;

char encode(char code, const char crypto_const)

{

return (code ^ crypto_const);

}

 

Кроме того, известно, что для перехода на начало собственно вредоносного кода применяется команда безусловного перехода JMP, которая в незашифрованном виде имеет код E9. После этого следуют 2 байта величины смещения относительно следующей команды. Найдите первые 4 байта расшифрованного вредоносного кода, если известно, что величина этого смещения не больше 250 байт.

Фрагмент кода программы после внедрения вируса:

db dc8 51 bfe 94 8b 89 d0 98 bbbddd bddcb dd ca cc 98 bbbdb dcbdd4 94 8b 8ad0 98 bbb1dddbcb dd dca db d0 98 bbbdb dcbdd4 94 8b8b d0 98 bbbddd bdc dd ddd cc dd 98 bbbdb dcbdd4 94 8b 88 d0 98 bbbdddbdd cdcc 98bbbddcbdf d7 98