{]
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
J
такой виртуальной клавиатуры, вари-
ант которой (см. рис. 2) вы можете
скачать отсюда [2] или же использо-
вать WEB вариант (см. рис. 3) [3].
Кроме того, существуют специальные
антишпионские программы - антикей-
логгеры (anti-spyware), которые бывают
двух типов:
*
на основе сигнатур
на основе ловушки
Первые - обнаруживают кейлоггер
по файлам и библиотекам DLL, кото-
рые он устанавливает, а также по из-
менениям в реестре. Основной их не-
достаток - не могут обнаружить шпио-
на, сигнатура которого отсутствует в их
базе.
Вторые - используют функцию
SetWindowsHookEx, ту же, что и сами
кейлоггеры. Эта системная функция
характерна для большинства приложе-
ний, таких как Word, Lingvo, и предназ-
начена для мониторинга системы за
нажатиями клавиш клавиатуры и
мыши. Типичным примером такого ан-
тикейлоггера является монитор “Кас-
перского”. Принцип действия основан
на том, что сам кейлогтер при работе
не регистрирует никаких нажатий, так
как функцию перехвата - перехваты-
вает монитор.
Рис. 2. Альтернативная виртуальная клавиатура
zJ-Г"
Deed keys Off
ё
j
1
j
2
j3
4
5
j
Є
f
7
,8
] 9
і о
1 Bksp
Tab
J * .
.. l l .
....
L y
.
i *
1 e
j H
і г
: II
la
j 3
І X
1
ъ
І Enter
caps
_ 1 * ____ i.*.,
і a
ІП
' p
j
a
І я
1 А
І Ж
■ *7э.
...
І ч
Shf ft
[/
[•
A
; c
m
J и
j т
j ь
!
Ф ____і : ___
І snift
__j,
Рис. 3. WEB виртуальная клавиатура
expforer.exe
1764
1732
Visible
С: \WI N D 0 WS \system32\N or maliz. dH
afcexe
516
608
Visible
Null
spoobv.exe
1412
608
Visible
Null
ashServ.exe
1172
608
Visible
Null
aswUpdSv.exe
1112
608
Visible
Null
svchost.exe
1024
608
Visible
Null
svchost.exe
960
608
Visible
Null
svchost.exe
912
608
Visible
Null
svchost.exe
836
608
Visible
Null
svchost.exe
780
608
Visible
Null
lsass.exe
620
564
Visible
Null
services, exe
608
564
Visible
Null
winJogonexe
564
492
Visible
Null
csrss.exe
540
492 ‘
Visible
Null
smss.exe
492
4
Visible
Null
System
4
0
Visible
Null
System Process)
0
0
Visible
0:\детектор скрытых процессов NATIVE.exe
CPU [1 094] 16 %
IRAM [M b ]- 495,9 из 504
RAMedla.exe
t\RAMedia.exe
iD: Уа\утилиты\гатесЙа\ЯАМе<Ла. exe
Рис. 4. Окно детектора. Обнаружение скрытого процесса
П р а кти ка . Д е текто р
скры ты х процессов
Существующие сейчас утилиты
для выявления скрытых процессов,
как правило, используют один или
несколько методов обнаружения, та-
ких как: работа в 3-м кольце, учет по-
бочных хэндлов и окон открытых рут-
китами, установка перехватчика
SETWINDOWSHOOKEX с последую-
щим анализом списка процессов. Рас-
смотрим два относительно простых
способа обнаружения в 3-м кольце, учи-
тывающие побочные хэндлы каждого
процесса в системе:
через Native API
через ToolHelp API
Получение списка процессов через ToolHelp API
вставка 1
procedure G etT oolH elpProcessList(var List: PListStruct);
va r
Snap : dword;
Proce ss: T P R O C E S S E N T R Y 3 2 ;
Newltem: P P ro ce ssR ecord;
begin
Sn a p := C re a te T o o lh e lp 3 2 S n a p sh o t(T H 3 2 C S _ SN A P P R O C E S S , 0);
if S n a p IN V A U D _ H A N D L E _ V A L U E then
begin
P roce ss.d w Size := S iz e O f(T P R O C E S S E N T R Y 3 2 );
if P ro ce ss3 2 R rst(Sn a p , P ro ce ss) then
repeat
GetMem (New ltem , SizeO f(T P rocessR e cord ));
ZeroM em ory(New ltem , SizeO f(T P rocessR e cord ));
Newltem A.Proce ssld := P roce ss.th32P roce sslD ;
Newltem A.ParrentPlD := Proce ss.th32ParentProcesslD ;
lstrcpy(@ New ltem A.Proce ssN am e , Proce ss.szExeFiie);
Addltem (List, Newltem);
until not Proce ss32N e xt(Sn ap , P roce ss);
C loseH andle(Snap);
end;
end;
6
Получение списка процессов через Native
АРІ
вставка 2
procedure G etN ativeProcessList(var L ist PListStruct);
va r
Info: P S Y S T E M _ P R O C E S S E S ;
Newltem: P P ro ce ssR e co rd ;
Mem : pointer;
begin
Info := G etlnfoTable(System ProcessesAndThreadslnform ation);
M em := Info;
if Info = nil then Exit;
repeat
G etM em (New ltem , SizeO f(T P rocessR e cord ));
ZeroM em ory(New ltem , SizeO f(T P rocessR e cord ));
lstrcpy( @ Newltem A.ProcessN am e,
P C har(W ideC harToString{lnfoA.ProcessNam e,Buffer))j:
Newltem A.P roce ssld := Info A P rocessId ;
Newltem A.ParrentPID ;= InfoAInheritedFrom ProcessId;
Addltem (List, Newltem);
Info := pointer(dword(info) + infcANextEntryDelta);
until InfcAN extEntryD elta = 0;
VirtualFreefM em , 0, M E M .R E L E A S E );
end;
'
' • - •
Ралиолюб/_е"о - 09/2 08
предыдущая страница 6 Радиолюбитель 2008-09 читать онлайн следующая страница 8 Радиолюбитель 2008-09 читать онлайн Домой Выключить/включить текст