Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NDIS miniport нид хелп, Перехват и измен-е http запр-а с NDIS im 
:(
    Опции темы
Kasiro
Дата 29.10.2010, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



Всем доброго времени суток!

Стоит задача: создать драйвер который бы перехватывал http запрос и заменял его своим (например www.google.com  на www.yandex.ru)
После изучения некоторых материалов пришёл к выводу что можно реализовать это с помощью ndis im драйвера, (для изучения и внесения своих коррективов выбрал сэмпл из WDK - Passthru Ndis Intermediate Sample Driver)
Просмотрел исходники, в принципе не сложно, но моих знаний нехватает.
Интересует как получить пакет, изменить в нём запрашиваемую страницу и отправить дальше выполняться.
Любая инфа которая есть по этой теме так же очень желательна
Помогите пожалуйста)

зы: если я правильно всё понял, то код который мне необходим нужно вставлять в функции PtDispatch

Код

NTSTATUS
PtDispatch(
    IN PDEVICE_OBJECT    DeviceObject,
    IN PIRP              Irp
    )
/*++
Routine Description:

    Process IRPs sent to this device.

Arguments:

    DeviceObject - pointer to a device object
    Irp      - pointer to an I/O Request Packet

Return Value:

    NTSTATUS - STATUS_SUCCESS always - change this when adding
    real code to handle ioctls.

--*/
{
    PIO_STACK_LOCATION  irpStack;
    NTSTATUS            status = STATUS_SUCCESS;

    UNREFERENCED_PARAMETER(DeviceObject);
    
    DBGPRINT(("==>Pt Dispatch\n"));
    irpStack = IoGetCurrentIrpStackLocation(Irp);
      

    switch (irpStack->MajorFunction)
    {
        case IRP_MJ_CREATE:
            break;
            
        case IRP_MJ_CLEANUP:
            break;
            
        case IRP_MJ_CLOSE:
            break;        
            
        case IRP_MJ_DEVICE_CONTROL:
            //
            // Add code here to handle ioctl commands sent to passthru. //Кэп очевидность подсказывает что сюда
            //
            break;        
        default:
            break;
    }

    Irp->IoStatus.Status = status;
    IoCompleteRequest(Irp, IO_NO_INCREMENT);

    DBGPRINT(("<== Pt Dispatch\n"));

    return status;



PM MAIL   Вверх
Kasiro
Дата 30.10.2010, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



Можно просто литературу посоветовать smile 
PM MAIL   Вверх
Resident
  Дата 6.11.2010, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



Тоже интересует
PM   Вверх
Kasiro
Дата 7.11.2010, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



Resident, я вроде начал разобрираться с сабжем
руководствуюсь документацией WDK 
книгой "Программирование драйверов и систем безопасности"
и этой темой - http://forum.shelek.ru/index.php/topic,7748.0.html

а так вопросы будут, пиши в эту тему, может гуру подключатся к обсуждению)
PM MAIL   Вверх
icecrashldr
Дата 8.11.2010, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



Kasiro
Вы не тот семпел выбрали .. 
\src\network\ndis\filter\         - Если NDIS ! 

Может будет лучше узать TDI так как это идет выше по стеку ... Хоть и microsoft говорит что это не будет работать, оно все равно работает ... 

C уровня NDIS вам придется анализировать выше стоящий транспортый уровень ...


А ваш участок кода не закакой транспорт не отвечает ... Это Dispatcher IO на драйвер ... 

Проще говоря нужно читать доки ... 
PM MAIL WWW   Вверх
Kasiro
Дата 9.11.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



icecrashldr, да, вы совершенно правы по поводу того куска кода, это не то что нужно
но в этом же семпле я нашёл функцию где происходит обработка пакета

а вот насчёт TDI, я смогу изменять содержимое хттп пакета на его уровне?
PM MAIL   Вверх
icecrashldr
Дата 12.11.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



Kasiro, В целом можно ... smile
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.