Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Точка входа для функций, через PE-формат...  (Прочитано 7377 раз)
0 Пользователей и 1 Гость смотрят эту тему.
westley
Гость
« : 31-05-2005 14:28 » 

есть PE-образ ndis.sys, там есть, структура IMAGE_EXPORT_DIRECTORY, содержащая адреса и соответствующие им имена ФУНКЦИЙ, экспортируемых этим модулем. В одной из функций - NdisRegisterProtocol, передаваемый ей параметр - структура NDIS_PROTOCOL_CHARACTERISTICS, которая содержит точки входа для некоторых функций - так вот, надо узнать, по каким адресам располагаются в этой структуре точки входа...Следствие - нужно заменить адреса этих точек входа на адреса своих функций...
« Последнее редактирование: 31-05-2005 14:32 от westley » Записан
dachny
Гость
« Ответ #1 : 01-06-2005 06:58 » 

То есть сделать ndis хук
тогда вам поможет текст вот етот
http://ntdev.h1.ru/ndis_fw.zip


Хотя не кошерно ето
чем вам например не нравится NDIS IM драйвер
Записан
westley
Гость
« Ответ #2 : 01-06-2005 10:14 » 

То есть сделать ndis хук
тогда вам поможет текст вот етот
http://ntdev.h1.ru/ndis_fw.zip


Хотя не кошерно ето
чем вам например не нравится NDIS IM драйвер

спасибо за участие, на самом деле в том проекте продемонстрирован сплайсинг, а я хотел идти по пути подмены адресов функций, а верный ответ таков...
NdisRegisterProtocol вызывается драйвером, желающим зарегистрировать свой протокол. При этом в структуре NDIS_PROTOCOL_CHARACTERISTICS он передает адреса своих функций, которые будут дергаться ndis ом. Для перехвата поступают следующим образом. Перехватывают вызов NdisRegisterProtocol ( хотя бы подменив смещение в таблице экспорта ). При срабатывании перехватчика, Вы получите заполненную драйвером ( например tcpip.sys ) структуру NDIS_PROTOCOL_CHARACTERISTICS. Перед тем, как вызвать оригинальную версию NdisRegisterProtocol, можно некоторые члены структуры поменить. Сама структура ( NDIS_PROTOCOL_CHARACTERISTICS это псевдоним, реальный тип зависит от версии NDIS интерфейса драйвера ) объявлена в хедере ndis.h и не является секретом.
Записан
dachny
Гость
« Ответ #3 : 01-06-2005 11:24 » 

>>спасибо за участие, на самом деле в том проекте продемонстрирован сплайсинг, а я хотел идти по пути подмены адресов функций, а верный ответ таков...
>>NdisRegisterProtocol вызывается драйвером, желающим зарегистрировать свой протокол. При этом в структуре NDIS_PROTOCOL_CHARACTERISTICS он передает адреса >>своих функций, которые будут дергаться ndis ом. Для перехвата поступают следующим образом. Перехватывают вызов NdisRegisterProtocol ( хотя бы подменив >>смещение в таблице экспорта ). При срабатывании перехватчика, Вы получите заполненную драйвером ( например tcpip.sys ) структуру >>NDIS_PROTOCOL_CHARACTERISTICS. Перед тем, как вызвать оригинальную версию NdisRegisterProtocol, можно некоторые члены структуры поменить. Сама структура ( >>NDIS_PROTOCOL_CHARACTERISTICS это псевдоним, реальный тип зависит от версии NDIS интерфейса драйвера ) объявлена в хедере ndis.h и не является секретом.

Я ето вам сам расказать могу


И все таки чем не устраивает IM driver наподобие passthrue из DDK
Записан
westley
Гость
« Ответ #4 : 02-06-2005 09:23 » 

И все таки чем не устраивает IM driver наподобие passthrue из DDK

ответ можно посмотреть здесь
http://dago.nad.ru/modules/myarticles/article.php?storyid=852
и здесь
http://www.ntkernel.com/w&p.php?id=14
в двух словах без IM проще...Ага
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines