BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
7 nov. 2003 à 18:14
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010
-
22 mai 2007 à 17:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 22 mai 2007 à 17:41
Salut a tous,
Eh pour recuperer le CommandLine depuis le hProcess, il faut appeler NtQueryInformationProcess pour recupere la structure PROCESS_BASIC_INFORMATION (classe 0)
Cette structure contient une entree PebBaseAddress, il suffit alors de faire un ReadProcessMemory sur cette address pour recuperer la structure Peb, cette structure contient entre autre une entree ProcessParameters, il faut donc refaire un ReadProcessMemory sur l'address de cette entree afin de recuperer la structure PROCESS_PARAMETERS qui contient entre autres le CommandLine...
++
cs_Thez
Messages postés21Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention12 mars 2009 8 févr. 2007 à 14:21
Merci pour ces infos, je me plonge dans la doc et vous tiens au courant !
Encore merci.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 févr. 2007 à 13:05
cs_Thez
Messages postés21Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention12 mars 2009 8 févr. 2007 à 12:49
Je suis d'accord pour le probleme de pérennité, sachant que cette appli devra tourner
sur differents windows !
Pour le CreateRemoteThread, la MSDN indique que pour le paramètre "lpStartAddress"
il faut que : "... The function must exist in the remote process. ...".
Et ce n'est pas le cas.
Par contre, pouvez vous m'expliquer ce qu'est un hook en quelques mots et comment
procéder pour le mettre en place.
Merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 févr. 2007 à 11:29
Prendre une info à une adresse fixe est gage de non pérennité, si on veut un code de suite qui risque fort de ne plus tourner au prochain service pack alors ok sinon toujours passer par API.
cs_Thez
Messages postés21Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention12 mars 2009 8 févr. 2007 à 09:21
Ce qui est completement different de ce que vous me proposez !
N'étant pas programmeur windows, pouvez vous me donner votre avis sur
cette source ?
Merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 févr. 2007 à 17:08
Il faut entrer dans le processus pour appeler GetCommandLine(), soit par hook soit par CreateRemoteThread.
cs_Thez
Messages postés21Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention12 mars 2009 7 févr. 2007 à 10:06
Je veux parler de la ligne de commande pour lancer l'application, en d'autres termes, se sont les arguments passer.
J'ai une application en mode console (pas de MFC ni autre) qui me liste les processus. Je voudrais récupérer les arguments passer à chaque processus pour pouvoir déterminer s'il y a des doublons.
Exp d'appli que je lance :
>C:\DeviceServers\ds_CompactPCICrate.exe 1 (ici 1 represente l'instance du processus ou son argument).
J'espere être plus clair !
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 févr. 2007 à 00:42
Qu'entends-tu par 'instance' ?
On a le processId et le hProcess s'obtient par OpenProcess(), je ne vois pas ce que tu veux d'autre.
cs_Thez
Messages postés21Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention12 mars 2009 6 févr. 2007 à 14:25
Bonjour BruNews,
J'aurais besoin d'une petite info :
avec votre application, il n'est pas possible de voir les instances des programmes lancés.
En fait, je fais la même chose mais j'aurais besoin d'afficher en plus l'instance du programme. Ceci dans le but de pouvoir identifier s'il y a des doublons.
Pouvez vous me dire comment procéder et quelles méthodes de l'API Windows faut-il utiliser ?
D'avance merci ...
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 15 janv. 2006 à 22:07
Autant pour moi j'avais pas vu que tu différenciais les 2, désolé.
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 15 janv. 2006 à 21:54
Salut, peut on savoir si c'est un processus system ou utilisateur ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 28 juil. 2005 à 00:02
Petite MAJ sur la boucle d'énumération.
kptn
Messages postés25Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention 2 janvier 2006 25 nov. 2003 à 11:38
En regardant juste l'appli, je ne voyais pas trop la difficulté de la chose, mais lorsque j'ai regardé ton code : le choc!
Tu t'es refais la procédure EnumProcess qu'on trouve sous psapi.dll
Chapeau bas.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 nov. 2003 à 18:14
La MAJ a porte sur la fonction de mise en format FR depuis un SYSTEMTIME, fait en asm 1 seul appel de 2 params.
22 mai 2007 à 17:41
Eh pour recuperer le CommandLine depuis le hProcess, il faut appeler NtQueryInformationProcess pour recupere la structure PROCESS_BASIC_INFORMATION (classe 0)
Cette structure contient une entree PebBaseAddress, il suffit alors de faire un ReadProcessMemory sur cette address pour recuperer la structure Peb, cette structure contient entre autre une entree ProcessParameters, il faut donc refaire un ReadProcessMemory sur l'address de cette entree afin de recuperer la structure PROCESS_PARAMETERS qui contient entre autres le CommandLine...
++
8 févr. 2007 à 14:21
Encore merci.
8 févr. 2007 à 13:05
J'ai fait de nombreux exemples de hook, mis en source, s'y référer car c'est un vaste sujet.
Richter ex^lique tout cela:
http://brunews.com/brunews/download/JR4.zip
http://brunews.com/brunews/download/JR4Sources.zip
8 févr. 2007 à 12:49
sur differents windows !
Pour le CreateRemoteThread, la MSDN indique que pour le paramètre "lpStartAddress"
il faut que : "... The function must exist in the remote process. ...".
Et ce n'est pas le cas.
Par contre, pouvez vous m'expliquer ce qu'est un hook en quelques mots et comment
procéder pour le mettre en place.
Merci
8 févr. 2007 à 11:29
8 févr. 2007 à 09:21
http://www.cppfrance.com/code.aspx?ID=37586
Ce qui est completement different de ce que vous me proposez !
N'étant pas programmeur windows, pouvez vous me donner votre avis sur
cette source ?
Merci
7 févr. 2007 à 17:08
7 févr. 2007 à 10:06
J'ai une application en mode console (pas de MFC ni autre) qui me liste les processus. Je voudrais récupérer les arguments passer à chaque processus pour pouvoir déterminer s'il y a des doublons.
Exp d'appli que je lance :
>C:\DeviceServers\ds_CompactPCICrate.exe 1 (ici 1 represente l'instance du processus ou son argument).
J'espere être plus clair !
7 févr. 2007 à 00:42
On a le processId et le hProcess s'obtient par OpenProcess(), je ne vois pas ce que tu veux d'autre.
6 févr. 2007 à 14:25
J'aurais besoin d'une petite info :
avec votre application, il n'est pas possible de voir les instances des programmes lancés.
En fait, je fais la même chose mais j'aurais besoin d'afficher en plus l'instance du programme. Ceci dans le but de pouvoir identifier s'il y a des doublons.
Pouvez vous me dire comment procéder et quelles méthodes de l'API Windows faut-il utiliser ?
D'avance merci ...
15 janv. 2006 à 22:07
15 janv. 2006 à 21:54
28 juil. 2005 à 00:02
25 nov. 2003 à 11:38
Tu t'es refais la procédure EnumProcess qu'on trouve sous psapi.dll
Chapeau bas.
7 nov. 2003 à 18:14