Вирусы и другой вредоносный код



         

Стартовый код - часть 2


Подробнее об идентификации стартового кода можно прочитать в книге "Фундаментальные основы хакерства" Криса Касперски или в "Hacker Disassembling Uncovered" его же.

Здесь же мы не можем позволить себе подробно останавливаться на этом обширном вопросе и просто сравним start-up код нормальной программы с кодом вируса Win2K.Inta.1676

.text:00401670       start proc   near
.text:00401670 push ebp
.text:00401671 mov ebp, esp
.text:00401673 push 0FFFFFFFFh
.text:00401675 push offset stru_420218
.text:0040167A push offset __except_handler3
.text:0040167F mov eax, large fs:0
.text:00401685 push eax
.text:00401686 mov large fs:0, esp
.text:00401696 call ds:GetVersion ; Get current version number of Windows
.text:004016EC push 0
.text:004016EE call __heap_init
.text:00401704 mov [ebp+var_4], 0
.text:0040170B call __ioinit
.text:00401710 call ds:GetCommandLineA
.text:00401716 mov dword_424F44, eax
.text:0040171B call ___crtGetEnvironmentStringsA
.text:00401720 mov dword_4235C0, eax
.text:00401725 call __setargv
.text:0040172A call __setenvp
.text:0040172F call __cinit
.text:00401754 call _main
.text:00401763 call _exit

Листинг 2 так выглядит нормальный start-up от MicrosoftVisualC++ 6.0…

.text:00011000     start     proc   near
.text:00011000 mov eax, [esp+arg_0]
.text:00011004 lea edx, loc_11129
.text:0001100A mov [eax+34h], edx
.text:0001100D lea edx, dword_117A0
.text:00011013 lea eax, aHh             ;   "HH"
.text:00011019 mov [edx+8], eax
.text:0001101C mov [eax+4], aSystemrootSyst
.text:0001101C               ;   "\\SystemRoot\\system32\\drivers\\inf.sys"
.text:00011023 push 1200h
.text:00011028 push 0
.text:0001102D call ExAllocatePool
.text:00011032 or eax, eax
.text:00011034 jnz short loc_1103E
.text:00011036 mov eax, 0C0000001h
.text:0001103B retn 8
<


Содержание  Назад  Вперед