Контрразведка с soft-ice в руках



и результат ее работы на зараженной малварью машине


Пользуясь SDT Restore, следует иметь ввиду, что уже появились rootkit'ы, способные ее обходить. Во-первых, для поиска оригинальной SST, утилита SDT Restore использует простой, но ненадежный способ, обращаясь к KeServiceDescriptorTable[0], которую зловредная малварь может и подменить (см. http://hi-tech.nsys.by/35/), во-вторых, само восстановление SST происходит с прикладного уровня через псевдоустройство PhysicalMemory, отображаемое в память посредством native-API функции NtMapViewOfSection, легко перехватываемую как с прикладного, так и с ядреного уровней, после чего перехватчику остается проверить: не вызывается ли NtMapViewOfSection с дескриптором PhysicalMemory

и если да, то либо заблокировать доступ, либо имитировать восстановление, не производя его в действительности (см. http://www.rootkit.com/newsread.php?newsid=200).

Так же следует учитывать, что некоторые защиты "вешаются" на вектора прерываний, описанные в таблице IDT, и проверяют перехваченные сервисы, например, каждый тик таймера. В правильной IDT (просмотреть которую можно одноименной командой в soft-ice) все вектора указывают внутрь NTOSKRNL.EXE или HAL.DLL.

:IDT

Int    Type   Sel:Offset    Attributes Symbol/Owner

IDTbase=80036400  Limit=07FF

0000   IntG32 0008:804625E6 DPL=0         P      ntoskrnl!Kei386EoiHelper+0590

0001   IntG32 0008:80462736 DPL=3         P      ntoskrnl!Kei386EoiHelper+06E0

0002   IntG32 0008:0000144E DPL=0         P

0003   IntG32 0008:80462A0E DPL=3         P      ntoskrnl!Kei386EoiHelper+09B8



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