Сразу говорю что юзал не только поиск этого форума, я гугл просто за*рахал меня помоему в блэк лист добавили гугловцы Значит так , у меня вопрос , пожалуйста , на пальцах обьясните мне как нужно перехватывать Native API. Я понимаю по этому коду (взято с http://www.wasm.ru/article.php?article=apihook_3) Код (Text): //устанавливаем перехват TrueNtOpenProcess = NTCALL(OpenProcId); __asm { cli // запрещаем прерывания mov eax, cr0 mov CR0Reg,eax and eax,0xFFFEFFFF // сбросить WP bit mov cr0, eax } NTCALL(OpenProcId) = NewNtOpenProcess; __asm { mov eax, CR0Reg mov cr0, eax // востановить содержимое CR0 sti // разрешаем прерывания } Что "где то" заменяеться адрес обработчика Api вызовов, т.е наша функция стоит как стена между юзер модом и обработчиком API. Но не понятно что и куда передаёться. Гуру пожалуйста обьясните на пальцах что и куда идёт Не помешает хорошо закомментированный кусок кода драйвера для перехвата АПИ где обьясняеться что и как работает , т.е можно было под себя менять. Если не хотите писать код то подробно пожалуйста опишите.Перечёл все статьи на русском про API перехват в юзер мод и кернел мод, так что можете ссылки не кидать. В общем думаю тема понадобиться новичкам как я
1. сохранили старый адрес апи 2. запретили прерывания, чтобы не было ахтунг в случае чего 3. установили свой обработчик, hint: #define NTCALL(_function)KeServiceDescriptorTable->ntoskrnl.ServiceTable[_function] 4. восстановили прерывания, система функционирует так же как и прежде. техника, работающая еще с времен доса. АВ монитор может такое и не разрешить, что имхо верно. ахтунг на х86-64
Код (Text): __asm { cli // запрещаем прерывания mov eax, cr0 mov CR0Reg,eax and eax,0xFFFEFFFF // сбросить WP bit mov cr0, eax } и Код (Text): __asm { mov eax, CR0Reg mov cr0, eax // востановить содержимое CR0 sti // разрешаем прерывания } По подробнее можно ? я могу его всегда юзать ? обьясните пожалуйста что он делает чтоб не чуствовать себя неполноценным
Что тебе ещё надо? Надо подробнее читай про флаги в cr0. Вроде как есть в цикле "Защишенный ражим" от Broken_Sword'a.
FromRing0, погугли книжку Шрайбера >> запретили прерывания, чтобы не было ахтунг в случае чего ... , что бы бит WP восстановился у _этого_же_ процессора. главный смысл кода это замаскировать защиту от записи (что бы не было BSOD)