Перехват функции из user32.dll
Олег19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
18.08.2016
Мне нужен рабочий пример, как перехватить функцию GetSysColor из user32.dll. Перехватчик должен возвращать или переопределённое мною значение или результат оригинальной функции GetSysColor, если переопределения не было.
Тестировать буду примерно таким кодом:
int _tmain(ing argc, _TCHAR* argv[]) {
DWORD v = GetSysColor(2);
printf("Got color: %x\n", v);
/* Maybe load your dll here */
set_color_override(2, 0x777777);
hook_GetSysColor();
v = GetSysColor(2);
printf("Got color: %x\n", v); // Expected: 0x777777
}
Перехват должен работать только для текущего процесса, другие приложения должны остаться незатронутыми. Код должен быть потокобезопасным.
Код должен работать без дополнительных зависимостей типа Detours.