Niezamykalny proces (C++ Builder 6)

0

Witam! Otóż chciałbym zrobić tak, aby procesu mojego programu nie dało się zamknąć ("Odmowa dostępu"). Wiem, że należy użyć funkcji CreateProcess, anie nie mam pojęci jak się do tego zabrać :/.

0

Raczej nie create process. Z odmową dostępu jesteś na dobrej trasie: trzeba zabrać użytkownikowi możliwość zabicia procesu. Ale oczywiście na admina to nie zadziała bo nie możesz zabrać mu uprawnien. Ponizszy kod powinien działać (znaleziony na stackexchange):

static const bool ProtectProcess()
{
    HANDLE hProcess = GetCurrentProcess();
    EXPLICIT_ACCESS denyAccess = {0};
    DWORD dwAccessPermissions = GENERIC_WRITE|PROCESS_ALL_ACCESS|WRITE_DAC|DELETE|WRITE_OWNER|READ_CONTROL;
    BuildExplicitAccessWithName( &denyAccess, _T("CURRENT_USER"), dwAccessPermissions, DENY_ACCESS, NO_INHERITANCE );
    PACL pTempDacl = NULL;
    DWORD dwErr = 0;
    dwErr = SetEntriesInAcl( 1, &denyAccess, NULL, &pTempDacl );
    // check dwErr...
    dwErr = SetSecurityInfo( hProcess, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pTempDacl, NULL );
    // check dwErr...
    LocalFree( pTempDacl );
    CloseHandle( hProcess );
    return dwErr == ERROR_SUCCESS;
}

http://stackoverflow.com/questions/6185975/prevent-user-process-from-being-killed-with-end-process-from-process-explorer

1 użytkowników online, w tym zalogowanych: 0, gości: 1