A>К примеру:
A>В Process Explorer`е на закладке "Threads" в поле "Start Address" указаны <имя модуля>!<функция>+<адрес>. <адрес> я получаю, а вот с <имя модуля> беда.
Process Explorer работает с
Native API.
В вашем случае всё несколько проще.
A>Есть идеи?
Можно почитать вот эту статью —
Enumerating All Modules For a Process.
Это при условии, что вам известен виртуальный адрес рабочей функции потока.
Если кратко, то алгоритм должен выглядеть так:
1.
OpenProcess()
2.
EnumProcessModules()
3.
GetModuleFileNameEx()
4.
GetModuleInformation()
5.
CloseHandle()
GetModuleFileNameEx() — для каждого модуля получим полный путь к файлу. Если это нужный нам модуль, то далее функция
GetModuleInformation() подскажет адрес загрузки этого модуля и размер его образа в памяти. Остаётся только вычислить, находится ли адрес функции потока в пределах этого модуля или нет. Всё.