SeDebugPrivilege в Vista x64
От: Bukmop_POCTOB  
Дата: 11.03.09 17:03
Оценка:
Кто нибуть может объяснить почему это:
int _tmain()
{ 
    HANDLE hThread ;
    ULONG uTID, uID = name2pid(TEXT("KeyTrans.exe"));
    _tprintf(TEXT("%d\n"), uID );
    EnableDebugPrivilege(TRUE);
    HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, uID);
    if (hProc)
    {
        hThread = CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress( GetModuleHandle(TEXT("kernel32.dll")), "ExitProcess"), 0, 0, &uTID);
        if (hThread == NULL)
            _tprintf(TEXT("CreateRemoteThread Error %d\n"), GetLastError() );
    }
    else
        _tprintf(TEXT("OpenProcess Error %d\n"), GetLastError() );

    return 0;
}

запускается из под пользователя. KeyTrans.exe просто для эксперимента.
ОСь Vista SP1 x64 с последними обновлениями, компилилось для Win32 и Win32Debug, оба варианта работают. UAC бровью не повел
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.