Пример программы обнаружения присутсивия Soft-ice.
Принцип работы программs обнаружение Vxd с определенным
названием. Такой принцип применим для обнаружения других программ например
Filemon или RegMon. Для этого требуется заменить название SICE или NTICE
на название VXD который использует соответствующая программа. Определить
название можно спомощью MsSysinfo.
////////////////////////////////////////////////////////////////////// // //
MeltICE - SoftICE '95 version 3 detection - Made by David Eriksson //
================================================================== // //
Disclaimer // ~~~~~~~~~~ // I take no responsibility for the
authenticity of this information, // or the results of the use or
misuse of the source code. // // SoftICE is a trademark of NuMega
Technologies, Inc. //
Unit
meltice;
Interface
//#include <stdio.h> //#define
WIN32_LEAN_AND_MEAN //#include
<windows.h>
////////////////////////////////////////////////////////////////////// // //
See if SoftICE version 3.x for Windows 95 is loaded // Function
IsSoftIce95Loaded:
boolean;
//////////////////////////////////////////////////////////////////// // //
See if SoftICE version 3.x for Windows NT is loaded // Function
IsSoftIceNTLoaded: boolean;
Implementation Uses sysUtils,
Windows;
Function IsSoftIce95Loaded: boolean; Var hFile:
Thandle; Begin result := false;
// "\\.\SICE" without escape
stuff // hFile := CreateFileA('\\\\.\\SICE', // Note: There is no
need for the escapes in Pascal, therefore
hFile :=
CreateFileA('\\.\SICE', GENERIC_READ or
GENERIC_WRITE, FILE_SHARE_READ or
FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if(
hFile <> INVALID_HANDLE_VALUE ) then
begin CloseHandle(hFile); result :=
TRUE; end; End;
Function IsSoftIceNTLoaded:
boolean; Var hFile: Thandle; Begin result := false;
//
"\\.\NTICE" without escape stuff // hFile :=
CreateFileA('\\\\.\\NTICE', // Note: There is no need for the escapes
in Pascal, therefore
hFile :=
CreateFileA('\\.\NTICE',
GENERIC_READ or
GENERIC_WRITE, FILE_SHARE_READ or
FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if(
hFile <> INVALID_HANDLE_VALUE ) then
begin CloseHandle(hFile); result :=
TRUE; end; End;
End.
////////////////////////////////////////////////////////////////////// // //
Example code for calling these functions // (*$apptype
console*) Procedure Test; Begin if IsSoftIce95Loaded
then writeln('SoftICE for Windows 95 is active!') else if
IsSoftIceNTLoaded then writeln('SoftICE for Windows NT is
active!') else writeln('Can''t find SoftICE with this
method!'); End;
|