i dont understand why OpenProcessToken cant Open Process Winlogon.exe,why???,can you help me edit source ,thankCode:#ifdef UNICODE #undef UNICODE #include<windows.h> #include <tlhelp32.h> int EnableDebugPriv (void){ HANDLE hToken = 0; TOKEN_PRIVILEGES newPrivs; if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) return 0; if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &newPrivs.Privileges[0].Luid)){ CloseHandle (hToken); return 0; } newPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; newPrivs.PrivilegeCount = 1; if(AdjustTokenPrivileges(hToken, FALSE, &newPrivs, 0, NULL, NULL)){ CloseHandle (hToken); return 1; }else{ CloseHandle (hToken); return 0; } } TCHAR convertChar(TCHAR q) { if (q >= 'a' && q<= 'z') { return (q - ' '); } else { return q; } } //hoa TCHAR *convertString(TCHAR *chuoi) { int n= lstrlen(chuoi); int i; for(i=0;i<n;i++) { chuoi[i] = hoa(chuoi[i]); } return chuoi; } int main() { EnableDebugPriv(); PROCESS_INFORMATION pi; STARTUPINFO si; DWORD winlogonPid = 0; HANDLE hPToken, hProcess; PROCESSENTRY32 procEntry; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnap == INVALID_HANDLE_VALUE) return 0; procEntry.dwSize = sizeof(PROCESSENTRY32); if (!Process32First(hSnap, &procEntry)) return 0; do { if (_stricmp(convertString(procEntry.szExeFile),"WINLOGON.EXE") == 0) { winlogonPid = procEntry.th32ProcessID; break; } } while (Process32Next(hSnap, &procEntry)); hProcess = OpenProcess(MAXIMUM_ALLOWED, FALSE, winlogonPid); if (hProcess == NULL) { MessageBox(0,"loi OpenProcess","d",0); return 0; } if(OpenProcessToken(hProcess,TOKEN_DUPLICATE,&hPToken) == FALSE) { MessageBox(0,"loi OpenProcessToken","d",0); return 0; } } #endif


LinkBack URL
About LinkBacks
Reply With Quote
)┌∩┐
Delighted!
