Я пытаюсь получить имя модуля для каждого потока в процессе.Process Explorer показывает имя модуля, связанного с каждым потоком без проблем.Я могу без проблем перечислить все модули и все потоки в моем текущем процессе и получить данные, связанные с ними.Мой текущий метод вывода связанного модуля следующий:
if(module.BaseAddress < thread.StartAddress && (module.BaseAddress + module.BaseMemorySize) > thread.StartAddress)
{
// this is our module ;)
}
К сожалению, это не кажется конкретным способом сделать это.Модуль xfire_toucan.dll показывает в порядке procxp:
1972 : xfire_toucan.dll!ToucanSendGamestatsConsoleLine_V1+0x80
В списке модулей он отображается с базовым адресом 0x10000000
и размером 0x26b000
, что дает нам максимальный адрес памяти, равный0x1026b000
.Однако связанный с ним начальный адрес потока равен 0x775e2ca0
, который является частью выделенного блока памяти в процессе, выходящем за пределы диапазона основной памяти модуля.
Есть идеи, как получить модуль, подобный ProcExp?
Я знаю C и C #, так что все в порядке, но мой проект на C #, поэтому он предпочтителен:]