c ++ - GetModuleFileNameA returnerer underlige resultater

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at få navnet på et modul i en anden proces med GetModuleFileNameA.

Jeg har læst et symbol ved hjælp af dbgHelp og fik sin modul base adresse, men 2 rare ting sker:

1. Nogle gange returnerer GetModuleFileNameA systemfejlkoder 5: Adgang nægtet.

2. Den returnerer det forkerte modulnavn. for en funktion, jeg ved at være i modul A, får jeg navnet på modul B ...:/


Kan nogen hjælpe mig?

tak:)

Bedste reference


Læs venligst dokumenterne. Lige på siden for GetModuleFileName står det [3]



  For at finde filen for et modul, der blev indlæst af en anden proces, skal du bruge funktionen GetModuleFileNameEx.



GetModuleFileName giver kun mening for moduler i din proces. Selvom begge processer har indlæst modulet, kan det være på en anden basisadresse. Du 'effektiviserer effektivt GetModuleFileName garbage. Bare for at gentage, skal du bruge GetModuleFileNameEx [4]

Andre referencer 1


Hvis din proces ønsker at få adgang til en anden proces, skal den have rettigheder til at gøre det. Det betyder, at din proces kræver forhøjede rettigheder, eller det skal være ejeren af ​​den anden proces.


Hvis du får det forkerte navn, har du muligvis brugt det forkerte håndtag. Det kan også forklare, hvorfor du får Adgang nægtet nogle gange. Hvis du sender håndtaget til det forkerte modul, har du muligvis ikke adgang til det, selvom du har adgang til det modul, du vil vide navnet på.