//Anti-Monitor <br /> Function ABC39: Boolean; //检测Dump; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'ProcDump32 (C) 1998, 1999, 2000 G-RoM, Lorian & Stone'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> Function ABC40: Boolean; //检测RegMON; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'Registry Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> Function ABC41: Boolean;stdcall; //检测FileMON; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'File Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> //////////////////////////////////////////////////////////////////////////////// <br /> //Anti-loader <br /> Function ABC42():Boolean; //检测调试器; <br /> var <br /> YInt,NInt:Integer; <br /> begin <br /> asm <br /> mov eax,fs:[30h] <br /> movzx eax,byte ptr[eax+2h] <br /> or al,al <br /> jz @No <br /> jnz @Yes <br /> @No: <br /> mov NInt,1 <br /> @Yes: <br /> Mov YInt,1 <br /> end; <br /> if YInt=1 then <br /> Result:=True; <br /> if NInt=1 then <br /> Result:=False; <br /> end; <br /> <br /> 98下: <br /> Function IsSoftIce95Loaded: boolean; //声明一个检测SoftICE的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\SICE', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsSoftIceNTLoaded: boolean; //声明一个检测SoftIceNT的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\NTICE', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsTRWLoaded: boolean; //声明一个检测TRW的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\TRWDEBUG', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsTRW2000Loaded: boolean; //声明一个检测TRW2000的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\TRW2000', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsRegMONLoaded: boolean; //声明一个检测RegMON的boolean型变量 For Windows98; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\REGVXD', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsNTRegMONLoaded: boolean; //声明一个检测RegMON的boolean型变量 For Windows2000/xp; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := FindWindow(nil,'Registry Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsFileMONLoaded: boolean; //声明一个检测FileMON的boolean型变量 For Windows98; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\FILEVXD', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsBW2000Loaded: boolean; //声明一个检测冲击波2000的boolean型变量 加壳时说不定用的上 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\bw2k', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> <br /> 上面的调用就是根据返回值True或者False来检测的. Loading... //Anti-Monitor <br /> Function ABC39: Boolean; //检测Dump; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'ProcDump32 (C) 1998, 1999, 2000 G-RoM, Lorian & Stone'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> Function ABC40: Boolean; //检测RegMON; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'Registry Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> Function ABC41: Boolean;stdcall; //检测FileMON; <br /> var <br /> hFile: Thandle; <br /> Begin <br /> Result:= false; <br /> hFile := FindWindow(nil,'File Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> Result:= TRUE; <br /> end; <br /> End; <br /> <br /> //////////////////////////////////////////////////////////////////////////////// <br /> //Anti-loader <br /> Function ABC42():Boolean; //检测调试器; <br /> var <br /> YInt,NInt:Integer; <br /> begin <br /> asm <br /> mov eax,fs:[30h] <br /> movzx eax,byte ptr[eax+2h] <br /> or al,al <br /> jz @No <br /> jnz @Yes <br /> @No: <br /> mov NInt,1 <br /> @Yes: <br /> Mov YInt,1 <br /> end; <br /> if YInt=1 then <br /> Result:=True; <br /> if NInt=1 then <br /> Result:=False; <br /> end; <br /> <br /> 98下: <br /> Function IsSoftIce95Loaded: boolean; //声明一个检测SoftICE的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\SICE', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsSoftIceNTLoaded: boolean; //声明一个检测SoftIceNT的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\NTICE', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsTRWLoaded: boolean; //声明一个检测TRW的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\TRWDEBUG', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsTRW2000Loaded: boolean; //声明一个检测TRW2000的boolean型变量 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\TRW2000', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsRegMONLoaded: boolean; //声明一个检测RegMON的boolean型变量 For Windows98; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\REGVXD', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsNTRegMONLoaded: boolean; //声明一个检测RegMON的boolean型变量 For Windows2000/xp; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := FindWindow(nil,'Registry Monitor - Sysinternals: www.sysinternals.com'); <br /> if( hFile <> 0 ) then <br /> begin <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsFileMONLoaded: boolean; //声明一个检测FileMON的boolean型变量 For Windows98; <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\FILEVXD', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> Function IsBW2000Loaded: boolean; //声明一个检测冲击波2000的boolean型变量 加壳时说不定用的上 <br /> Var hFile: Thandle; <br /> Begin <br /> result := false; <br /> hFile := CreateFileA('\\.\bw2k', GENERIC_READ or GENERIC_WRITE, <br /> FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, <br /> FILE_ATTRIBUTE_NORMAL, 0); <br /> if( hFile <> INVALID_HANDLE_VALUE ) then begin <br /> CloseHandle(hFile); <br /> result := TRUE; <br /> end; <br /> End; <br /> <br /> <br /> 上面的调用就是根据返回值True或者False来检测的. 最后修改:2009 年 08 月 16 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 支持就是力量