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.