2015 [11] Вирус
Полиморфный вирус дописывает к заражаемой программе: код расшифровщика, команду безусловного перехода, случайные байты и вредоносный код:
Код расшифровщика |
Код заражаемой программы |
E9(JMP) (1 байт) |
Смещение
|
Случайные байты |
Вредоносный код |
При этом вредоносный код записывается в зашифрованном виде. Ниже приведена функция, которая использовалась для шифрования:
// 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
…