Terminer un Processus qui run en systeme

Signaler
Messages postés
25
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
15 mai 2004
-
Messages postés
25
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
15 mai 2004
-
Salut j'aimerais savoir comment terminer un processus qui run en system car la facon normal de terminer un processus marche sur ceux la,

j'ai tenter de modifier les droit de sécurité a l'aide d'un code source que j,ai trouver sur le forum mais sa ne marche pas le message d'errreur ne me retourne pas ERROR_SUCESS

j,ai essayer en changeant les droit avec sa :
 DWORD setpermission(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,
        SET_ACCESS,
        NO_INHERITANCE,
        {
            0, NO_MULTIPLE_TRUSTEE,
            TRUSTEE_IS_SID,
            TRUSTEE_IS_USER,
            reinterpret_cast<char*>( &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;
 }


j'ai essayer aussi en modifiant SET_ACCESS par GRANT_ACCESS mais j,ai pas eu plus success
Si quelqu'un a une idée sa serait apprecier,
merci :)

4 réponses

Messages postés
32
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
24 août 2005

salut
as tu essayer douvrir ton process avec openprocess
avec les droits PROCESS_TERMINATE
si tu recoi un message access denied c'est que tu a oublier dobtenir les droits sedebugprivilege

c'est le mem probléme lors que tu list les process en cours
jespere tavoir aider
a++
Messages postés
25
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
15 mai 2004

ouais sa je suis au courant
mais justement c sa que je veux savoir comment obtenir les droits necessaire
j'ai reussi a trouver une méthode qui me permet de killer kelke process en system sa depend lesquel
en envoyant par winexec la lign suivante : ntsd -p [pid] -c "q"
Messages postés
32
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
24 août 2005

tien regarde ca

BOOL LoadPrivilege(const char * Privilege)
{
HANDLE hToken;
LUID SEDebugNameValue;
//SE_SECURITY_NAME
//SE_DEBUG_NAME
TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
fprintf(stderr, "OpenProcessToken, Erreur: %s", get_error());
return FALSE;
}

if (!LookupPrivilegeValue(NULL, Privilege, &SEDebugNameValue))
{
fprintf(stderr, "LookupPrivilegeValue, Erreur: %s", get_error());
CloseHandle(hToken);
return FALSE;
}

tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = SEDebugNameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof tkp, NULL, NULL))
{
fprintf(stderr, "LookupPrivilegeValue, Erreur: %s", get_error());
CloseHandle(hToken);
return FALSE;
}

CloseHandle(hToken);

return TRUE;
}

void main()
{
if(!LoadPrivilege(SE_DEBUG_NAME))
return;
...

ca devrai taider a+
}
Messages postés
25
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
15 mai 2004

ouais c le genre de truck que je cherchais :)
merci