Вземете адрес на процедура/функция на друг процес

Пиша програма, която показва списъка с нишки на всички отворени процеси.

С подобна програма (Process Explorer) мога да видя списъка с нишки с някои информации, като ID на нишка, приоритет, начален адрес и т.н.

Мога да извлека и цялата тази информация, но Process Explorer показва началния адрес така:

ModuleName!ProcedureName+$1111

Как мога да получа ProcedureName без да инжектирам dll, за да използвам GetProcAddress?


person paulohr    schedule 09.05.2012    source източник
comment
Можете да инжектирате някакъв код, за да го направите.   -  person Seth Carnegie    schedule 09.05.2012
comment
Да, но възможно ли е да го получите без инжектиране?   -  person paulohr    schedule 09.05.2012
comment
Можете да анализирате PE заглавката и всичко това.   -  person Seth Carnegie    schedule 09.05.2012


Отговори (1)


Можете да използвате функцията StackWalk64 WinAPi, която е част от DbgHelp, ако искате извадка на delphi как да използвате тази функция, опитайте asmprofiler проект.

person RRUZ    schedule 09.05.2012
comment
Да, и вижте помощната програма map2dbg (google за нея), за да преведете генерирания от delphi файл с карта (ако го активирате в опциите на проекта) в dbg файл, който е необходим на Process Explorer или Windows API. Разбира се, с малко помощ на джедаите, вие също бихте могли сами да анализирате файла с картата, но лично аз не бих си направил труда. - person Marjan Venema; 09.05.2012
comment
Благодаря на RRUZ и Marjan Venema! - person paulohr; 10.05.2012