[C] Programmation systeme: execve(), fork() et pipe()
aulos7
Membre Messages : 49 Sujets : 1 Points: 3 Inscription : Oct 2012 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
C'est très intéressant ( même si je n'ai pas encore tout saisi).
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
De même pour moi ! je pense que tu as très bien expliqué , tout comme le type qui a écris le bouquin que j'ai .. mais j'ai du mal avec ça ..
|
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
Merci pour vos commentaires, hésitez pas a poser des questions hein ;) Et allez y a petites doses.
Je repasserais dessus demain pour ajouter des informations supplémentaires que j'ai quelque peu oublié... :p Mais rien de grave rassurez vous :p J'en avais juste un peu marre a la fin, j'ai abrégé. ^^' |
aulos7
Membre Messages : 49 Sujets : 1 Points: 3 Inscription : Oct 2012 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
Ben c'est pas de ta faute si je n'ai pas encore tout compris : il faudrait que je me remette à un langage de plus bas niveau pour tout saisir et faire des tests.
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
ouai aulos ! en te remttant a quelque choose de plus bas niveau .. tu finis par comprendre des choses plus facilement
|
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
Plop, j'ai rajouter la partie concernant les fonctions dup() et dup2(). btw, j'ai appris au passage l'existence d'une fonction dup3(), peut être que je la rajouterais :p
|
spin
Contributeur Messages : 325 Sujets : 15 Points: 38 Inscription : Nov 2011 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
Dans la section 0x01 :
Citation :Dans le cas contraire, si l’exécution du binaire passé en paramètre s'effectue correctement, execve() ne retournera absolument rien puisqu'il "passe au programme appelé". Citation :Ça peut paraître étrange, mais c'est très logique. Pour exécuter un binaire, le processeur garde un pointeur vers l'instruction en cours d’exécution, et est déplacé automatiquement vers la prochaine instruction. L'appel a execve() va permettre de déplacer se pointeur en allant a l'adresse de début du binaire a exécuter. Le binaire est ensuite exécuter. mais lorsqu'on arrive a la fin, le programme se ferme car le pointeur sur l'instruction en cours ne peut pas revenir tout seul a la position avant l’exécution. Je ne comprends pas bien, ici. Qu'advient-il exactement du programme qui a passé sa main ? Il reste en suspens jusqu'à ce que le programme lancé avec execve() se termine et continue ensuite, ou bien il continue son exécution en parallèle (dans le cas où -1 n'est pas retourné) ? Je précise que je ne connais pas la fonction execve(), je ne l'ai jamais utilisé. Pour le reste, je suis. Bonne continuation, c'est un bon tuto qui mérite sa place |
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: [C] Programmation systeme: execve(), fork() et pipe()
Hum.. Okay, je vois ce qui te dérange
En fait, tu reste toujours dans le même processus. Tu vas juste passer sur un autre bout de code exécutable. Du coup, quand le programme appelé se termine, le processus se termine aussi. Le programme ayant appelé le second ne continue pas, il s’arrête au niveau de l'appel a execve(). Et du coup, quand le processus se termine, les 2 programmes sont finis. Ensuite, si execve() renvoi -1, c'est que l'on est pas passe au programme suivant. Le programme appelant continue donc. |