Сейчас на форуме: subword, rtsgreg1989, zds (+9 невидимых) |
eXeL@B —› Основной форум —› Как осуществляется приём/передача данных в драйвере USB ? |
Посл.ответ | Сообщение |
|
Создано: 11 марта 2008 18:28 · Личное сообщение · #1 Есть некий USB контроллер и драйвер к нему. Программа с донглом и присутствует конверт. Эмуляция и реверс EXE не интересует. Сторонними логгерами USB пока не хочу пользоваться. Хочу написать свой логгер вставив вызовы функций перехвата данных (которые реализую в dll) непосредственно с файл драйвера. На какие функции в sys файле стоит обратить внимание ? Программа с драйвером будет общаться через DeviceIoControl ? Где в sys файле найти участок обработки ? Каким образом осуществляется приём/передача данных в подобной связке ? Понимаю, что ответы на многие вопросы живут в гугле и существует масса сложных и умных статей по устройству драйверов. Мне нужен ответ в двух словах который сразу натолкнёт на путь к практической реализации. |
|
Создано: 11 марта 2008 21:41 · Личное сообщение · #2 |
|
Создано: 11 марта 2008 22:05 · Личное сообщение · #3 Larry пишет: напиши с каким донглом взаимодействует программа HASP HL. Хотя какая разница ? Я про донгл между прочим упомянул. Наверное я запутанно объяснил. Тот USB драйвер это чисто драйвер хардварного контроллера. Контроллер связан с кнопками и лампами. Задача моя понять алго взаимодействия контроллера и программы. Обо всём, что касается ключа и конверта я упомянул, что бы не предлагали реверсить ЕХЕ в поисках алго, ибо для меня это сложнее... |
|
Создано: 11 марта 2008 22:55 · Личное сообщение · #4 |
|
Создано: 12 марта 2008 06:20 · Поправил: s0larian · Личное сообщение · #5 ToBad, с драйвером проги разговаривают через ReadFile(), WriteFile(), DeviceIOControl(). Для WDM drivers на 2000/XP/Vista в kernel mode эти вызовы превращаются в IRP. Обработчики цепляются в DriverEntry вот так:
Там же обработчик PnP - все события и команды. Вся работа с устройством через WDM API, тут нету memory mapped IO. Если хочешь понять что и как работает, то разбирай в IDA вот эти обработчики: IRP_MJ_DEVICE_CONTROL, IRP_MJ_PNP, IRP_MJ_READ, IRP_MJ_WRITE и IRP_MJ_SYSTEM_CONTROL. В них 90% кода и логики. |
|
Создано: 12 марта 2008 10:09 · Личное сообщение · #6 |
|
Создано: 13 марта 2008 13:46 · Личное сообщение · #7 |
eXeL@B —› Основной форум —› Как осуществляется приём/передача данных в драйвере USB ? |