Possible en double:
Windows Program: How to snoop on command line arguments?Identification Arguments de ligne de commande
Je travaille sous Windows XP.
J'ai reçu un logiciel tiers qui engendre plusieurs processus lors de son lancement. J'ai été chargé d'écrire un remplacement pour ce logiciel, mais je devrai conserver un de ses processus (un «serveur de communication» qui transmet/reçoit des messages de/aux «serveurs de communication» identiques sur d'autres machines en réseau). Une petite partie de ce processus consiste à apprendre à démarrer le "serveur de communication" directement. Si je commence juste avec aucun argument de la ligne de commande, il meurt immédiatement. Je pense qu'il a besoin d'arguments. Donc, toute ma question se résume à est ...
Est-il possible, pour tout processus arbitraire, de voir avec quels arguments il a été démarré? Si oui, comment puis-je le faire?
J'ai essayé d'attacher Visual Studio 2010, mais il n'y a pas de .pdb, donc je n'ai rien. Malheureusement, je ne sais pas dans quelle langue ce "serveur de communication" est écrit. Donc, c'était vraiment un longhot. (Je ne savais pas si cela me donnerait un moyen de trouver les arguments de toute façon, mais je pensais que ça valait la peine d'essayer.)
Merci, Dave
post-scriptum Désolé pour le mauvais choix de tags. C'est un difficile à catégoriser ...
Si vous voulez le faire par programme, il existe une API non documentée (?) 'NtQueryInformationProcess' qui vous permet d'interroger l'adresse du PEB, qui contient également la ligne de commande d'origine (ReadProcessMemory') . – ruslik