Eheh
Tres simpa
J’avais failli explorer NtOpenProcess mais ayant effacés toutes mes VM sur un coup de tete ….
Sinon eh bien bravo , article clair avec des zoulis n’exemple , que demander de plus
Et en plus un lendemain de fete de la musique ….
Moi qui ce jour la me suis levé a 16h30 …
Chapeau
2.
overdose | juin 30th, 2007 at 11:03
si j’ai bien comprit les pid/tips ont juste des aoffset dans une table de pointeur.
Est ce que ca veut dire ke les pid et tId sont completement previsible ?
En effet les PID/TID sont prévisibles. Ils seront crée s dans les entrées libres de la table, cependant pour connaitre ces entrées il faut regarder le champ FirstFree de la PspCidTable. Par exemple, quand on crée un process :
Le parametre pHandle pushé est un pointeur qui va recevoir la valeur du PID. Si on regarde son contenu après le call, on voit bien que c’est la valeur du champ FirstFree. Après l’appel, la valeur est mise a jour :
[...] temps. On va ruser comme des renards, sachant qu’un handle n’est qu’au final un indice dans une table, il suffit de crée un handle, de récup sa valeur puis de le ferme, en théorie le handle suivant [...]
Je sais pas si tout ça c’est encore frais dans ta tête, mais que se passe-t-il lorsqu’un handle est ouvert par une DLL ? La table est gérée par la DLL elle-même – une fois mappée en mémoire – ou c’est le processus qui importe la DLL – IAT, LoadLibrary, … – qui s’occupe de tout ça ?
6 Comments
1. Baboon | juin 23rd, 2007 at 13:08
Eheh
Tres simpa
J’avais failli explorer NtOpenProcess mais ayant effacés toutes mes VM sur un coup de tete ….
Sinon eh bien bravo , article clair avec des zoulis n’exemple , que demander de plus
Et en plus un lendemain de fete de la musique ….
Moi qui ce jour la me suis levé a 16h30 …
Chapeau
2. overdose | juin 30th, 2007 at 11:03
si j’ai bien comprit les pid/tips ont juste des aoffset dans une table de pointeur.
Est ce que ca veut dire ke les pid et tId sont completement previsible ?
3. admin | juin 30th, 2007 at 14:54
En effet les PID/TID sont prévisibles. Ils seront crée s dans les entrées libres de la table, cependant pour connaitre ces entrées il faut regarder le champ FirstFree de la PspCidTable. Par exemple, quand on crée un process :
Le parametre pHandle pushé est un pointeur qui va recevoir la valeur du PID. Si on regarde son contenu après le call, on voit bien que c’est la valeur du champ FirstFree. Après l’appel, la valeur est mise a jour :
4. philou | juillet 10th, 2007 at 11:59
Hum… je crois que je suis très loin du sujet du billet mais…. Korn, à la fête de la musique, tu viens de la ville où on fait du bon vin toi aussi :p ?
(Non, non, je suis pas tombé ici par hasard XD)
5. Ivanlef0u’s Blog &r&hellip | novembre 24th, 2007 at 16:24
[...] temps. On va ruser comme des renards, sachant qu’un handle n’est qu’au final un indice dans une table, il suffit de crée un handle, de récup sa valeur puis de le ferme, en théorie le handle suivant [...]
6. Geo | septembre 23rd, 2010 at 20:43
Hello, Ivan.
Je sais pas si tout ça c’est encore frais dans ta tête, mais que se passe-t-il lorsqu’un handle est ouvert par une DLL ? La table est gérée par la DLL elle-même – une fois mappée en mémoire – ou c’est le processus qui importe la DLL – IAT, LoadLibrary, … – qui s’occupe de tout ça ?
Merci !
Geo
Trackback this post