Показать сообщение отдельно
Старый 25.10.2016, 13:42  
dark
Читодел
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,577 всего
Мнения: + 37709
Репутация: 116394
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от DaVilka Посмотреть сообщение
Нужно поставить хук на одну функцию, и все бы ничего, все пашет и работает, но есть одна проблема, гвард на нее тоже ставит хук, и все это дело палится. В общем дело обстоит так, по адресу 0x12345678 я сталю джамп на свою функцию, и перехват осуществляется но без возвращения управления, по этому же адресу ставит хук и гвард, после моего хука хук гварда не возобновляется. И при попытке вернуть управление меня икает. Как поставить джамп на мою функцию, так что бы не спалил гвард?
речь же о хуке winapi? почему без отсутствия возвращения управления? ты уверен, что ГГ тебе это простит? ведь по сути ты убиваешь/подвешивает его поток.
Далее, попробуй как я писал в статье про гг. Ты можешь попробовать метод, который юзает сам ГГ - сначала хукнуть VirtualProtect, убрать доступ на запись в winapi-шные регионы и фильтровать в этом хуке попытки сменить доступ к этим самым регионам. Только обрати внимание, что ГГ может будет ругаться на то, что не может сменить доступ к памяти, поэтому лучше бы имитировать успешность всех операций - и смену доступа, и успешность записи (если, конечно, она идёт через WriteProcessMemory/NtWriteVirtualMemory, а не напрямую). Чёто пока писал, понял, что это не хилый такой гемор )
Давайте варианты проще - при установке сплайс-хука в любом случае будет мост. Место, в котором должны выполниться затёртые инструкции. Попробуй туда впихнуть свой jmp. Не пробовал, но по логике должно работать.
Плюс, можно влепить jmp после их jmp (прокатит со всем кроме почти всех native api). Но тут надо внимательно следить за состоянием регистров, а то будут вылеты. Так я делал, на сколько я помню.

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием