Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Установка драйверного перехвата
Посл.ответ Сообщение

Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 января 2007 10:36
· Личное сообщение · #1

Интересует сабж. Только плз, можно без асма? Си как-то ближе.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 18 января 2007 11:02
· Личное сообщение · #2

перехвата чего? телепаты там знаешь где ;)

-----
Тут не могла быть ваша реклама




Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 января 2007 11:45
· Личное сообщение · #3

АПИ-функций.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 18 января 2007 12:24
· Личное сообщение · #4

Ищи статью ms-rem'а.
На wasm.ru



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 января 2007 13:29
· Личное сообщение · #5

Третья часть? Уже видел. Не то имхо.



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 18 января 2007 14:10
· Личное сообщение · #6

Storm пишет:
Интересует сабж. Только плз, можно без асма? Си как-то ближе

LOL. ты знаешь сколько можно придумать способов похукать что-то? Ты хоть бы вопрос конкретизировал...
Если про хуки NativeAPI через SDT, то я даже не представляю какие там могут быть трудности...

-----
Research is my purpose




Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 января 2007 15:14
· Личное сообщение · #7

Примерчик бы мне. Для этого тему и поднял.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 18 января 2007 21:27
· Личное сообщение · #8

читай статьи на васме

-----
Тут не могла быть ваша реклама




Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 19 января 2007 03:00 · Поправил: Storm
· Личное сообщение · #9

Утащил я значит такой файлик: [url=http://www.wasm.ru/pub/21/files/drivers.rar
]http://www.wasm.ru/pub/21/files/drivers.rar
[/url]
Собираю минимал драйвер free build'ом. Он пишет что собрано два файла, но в логе вот это:

BUILD: Computing Include file dependencies:
BUILD: Examining e:driversminimal driver directory for files to compile.
Compiling e:driversminimal driver directory ********************
'nmake.exe /c BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 NOPASS0=1 386=1'
jvc /nologo /cp E:WINDDK3790publicsdkclassesafc.zip;E:WINDDK3790publicsdkcl assesclasses.zip;E:driversMinimalDriver; /O /w4 /d objfre_wnet_x86i386
"jvc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
jvc /nologo /cp E:WINDDK3790publicsdkclassesafc.zip;E:WINDDK3790publicsdkcl assesclasses.zip;E:driversMinimalDriver; /O /w4 /d objfre_wnet_x86i386
"jvc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Linking e:driversminimal driver directory ********************
'nmake.exe /c BUILDMSG=Stop. -i LINKONLY=1 NOPASS0=1 NTTEST= UMTEST= 386=1'
jvc /nologo /cp E:WINDDK3790publicsdkclassesafc.zip;E:WINDDK3790publicsdkcl assesclasses.zip;E:driversMinimalDriver; /O /w4 /d objfre_wnet_x86i386
"jvc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
jvc /nologo /cp E:WINDDK3790publicsdkclassesafc.zip;E:WINDDK3790publicsdkcl assesclasses.zip;E:driversMinimalDriver; /O /w4 /d objfre_wnet_x86i386
"jvc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.




Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 19 января 2007 05:03
· Личное сообщение · #10

Нашел причину. Лишний пробел в название директории.



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 19 января 2007 12:05
· Личное сообщение · #11

Хм, другая трабла. Как получить инфу от драйвера?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 19 января 2007 14:37 · Поправил: s0larian
· Личное сообщение · #12

Storm, ёлки, ты бы говорил что ты хочешь получить... размер, адрес загрузки, количество пямяти которое он сжерает Если хочешь что-то передать апликухе програмно, то OpenFile(), ReadFile(), IoControl()



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 19 января 2007 23:27
· Личное сообщение · #13

Нет, именно обмен инфой. Например драйвер что-то перехватил, и "спрашивает" у проги.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 января 2007 23:53
· Личное сообщение · #14

s0larian и написал, как делается обмен инфой. Можешь прогой вызывать DeviceIoControl, драйвером завершать этот запрос только, когда драйверу есть, что ответить проге. А вообще почитал бы книжки по дровам, статейки...




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 22 января 2007 09:37 · Поправил: s0larian
· Личное сообщение · #15

Storm, значит так, для тех кто не читат доки:
- дрова работают в kernel mode, и они все в kernel address space
- user mode app получает своё собственное address space (адресное пространство и след. виртуальные адреса)
- просто так вызвать функцию из драйвера нельзя

Механизм общения с драйвером таков:
- driver creates a device: IoCreateDevice(), IoCreateSymbolicLink()
- потом прописывает обработчик: driverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = IoControl;
- user mode app вызывает CreateFile(), DeviceIOControl()
- в контексте ядра вызывется твой обработчик и получает IRP
- ты смотришь что там за вызов (можешь поддерживать несколько разных функций) и читаешь/пишешь в буфер
- вызываешь IoCompleteRequest(irp, IO_NO_INCREMENT);
- в user mode процессе execution возвращается в твой код из DeviceIOControl()



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 января 2007 00:21
· Личное сообщение · #16

Storm пишет:
Нет, именно обмен инфой. Например драйвер что-то перехватил, и "спрашивает" у проги.

Написал бы поподробнее. Из этой фразы я понял, что ты хочешь написать свой драйвер, который чужие API отслеживать будет. Если так, то забудь - слишком у тебя слабая "база знаний". Как шутили в прошлом веке : "Для этого надо много учится".
Если тебя интересует обращение проги к "своему" драйверу - анализируем все вызовы DeviceIoControl.



Ранг: 62.3 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 23 января 2007 21:08
· Личное сообщение · #17

Читай статьи на wasm ме там все подробно написано и с примерами. Все тонкости работы драйвера в одном сообщении тебе ни кто не скажет. Так или иначе тебе надо знать что да как работает, иначе твоя прога будет генератором BSOD.


 eXeL@B —› Программирование —› Установка драйверного перехвата
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати