Blokada Procesu Przed Zakończeniem

0

Witam.

Jestem osobą baardzo początkującą w programowaniu w C++, więc prosiłbym o wyrozumiałość (przynajmniej odrobinę :) ).
Otóż przeszukując internet, znalazłem bardzo ciekawy skrypt, który ma na celu ochronę procesu przed zakończeniem go.

#include <windows.h>
#include <AccCtrl.h>
#include <Aclapi.h>

DWORD SetPermissions(int pid)
{ 
        DWORD dwErr; 
    HANDLE hpWriteDAC = OpenProcess( WRITE_DAC, FALSE, pid ); 
        dwErr =GetLastError();     
         
    SID world = { SID_REVISION, 1, SECURITY_WORLD_SID_AUTHORITY, 0 }; 
 
    EXPLICIT_ACCESS ea = 
    { 
        PROCESS_TERMINATE, 
        DENY_ACCESS, 
        NO_INHERITANCE, 
        { 
            0, NO_MULTIPLE_TRUSTEE, 
            TRUSTEE_IS_SID, 
            TRUSTEE_IS_USER, 
            reinterpret_cast<wchar_t*>(&world),
        }
    }; 
    ACL* pdacl = 0; 
     dwErr = SetEntriesInAcl( 1, &ea, 0, &pdacl ); 
     
    dwErr = SetSecurityInfo( hpWriteDAC, SE_KERNEL_OBJECT, 
                           DACL_SECURITY_INFORMATION, 
                           0, 0, pdacl, 0 ); 
     
 
    LocalFree( pdacl ); 
        return dwErr; 
} 

int main(int argc, char *argv[]) {
    DWORD d = SetPermissions(1248);
}

Niestety ów program podczas kompilacji wyświetla błąd w linijce: "reinterpret_cast<wchar_t*>(&world)," , o treści: "cannot convert wchar_t*' to CHAR*' in initialization".
Proszę więc o pomoc w rozwiązaniu tego problemu.

Pozdrawiam.

0
  1. zamień wchar_t* na char*
  2. podaj źródło tego kodu, bo mi to nic a nic nie działa - program sobie mogę zwyczajnie zamknąć krzyżykiem, Ctrl+C i całą resztą... Zobaczyłbym komentarz do kodu, bo tak myśleć to mi się nie chce, a ciekaw jednak jestem ;)
0

Niestety wlasnie nie zapisalem sobie tej strony, skad to sciagnalem (ale poszukam jej)... Wiem tylko, że w części głównej programu, tam gdzie jest: SetPermissions(1248);, zamiast 1248, trzeba wpisać PID procesu, który chce się ochronić przed zamknięciem w taskmgr... Poprawiłem skrypt, tak jak napisałeś, wpisałem PID notatnika, ale nadal taskmanager może go zamknąć... Może gdzieś jeszcze jest jakiś błąd?

0

moze po prostu chodzisz na koncie administratora, ktory po prostu moze zamykac procesy innych userow?

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