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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Будь ты проклят, шрайбер! =))  (Прочитано 7502 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maaaaaad
Гость
« : 28-09-2003 07:44 » 

Плин, второй день вожусь, не могу сделать что б мое полено грузилось динамически......

Весь проект изгадил, не знаю как востанавливать буду.......

вот ошметки проекта.....


Код:
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObj, 
PUNICODE_STRING RegistryPath) {

    NTSTATUS code = STATUS_SUCCESS;

    DbgPrint("\n" DRIVER_NAME " %s %s\n",__DATE__, __TIME__);

#if defined(ALLOW_ENTRY_INIT)
code = DriverInitialize(DriverObj,RegistryPath);
#endif

    //DriverObj->MajorFunction[IRP_MJ_CREATE]         =  CreateClose;
    //DriverObj->MajorFunction[IRP_MJ_CLOSE]          =  CreateClose;
    //DriverObj->MajorFunction[IRP_MJ_READ]           =  ReadControl;
    //DriverObj->MajorFunction[IRP_MJ_WRITE]          =  WriteControl;
    DriverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] =  DeviceControl;
    DriverObj->MajorFunction[IRP_MJ_PNP] = PnpControl;
    DriverObj->DriverExtension->AddDevice = AddDevice;
    DriverObj->DriverUnload = Unload;

#if DBG
    DbgPrint(DRIVER_NAME "DriverEntry: Leaving\n");
#endif

    return(code);
}


DeviceControl, AddDevice не вызывается при загрузке по этому не важно что там...
так...
PnpControl - подставлял его идиотский обработчик пнп. Результат нулевой.

DriverInitialize такой

Код:
#if defined(ALLOW_ENTRY_INIT)
NTSTATUS DriverInitialize(PDRIVER_OBJECT  pDriverObject,
                           PUNICODE_STRING pusRegistryPath) {
 PDEVICE_OBJECT pDeviceObject = NULL;
 NTSTATUS       ns = STATUS_DEVICE_CONFIGURATION_ERROR;
 UNICODE_STRING usDeviceName, usSymbolicLinkName;
 P_DEVICE_EXT devExt;

 
DbgPrint("DriverInitialize() Entry\n");

RtlInitUnicodeString(&usDeviceName, DeviceName);
RtlInitUnicodeString(&usSymbolicLinkName, SymbolicLinkName);

    ns = IoCreateDevice(pDriverObject,
                    sizeof(_DEVICE_EXT),
                    &usDeviceName,
                    FILE_DEVICE_CUSTOM,0,FALSE,
                    &pDeviceObject);

if (!NT_SUCCESS(ns)) {
DbgPrint("Unable create device!\n");
return ns;
}

ns = IoCreateSymbolicLink(&usSymbolicLinkName, &usDeviceName);

if (!NT_SUCCESS(ns)) {
DbgPrint("Unable create symbolic link!\n");
IoDeleteDevice(pDeviceObject);
return(ns);
}

gpDeviceObject  = pDeviceObject;
devExt = pDeviceObject->DeviceExtension;
devExt->DriverObject = pDriverObject;
devExt->DeviceObject = pDeviceObject;

#if defined(DBG)
DbgPrint("DriverInitialize() Leaving\n");
#endif

return ns;
}
#endif /* ALLOW_ENTRY_INIT */


по ходу все аналочично......


00000000   0.00000000       
00000001   0.00000922    Sep 28 2003 10:59:26   
00000002   0.00007543   DriverInitialize() Entry   
00000003   0.00028914   DriverInitialize() Leaving   
00000004   0.00033440   DriverEntry: Leaving   
00000005   0.00223352    Unload: Starting   
00000006   0.00241539    Unload: Leaving   

Загружается и тут же выгружается...
StartService не идет   ERROR_SERVICE_DISABLED

Блин, его драйвер грузится, а мой - нет......
Может тут по ходу опцию линкеру дать, как было для VxD (ну ващето там не совсем опция была=)))?
Подставлял его опции линкеру и опции (вкладки С/С++ и Link)


И ваще, его тулз какой та кривой, чета не правильно удаляется запись из SCM, такое ощущение, что они загружаются и после ребута...

Меня бесит его мения многократных вложенностей вызовов.....он о стеке задумывается???



Будь ты проклят, шрайбер!
« Последнее редактирование: 20-11-2007 15:47 от Алексей1153++ » Записан
maaaaaad
Гость
« Ответ #1 : 29-09-2003 08:12 » 

еееее=)))

так вот, господа, не трогайте DriverObj->DriverExtension->AddDevice =))
если хотите грузить ваш драйвер скамом сами.


#if defined(ALLOW_ENTRY_INIT)
DriverObj->DriverExtension->AddDevice = AddDevice;
#endif



Delta7....connected! Exploiting....
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #2 : 29-09-2003 10:29 » 

А чо ты раскричался? А?
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #3 : 29-09-2003 10:58 » 

SlavaI, ну у человека проблемы - ты б помог Улыбаюсь
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #4 : 30-09-2003 05:42 » 

Да нет там никаких проблем. Он сам их создал изменением ф-ции AddDevice. Надо же хоть один DEVICE_OBJECT управляемый драйвером создать, а он и создается или в AddDevice или в DriverEntry.
Обидел классного дяду Свена Шрайбера. Как так можно!
Записан
maaaaaad
Гость
« Ответ #5 : 30-09-2003 15:56 » 

извините=)

Свен! ты классный дядька!=)))
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines