Как стать автором
Обновить
0
0
Никита @nikitam

Пользователь

Отправить сообщение
При написании статьи никто и не претендовал на диссертацию! Это просто отправная точка одного из подходов (о чем и сказано в начале), и зачастую именно простейших примеров и не хватает людям, которые только начали разбираться
В данном примере явно нигде. Но это всего лишь пример, а не рабочее приложение. При освобождении ссылку на управляемый объект также освобождаем:
CppService::~CppService()
{
GCHandle handle = GCHandle::FromIntPtr(IntPtr(m_impl));
handle.Free();
}
Вы абсолютно правы!
Microsoft Detours немного отдельная тема. Я хотел показать сам процесс, Detours по сути это все скрывает. Более того коммерческая версия (и работа с архитектурой x64) стоят 10K $, поэтому интерес к этой библиотеке у меня поугас :)
Да, именно цель статьи и была показать что установка хука не такое уж сложное дело, попытаться дать направление куда мыслить тем кто только начал интересоваться указанной темой.

Про многопоточность вы абсолютно правы. Указанный пример не рассчитан на нее. Вообще умение установить описанный вами хук достаточно нетривиальное.
Это один из способов, посмотрите на Fiddler :)
К сожалению, указанным в статье способом доступ к такой функции получить нельзя. Можно дизассемблировать dll, понять где находится код нужной вам функции и заменить его своим.

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Работает в
Дата рождения
Зарегистрирован
Активность