begin process at 2012 05 29 16:57:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

probleme droit d'acces sur processus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme droit d'acces sur processus

samedi 12 mars 2011 à 13:20:34 | probleme droit d'acces sur processus

wisar

bonjours

voila je suis en train de programmer une petite application sur l'injection de dll.
Hors j'ai remarqué que j'ai un problème de droit d'accès sur les processus système malgré une élévation du privilège en DEBUG.
D'après mes souvenirs je n'avais aucun soucis avec mon ancien pc mais qui était en win XP.
J'ai donc créer un petit bout de code pour vérifier accessibilité de tout mes processus en cours,voila le bout de code:

Code C/C++ :
#include <windows.h>
#include <iostream>
#include <tlhelp32.h>
HANDLE process;



BOOL SetDebugPrivileges(VOID)
{

    DWORD dwPID;
    HANDLE hProcess;
    HANDLE hToken;
    LUID Luid;
    TOKEN_PRIVILEGES tpDebug;
    dwPID = GetCurrentProcessId();
    if ((hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID)) == NULL) return FALSE;
    if (OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken) == 0) return FALSE;
    if ((LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Luid)) == 0) return FALSE;
    tpDebug.PrivilegeCount = 1;
    tpDebug.Privileges[0].Luid = Luid;
    tpDebug.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    if ((AdjustTokenPrivileges(hToken, FALSE, &tpDebug, sizeof(tpDebug), NULL, NULL)) == 0) return FALSE;
    if (GetLastError() != ERROR_SUCCESS) return FALSE;
    CloseHandle(hToken);
    CloseHandle(hProcess);
    return TRUE;
}




int main()
{
    HANDLE SnapShot;
    PROCESSENTRY32 Process;
    int Ok=0;
    int Echec=0;
    bool I;

    if (SetDebugPrivileges)
    {
        printf("Elevation privilege ok\n\n");
    }
    else
    {
        printf("Elevation privilege erreur\n");
    }


    SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    Process.dwSize = (DWORD) sizeof(PROCESSENTRY32);

    I = Process32First(SnapShot, &Process);
    do 
    {
        printf("%s:",Process.szExeFile );
        process=OpenProcess(PROCESS_ALL_ACCESS,false,(DWORD)Process.th32ProcessID );
        if (process!=NULL)
        {
            printf("\tOK\n");
            Ok++;
        }
        else
        {
            printf("\tECHEC\n");
            Echec++;
        }


        I = Process32Next(SnapShot, &Process);
    }
    while ( I );

    CloseHandle(SnapShot);
    printf("Nombre de processus exploitable:%d\n",Ok);
    printf("Nombre de processus avec acces refuser: %d\n",Echec);
    system("pause");
    return 0;
}

Avec se bout de code, il n'y a aucune différence de résultat avec l'élévation de privilège ou sans donc se qui me fait penser a une erreur dans la fonction SetDebugPrivilege malgré que celle si me revoie true.
Ma question est la suivante es que quelqu'un sait si le niveau de sécurité des processus system tel que csrss.exe ont été augmenter depuis vista ou seven par rapport a windows xp
ou es qu'il y a une erreur dans mon code.

merci d'avance pour vos reponce.
bonne journée a tous
samedi 12 mars 2011 à 22:37:18 | Re : probleme droit d'acces sur processus

racpp

Administrateur CodeS-SourceS
Salut,
Je pense que tu as besoin d'inclure le manifest permettant d'élever les privilèges de ton exécutable sous Vista/7. La boite UAC apparaitra et en cliquant sur "Oui" ton exécutable obtiendra les privilèges requis. Il ne s'agit pas d'ajouter du code mais plutot d'inclure un fichier XML dont le contenu est bien défini en tant que ressource à ton exécutable. Si tu n'arrives pas à trouver d'exemple sur le net, je pourrais faire un petit code source et le déposer sur le site demain.


Cette discussion est classée dans : process, return, false, processus, if


Répondre à ce message

Sujets en rapport avec ce message

trouver le bon process ID!!! [ par anthraxx ] Je voudrais terminer un processus (avec TerminateProcess) dont je ne connais que le nom du fichier executable (mdm.exe par exemple), et le processus n [DevCPP][DirectInput] Pb avec SetDataFormat [ par Shinji ] Bonjour à tous !J'utilise DirectInput pour gérer clavier et souris dans mon programme. Je l'ai déjà réalisé avec succès mais depuis que j'ai du change EnumProcess Visual C++ 6.0 [ par Steph115 ] Salut j'ai ma fonction comme ceci (j'ai trouver ca dans le msdn explique dans un post par brunews datant de juillet 2003) : // fonction WinMainint API recv() winsock2 en plusieurs morceaux [ par billbaxter ] Bonjour,J'ai développé une appli client-serveur avec les winsock2 en me référant aux exemples MSDN.Ceux-ci ne présentent qu'un dialogue effectué en un Problème chargeur dll [ par M5i9k ] Bonjour,j'ai écrit un programme qui permet de charger une dll dans un processus, mais le programme fonctionne seulement en DEBUG, en RELEASE, j'ai un Thread fonctionne pas -> je suis beginner en thread :) [ par Roudy ] quelqu'un est capable svp de me dire pkoi le thread part pas svpint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int n Savoir si la session en cours est administrateur [ par sephiro ] Il est important pour l'un de mes programmes de savoir si l'utilisateur est admin ou non.J'ai recherché sur ce site des informations sans rien trouver processus [ par sebseb42 ] Bonjour,voila, j'utilise l'API Process Status (PSAPI) pour lister tout les process existant ainsi que leur modules...La seul information que j'arrive Operateur logique le + rapide [ par Neo_Fr ] Bonsoir, je suis en train de me demander quelle est l'operateur logiques le + rapide, ex: Est t'il plus rapide de faire: if(a != b) return 0; ou if(a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales