Посл.ответ |
Сообщение |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 января 2007 10:36 · Личное сообщение · #1
Интересует сабж. Только плз, можно без асма? Си как-то ближе.
| Сообщение посчитали полезным: |
|
 Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 18 января 2007 11:02 · Личное сообщение · #2
перехвата чего? телепаты там знаешь где ;)
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 января 2007 11:45 · Личное сообщение · #3
АПИ-функций.
| Сообщение посчитали полезным: |
Ранг: 260.2 (наставник) Активность: 0.19↘0 Статус: Участник
|
Создано: 18 января 2007 12:24 · Личное сообщение · #4
Ищи статью ms-rem'а.
На wasm.ru
| Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 января 2007 13:29 · Личное сообщение · #5
Третья часть? Уже видел. Не то имхо.
| Сообщение посчитали полезным: |
Ранг: 228.7 (наставник), 2thx Активность: 0.12↘0 Статус: Участник malware research
|
Создано: 18 января 2007 14:10 · Личное сообщение · #6
Storm пишет:
Интересует сабж. Только плз, можно без асма? Си как-то ближе
LOL. ты знаешь сколько можно придумать способов похукать что-то? Ты хоть бы вопрос конкретизировал...
Если про хуки NativeAPI через SDT, то я даже не представляю какие там могут быть трудности...
----- Research is my purpose | Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 января 2007 15:14 · Личное сообщение · #7
Примерчик бы мне. Для этого тему и поднял.
| Сообщение посчитали полезным: |
 Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 18 января 2007 21:27 · Личное сообщение · #8
читай статьи на васме
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 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.01↘0 Статус: Участник
|
Создано: 19 января 2007 05:03 · Личное сообщение · #10
Нашел причину. Лишний пробел в название директории.
| Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 19 января 2007 12:05 · Личное сообщение · #11
Хм, другая трабла. Как получить инфу от драйвера?
| Сообщение посчитали полезным: |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 19 января 2007 14:37 · Поправил: s0larian · Личное сообщение · #12
Storm, ёлки, ты бы говорил что ты хочешь получить... размер, адрес загрузки, количество пямяти которое он сжерает  Если хочешь что-то передать апликухе програмно, то OpenFile(), ReadFile(), IoControl()
| Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 19 января 2007 23:27 · Личное сообщение · #13
Нет, именно обмен инфой. Например драйвер что-то перехватил, и "спрашивает" у проги.
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 19 января 2007 23:53 · Личное сообщение · #14
s0larian и написал, как делается обмен инфой. Можешь прогой вызывать DeviceIoControl, драйвером завершать этот запрос только, когда драйверу есть, что ответить проге. А вообще почитал бы книжки по дровам, статейки...
| Сообщение посчитали полезным: |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 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.43↘0 Статус: Участник
|
Создано: 23 января 2007 00:21 · Личное сообщение · #16
Storm пишет:
Нет, именно обмен инфой. Например драйвер что-то перехватил, и "спрашивает" у проги.
Написал бы поподробнее. Из этой фразы я понял, что ты хочешь написать свой драйвер, который чужие API отслеживать будет. Если так, то забудь - слишком у тебя слабая "база знаний". Как шутили в прошлом веке : "Для этого надо много учится".
Если тебя интересует обращение проги к "своему" драйверу - анализируем все вызовы DeviceIoControl.
| Сообщение посчитали полезным: |
Ранг: 62.3 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 23 января 2007 21:08 · Личное сообщение · #17
Читай статьи на wasm ме там все подробно написано и с примерами. Все тонкости работы драйвера в одном сообщении тебе ни кто не скажет. Так или иначе тебе надо знать что да как работает, иначе твоя прога будет генератором BSOD.
| Сообщение посчитали полезным: |