как написать драйвер не имея DDK?

Тема в разделе "WASM.BEGINNERS", создана пользователем linkmaze, 29 авг 2007.

  1. linkmaze

    linkmaze New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2007
    Сообщения:
    60
    Подскажите реально ли написать драйвер без использования DDK, если да то как?
     
  2. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Смысл?
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    реально
    сохраняй сорец в bat файл под именем mydriver.bat, ставь fasm, компиляй и запускай с
    помощью проги из KmdKit by Four-F, там же найдешь все необходимое для написания более
    сложных драйверов
    Код (Text):
    1. ;@echo off
    2. ;goto make
    3.  
    4. format PE native 4.0 at 10000h
    5. entry DriverEntry
    6.  
    7. include '%fasminc%\MACRO\PROC32.INC'
    8.  
    9. STATUS_UNSUCCESSFUL        = 0C0000001h
    10.  
    11. section '.text' code readable executable notpageable
    12.  
    13. DriverEntry:  ; pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
    14. ;    int3
    15.     cinvoke DbgPrint, sz
    16.  
    17.     mov eax, STATUS_UNSUCCESSFUL  ; драйвер будет сразу выгружен
    18.     retn 2*4
    19.  
    20. section '.rdata' data readable notpageable
    21.  
    22. ntoskrnl_import_address_table:
    23.     DbgPrint dd rva _DbgPrint
    24.     dd 0
    25.  
    26. ; section '.data' data readable writeable notpageable
    27.  
    28. sz db "Entered the Driver Entry",0Dh,0Ah,0
    29.  
    30. section 'INIT' import code readable writeable executable discardable
    31.  
    32.     dd rva ntoskrnl_import_lookup_table,0,0,rva ntoskrnl_name,rva ntoskrnl_import_address_table
    33.     dd 0,0,0,0,0
    34.  
    35. ntoskrnl_import_lookup_table:
    36.     dd rva _DbgPrint
    37.     dd 0
    38.  
    39. _DbgPrint dw 0
    40.     db 'DbgPrint',0
    41.  
    42. ntoskrnl_name db "ntoskrnl.exe",0
    43.  
    44. section '.reloc' data fixups readable discardable
    45.  
    46.  
    47. ;:make
    48. ;SET PROJECTNAME=mydriver
    49. ;if exist %PROJECTNAME%.sys del %PROJECTNAME%.sys
    50. ;C:\Fasm\fasm.exe %PROJECTNAME%.bat
    51. ;pause
    52. ;cls
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    KmdKit by Four-F был написан с помощью masm, поэтому проще поставить masm и использовать его, а не fasm.
    Все примеры в KmdKit в синтаксисе masm'a, не надо будет переводить на fasm.
     
  5. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    видел наборчик вроде даж на fasm'овском форуме для написания дров соответственно на FASM'е.
     
  6. Geen

    Geen New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2007
    Сообщения:
    51
    гм ... кмдкит - тот же ддк , тока в ассемблере ... что делает его гораздо проще чем на с. ддк - тот же ддкит ... однако.
    ... гм .. а как собирются писать дровину не использую нативного апи и структур ? ... со смещением по наитию о обращением по точкам входа ? ... круто. надеюсь тож дорасти до такого уровня.
     
  7. linkmaze

    linkmaze New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2007
    Сообщения:
    60
    Дело в том что есть устройство подключенное к COM порту (Win XP). Оно как-то взаимодействует с программой пользовательского режима. Необходимо узнать какие данные передаются устройству (если передаются) и какие данные устройство предает в порт (если передает), т.е. нужно проследить всю активность COM порта связанную с этим устройством. Возможно для "устройства" существует дополнительный драйвер.
    Я так понимаю что с пользовательского уровня реализовать такое не получится?
     
  8. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Так тебе просто нужно снять ЛОГ с порта и делов.
    Да вот потом разобраться с этим ЛОГОМ.

    Я делал так.
    Вешаешь еще два СОМ порта на ПРИЕМ и ПЕРЕДАЧУ запускаешь любой терминал, но лучше который НЕХ держит.
    И пишеш все в файл, да и время прихода нужно контролить, да еще желательно бы синхронизировать время ПРИЕМА и ПЕРЕДАЧИ.
     
  9. linkmaze

    linkmaze New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2007
    Сообщения:
    60
    Долгое время ломал голову где достать Windows DDK, а тут пожалуйста все что нужно чтобы написать драйвер да еще на асме. А после прочтения KmdTut (http://www.wasm.ru/docs/1/kmdtut.zip) все стало совсем ясно.
    Оказалось написать драйвер не так и сложно.
    Огромное спасибо ! ! ! ! !
     
  10. buktak

    buktak New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    84
    Я думаю, скоро это пройдет :)
     
  11. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Казалось, написать драйвер не так и сложно. :)
    Отладить непросто.
     
  12. Termo_in_work

    Termo_in_work TermoSINteZ

    Публикаций:
    0
    Регистрация:
    31 июл 2007
    Сообщения:
    20
    Адрес:
    на работе
    t00x
    Особенно на Win_x64 - сайса там нет :)