Архив задач

2015 [11] Вирус

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

 

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

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

E9(JMP)

(1 байт)

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

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

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

 

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

 

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

char encode(char code, const char crypto_const)

{

return (code ^ crypto_const);

}

 

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

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

41 0d 61 01 60 44 69 48 24 28 60 24 2d 2d 41 04 4c 49 05 24 00 28 60 04 41 0d 61 48 4c 04 41 45 20 6c 40 20 20 29 6c 69 41 60 64 04 41 08 20 2c 49 05 2c 49 48 49 49 49 0d 20 64 49 68 25 84 6d 78 9d 98 68 60 60 28 60 60 68 60 04 20 29 60 24 2d 60 24 2d 01 24 c7 b4 d9 38 6c