В этом гайде я расскажу про использование библиотеки detour для сетапа хуков.
Поехали.
Создаём Win32 Dll.
Скачиваем архив (клик) с файлами.
После создания проекта добавляем файлы из архива в папку с проектом и в сам проект.
После в файле DllMain подключаем всё файлы
Далее создаём объекты для работы
После описываем апиентри дллки
После этого мы начинаем искать что мы будем хукать.
Допустим у нас есть такое приложение
Теперь для иды нужно поставить этот плагин.
Кидаем в папку Plugins
заходим в IDA 6.8
и ищем нашу функцию.
Вот она:
http://s019.radikal.ru/i638/1709/1c/8632b23bbb6c.png
Далее пкм по ней и Text View
http://s019.radikal.ru/i644/1709/50/1d67137e6270.png
Видим что-то типо этого
http://s016.radikal.ru/i337/1709/60/654205a7d6d6.png
Это и есть наша функция.
Выделяем её от типа до retn.
http://s019.radikal.ru/i637/1709/99/b485740a81a3.png
Далее жмём Edit -> Plugins -> SigMaker
и выбираем второе
http://s019.radikal.ru/i621/1709/13/e13af51732bf.png
и жмём ОК.
В низу появится паттерн + маска
http://i075.radikal.ru/1709/d6/7a4da758340b.png
Выделаем и идём в студию.
Видим Это
В первый параметр передаём имя процесса, во второе паттерн, и в 3 маску.
В результате у вас получится примерно это
Всё теперь осталось описать Хук-функцию. Идём вверх(над апиентри) и создаём тайпдеф нашей функции с параметрами(или без) - это мы увидим в IDA.
Хукаемая функция выглядит так:
int __cdecl FuncToHooked(int a, int 

И наш тайпдеф будет таким
Далее опишем саму функцию
Наша хукаемая функция возвращает сумму a , b;
Теперь при хуке будет не 5 + 5, а 105 + 55.
Ну в принципе всё. Для хука void функций делайте так:
Пробуйте)