Используя инъекцию Dll, я смог перехватить символ malloc
из msvcrt.dll
и распечатать журнал всех вызовов на malloc
из введенного процесса. Проблема в том, что в журнале я могу найти вызовы malloc
, которых нет в целевом exe-файле, см. Дальнейший пример.
Я считаю, что есть способ решить эту проблему, основываясь на возвращенных адресах вызовов malloc
, которые я обнаружил в процессе перехвата. Вот файл журнала для целевого PE, скомпилированный с tcc:
0 malloc(18) memory allocated at: 10229112 the return adress is 74ab770a.
1 malloc(4096) memory allocated at: 10232824 the return adress is 74ab770a.
2 malloc(15) memory allocated at: 10229144 the return adress is 401022.
3 malloc(15) memory allocated at: 10229168 the return adress is 401041.
4 malloc(15) memory allocated at: 10229192 the return adress is 401060.
В exe-файле существуют только три последних вызова, и ясно, что другой пришел из совершенно другого PE.
Как я могу определить, какие вызовы из файла exe
, а какие из разных PE при печати журнала?
Спасибо за любую помощь.