Je travaille sur un explorateur de processus mini-Windows en C, j'ai une poignée à un fil.
Comment puis-je récupérer l'adresse de départ de ce fil? Quelque chose comme ça:
p>
3 Réponses :
Vous devriez pouvoir obtenir une trace de pile avec stackwalk64 ou une fonction associée, puis analyser avec le dbghelp.dll. p>
Cet article de codeProject explique tout en détail: http://www.codeproject.com/kb/threads/stackwalker.aspx p>
Si vous n'avez besoin que de l'adresse de démarrage, ntqueryinformationthread code>
avec threadQuiserysewin32startadddress code>. Une autre possibilité est de marcher sur la pile du fil avec
stackwalk64 Code>
. p>
ntqueryinformationprocess code> est un lot em> plus simple. Même avec un codage assez terres, la pile prend quelques centaines de lignes de code ou ainsi. P>
Une telle question a déjà été posée il y a quelques jours. Voici une solution d'exemple: source: http://forum.sysinternals.com/how-to-get-the-start-address-and-modu_topic5127_post18072.html#18072 P> Vous devrez peut-être inclure ce fichier: http://pastebin.com/eeeqr0el p> Question connexe: Comment ajouter NTDLL.DLL aux bibliothèques de projet avec des fonctions LoadLibrary () et GetProcAddress ()? P> P>
Merci, mais cette fonction reviendra un nombre. Comment puis-je l'utiliser comme adresse de début?
Cette fonction renvoie l'adresse de départ d'un fil de thread dans l'espace d'adressage de processus cible. Vous l'utilisez de quelque manière que vous ne voulez que (par exemple, si vous connaissez la définition de la fonction, vous pouvez la jeter et appeler à l'aide de CreaterEmoteTetHread code> Fonction).
Puis-je récupérer quelque chose comme ceci: chrome.dll! Chromemain + 0x11d en utilisant ce numéro?
Je pense que vous devez vérifier quel module votre adresse de démarrage est située (il n'est pas nécessaire d'être dans le segment de fichier .Text du fichier EXE, par exemple, par exemple ntdll.dll code> ou
chrome.dll CODE>), obtenez le
imagebaseAddress code> du code, puis calculez la partie décalée (+ 0x1111111D). Les noms de fonction peuvent être récupérés en analysant directement les fichiers DLL ( MSDN.MicRosoft.com/ EN-US / Bibliothèque / MS809762.aspx Voir la section Exportations de fichiers PE). Heureux piratage!
C'est l'adresse du premier octet de la fonction dans le processus cible. Vous devez vous rappeler que cela peut être lancé sur un pointeur de fonction, mais le code est situé dans l'espace d'adressage de processus cible.
Ce mot pour x86 et x64?