Arbre processus
|
06-05-2013, 20h11
Message : #1
|
|
Kiwazaru
Padawan d'un super escargot Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
Arbre processus
Yop,
En ce moment j'essaye de coder un programme qui listerais tout les processus et les associerais en fonction de leurs processus fils , sauf que j'ai un problème ... J'utilise CreateToolHelp32Snapshot pour lister tout les processus et PROCESSENTRY32 pour accéder aux options th32ProcessID, th32ParentProcessID. Le but en fait est donc de vérifier si le processus analysé ne contient pas des processus fils et donc après pouvoir les lister. Cela peu paraître un peu abstrait pour certains donc je vais schématiser: Code : PROCESS NAME PID PPID Les noms de processus & PID sont fictifs bien sûr :p Quelqu'un aurait-il une idée de quel façon on pourrais lister tout ça car, par exemple si j'arrive sur explorer.exe, je détecte un processus fils nommé xchat.exe, mais là il faut aussi que je vérifie si xchat.exe contient des processus fils et ainsi de suite... Par exemple dans le cas du fork bombing (si je me trompe pas) ça foirerais complètement, car je me perdrait dans les sous processus etc sans être capable de revenir au processus initial qui était explorer.exe ! Bref, je me pose la question suivante: Est-ce possible? Je pense, mais je n'ai pas d'algo dans la tête :/ J'avais pensé à une mise en forme dans un fichier/buffer texte qu'on parserais pour retrouver le processus initial mais... j'arrive pas à me situer dans l'arbre :/
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
06-05-2013, 21h02
Message : #2
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Arbre processus
en bon disciple de MacYavel je dirais : récursivité !
|
|
06-05-2013, 21h56
Message : #3
|
|
Kiwazaru
Padawan d'un super escargot Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Arbre processus
J'ai aussi pensé à la récursivité mais... Comment tu mets ça en place? Ca change en rien le fait que tu ne puisses pas retrouver le processus initial :/
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
07-05-2013, 02h02
(Modification du message : 07-05-2013, 02h05 par gruik.)
Message : #4
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Arbre processus
difficile de dire avec précision mais globalement on pourrait imaginer un pseudo-code de ce genre :
Code C :
fonction(pid) { |
|
07-05-2013, 09h08
Message : #5
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,614 Sujets : 72 Points: 466 Inscription : Jan 2012 |
RE: Arbre processus
Sous win32 jcrois que tout est rattaché au process "[System]" (ou csrss.exe, qui gère les sessions win32)
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
07-05-2013, 20h42
Message : #6
|
|
Kiwazaru
Padawan d'un super escargot Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Arbre processus
gruik: Je veux bien pour ton code, mais comment tu fait par exemple si tu pars dans un triple sous process pour revenir à celui de base? (Ou alors c'est moi qui arrive pas à piger la notion :] )
supersnail: càd? Tu veux dire que j'pourrais gérer tout ça via System/Csrss.exe ?
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
07-05-2013, 20h44
Message : #7
|
|
InstinctHack
Posting Freak Messages : 1,366 Sujets : 184 Points: 299 Inscription : Dec 2011 |
RE: Arbre processus
Reverse c'est pas à toi de gerer ça, la pile d'éxécution gère toute seule comme une grande.
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!" |
|
07-05-2013, 20h48
Message : #8
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,614 Sujets : 72 Points: 466 Inscription : Jan 2012 |
RE: Arbre processus
@ReVeRse: je parlais juste du process "père" de tous les process sous win32
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
07-05-2013, 21h20
(Modification du message : 07-05-2013, 21h22 par Kiwazaru.)
Message : #9
|
|
Kiwazaru
Padawan d'un super escargot Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Arbre processus
Ah, donc en fait j'aurais juste à retourner sur System ? Ça pourrait être une solution :p
EDIT: En fait non, ça revient au même ! Par exemple si j'ai -> process.exe proc.exe >> proces.exe >>>> processs.exe >>>> process.exe proc.exe a comme process fils proces.exe mais proces.exe a DEUX processus fils, dont si je retourne directement au système j'aurais parsé que : proc.exe, proces.exe, processs.exe :/
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
07-05-2013, 21h26
(Modification du message : 07-05-2013, 21h28 par InstinctHack.)
Message : #10
|
|
InstinctHack
Posting Freak Messages : 1,366 Sujets : 184 Points: 299 Inscription : Dec 2011 |
RE: Arbre processus
Code PYTHON :
Plus con tu meurt la sortie : Code : Je suis un process et v'la mes fils : Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!" |
|
07-05-2013, 23h36
Message : #11
|
|
Creepy_p0ney
chef des poneys voodoo Messages : 146 Sujets : 9 Points: 24 Inscription : Dec 2011 |
RE: Arbre processus
@ReVerSe pour le code de gruik : la récursivité dude :p
pour chaque processus fils la fonction s'appelle, si il ya encore des processus fils elle s'appelle, puis se termine dans l'ordre où elle a été appelée
Penser que coder est coder explique-t-il la recursion ?
http://p0neyland.wordpress.com/ |
|
07-05-2013, 23h41
Message : #12
|
|
InstinctHack
Posting Freak Messages : 1,366 Sujets : 184 Points: 299 Inscription : Dec 2011 |
RE: Arbre processus
je dirais dans le sens inverse en fait... :]
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!" |
|
07-05-2013, 23h45
Message : #13
|
|
Creepy_p0ney
chef des poneys voodoo Messages : 146 Sujets : 9 Points: 24 Inscription : Dec 2011 |
RE: Arbre processus
ah oui :p j'ai hesité (putain ça fait deux fois que j'dis ça aujourd'hui) au bout de trois ça va plus passer
Penser que coder est coder explique-t-il la recursion ?
http://p0neyland.wordpress.com/ |
|
08-05-2013, 09h58
(Modification du message : 08-05-2013, 10h02 par Kiwazaru.)
Message : #14
|
|
Kiwazaru
Padawan d'un super escargot Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Arbre processus
Creepy_P0ney: "@ReVerSe pour le code de gruik : la récursivité dude Tongue
pour chaque processus fils la fonction s'appelle, si il ya encore des processus fils elle s'appelle, puis se termine dans l'ordre où elle a été appelée ", j'vais essayer on va bien voir Khaled: J'vais essayer de porter ça en C on va voir PS: J'avais mal interprété ton message au début khaled x)
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
08-05-2013, 11h11
Message : #15
|
|
Sh4dows
Tweetos Messages : 293 Sujets : 5 Points: 49 Inscription : Dec 2012 |
RE: Arbre processus
A savoir que suivant ce que tu fais avec la récursivité tu peux SoF (Stack OverFlow)
Donc essaye de gérer le truc comme il se doit
Faites ce que je dis et non ce que je fais !
|
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)