N-PN White-Hat Project
Process windows - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25)
+--- Sujet : Process windows (/showthread.php?tid=3916)



Process windows - skii - 26-10-2016




RE: Process windows - supersnail - 26-10-2016

Bonjour,

Peut-être qu'un GetLastError pourrait nous donner une indication sur ce qui cloche (via un code d'erreur cryptique :p). Accessoirement GetModuleBaseName va taper dans le PEB du process cible à coup de ReadProcessMemory, du coup en plus des problèmes de droit d'accès à la mémoire, tu peux éventuellement avoir des problèmes avec du 32/64 bits.

Néanmoins, je suppose que https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms684280(v=vs.85).aspx pourrait également t'intéresser Wink


RE: Process windows - skii - 26-10-2016

En effet, je viens d'utiliser getlasterror(), l'erreur qui reviens est la numéro 5, access denied, mais aussi 6, the handle is invalid et pour finir, j'ai beaucoup d'erreur 299, Only part of a ReadProcessMemory or WriteProcessMemory request was completed.

Je vais regarder les liens que tu m'as donné. Merci pour la réponse.


RE: Process windows - supersnail - 26-10-2016

Tu peux aussi t'inspirer du code venant de ReactOS (clone de Windows), qui implémente justement un listing des process :]. Par exemple, https://doxygen.reactos.org/db/db8/tlist_8c_source.html Smile


RE: Process windows - skii - 26-10-2016

En effet, j'ai regardé le code, va falloir que je trie un peux, mais bien embêtant ce qu'il faut faire juste pour récupérer les processus ^^!

Merci.

EDIT: Voilà la solution que j'ai choisi :

Code :
HANDLE WINAPI CreateToolhelp32Snapshot(
        DWORD dwFlags,
        DWORD th32ProcessID
    );
    HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

    BOOL WINAPI Process32Next(
        HANDLE hSnapshot,
        LPPROCESSENTRY32 lppe
    );
    PROCESSENTRY32* processInfo=new PROCESSENTRY32;
    processInfo->dwSize=sizeof(PROCESSENTRY32);
    cout<< "Name : ";
    while(Process32Next(hSnapShot,processInfo)!=FALSE)
    {
        cout<<" Process ID: "<<processInfo->th32ProcessID;
        cout<<endl<<" Name: "<<processInfo->szExeFile;
    }
    CloseHandle(hSnapShot);



RE: Process windows - supersnail - 26-10-2016

C'est la solution la plus facile, toute la tuyauterie interne est planquée par iphlpapi, mais c'est moins rigolo du coup :]


RE: Process windows - skii - 26-10-2016

(26-10-2016, 17h45)supersnail a écrit : C'est la solution la plus facile, toute la tuyauterie interne est planquée par iphlpapi, mais c'est moins rigolo du coup :]

Oui, mais je suis sur un gros projet, et je ne suis pas un expert en C++ :d.