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

 eXeL@B —› Программирование —› Создание виртуального устройства
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 21 декабря 2010 10:37
· Личное сообщение · #1

Добрый день, товарищи. Последнее время меня интересует вопрос создания виртуального устройства, как это, к примеру, делает Алкоголь. Но к своему сожалению, всё, что мне удалось найти по этой теме - это программирование микроконтроллеров USB, правда, это не создание виртуального устройства, а программирование реального. А вся проблема в том, что я не знаю, где искать. Блин, да я даже не знаю, что в гугле написать (как запрос должен выглядеть). Товарищи, помогите кто чем может.

Т.е. в идеале стоит задача: пользователь запускает приложениа А, после чего на экране отображается сообщение "Найдено новое обоудование", потом "Новое оборудование установлено и готово к использованию".

Как этого добиться?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 21 декабря 2010 11:13
· Личное сообщение · #2

Начни с понимания того, что такое драйвер виртуального устройства, и чем он отличается от драйвера реального устройства. Обычно начинают с драйверов виртуальных дисков. Например вот www.truecrypt.org/downloads2 или вот совсем разжовано www.codeproject.com/KB/system/virtual-disk-tutorial.aspx

-----
Реверсивная инженерия - написание кода идентичного натуральному


| Сообщение посчитали полезным: Coderess, ARCHANGEL, Lumen

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

Создано: 21 декабря 2010 19:43
· Личное сообщение · #3

vfd.sourceforge.net



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

Создано: 21 декабря 2010 22:11 · Поправил: [c4]
· Личное сообщение · #4

До кучи - цикл статей Four-F'a "Драйверы режима ядра"
http://wasm.ru/publist.php?list=21#series_9
Так же: С.Сорокина "Программирование драйверов и систем безопасности"




Ранг: 114.4 (ветеран), 21thx
Активность: 0.040.01
Статус: Участник

Создано: 22 декабря 2010 02:10
· Личное сообщение · #5

ARCHANGEL, может стоить посмотреть в сторону эмуляторов ключей? Например, для USB-ключа HASP доступны исходники Chingachguk & Denger2k. Могу скинуть сэмпл исходников на Си, если поиски не увенчаются успехом.



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 22 декабря 2010 08:12
· Личное сообщение · #6

Сначала надо уточнить у топик стартера какого рода виртуальное устройство его интересует .




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 22 декабря 2010 10:34
· Личное сообщение · #7

Larry
С хаспами знаком не особо, пару раз удалось взломать такую защиту без ключа, когда авторы неправильно использовали SDK или как он там для хаспов называется. Представлял эмулятор ключа в виде драйвера-фильтра, реализующего табличную эмуляцию. Но, я так понимаю, что есть и другие подходы к эмуляции ключей, правда, про них мне ничего не известно. За исходники буду благодарен, т.к. плохо представляю себе, что искать.

Hugo Chaves
Интересует создание виртуального USB-шного накопителя информации. К примеру, у меня есть флэшка, которую я считал в RAW-режиме. Нужно написать нечто, чтобы могло создать виртуальную флэшку и как-бы вставить содержимое считаннной флэшки в виртуальную. (Как-то туманно, но надеюсь на ваше понимание)

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 22 декабря 2010 10:44
· Личное сообщение · #8

по логике подходит vfd




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 22 декабря 2010 10:53
· Личное сообщение · #9

ARCHANGEL
--> Virtual Flash Drive <--

-----
Yann Tiersen best and do not fuck




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 22 декабря 2010 12:04
· Личное сообщение · #10

скорее vfd.sourceforge.net/ уже давалась выше



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 22 декабря 2010 12:11
· Личное сообщение · #11

Вот например ссылка - создание виртуального диска на основе виртуальной шины .

Ахтунг ! - Используется KMDF , что требует знания этого драйверного фреймворка.

h**p://sourceforge.net/projects/virtualdisk/

Но для эмуляции флешки придётся много поработать "напильником".
Необходимы знания команд SCSI , USB (особенно Mass Storage Devices) .

А в общем задача реально выполнима.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 22 декабря 2010 12:20 · Поправил: PE_Kill
· Личное сообщение · #12

Av0id сомневаюсь что Flash и Floppy одинаково реализуются, Flash довольно сложная технология даже для Ring3 уровня. Причем документации очень мало по алгоритмам. Мне не так давно пришлось создавать менеджер Flash накопителя для работы с ним в RAW режиме, с полным манипулированием устройства, монтирование, отключение, переподключение, запрет кеширования и прочее. В документации почти ничего не нашел, даже амерские доки ничего не дали. Про переподключение везде писали что это невозможно. Пришлось качать софт, работаюзий с флешками и дизассемблировать, дизассемблировал даже виндовые утилиты. Потом по листингу смотрел используемые апи и уже в мсдн смотрел что они делают, так восстанавливал алгоритмы, а многие были только базой чтобы хоть от чего то оттолкнуться и дальше уже дописывать опять же как получится.

-----
Yann Tiersen best and do not fuck




Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 22 декабря 2010 13:10
· Личное сообщение · #13

на уровне Ring0 эмуляция и MSD и Floppy вполне реализуема.



Ранг: 29.8 (посетитель), 9thx
Активность: 0.020
Статус: Участник

Создано: 22 декабря 2010 17:53
· Личное сообщение · #14

Для меня был сделан эмуль донгла по такому принципу: vusbbus + имидж флешки, с неё можно читать, для записи пишет что полная. На vusbbus vmprot.



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 23 декабря 2010 15:42
· Личное сообщение · #15

alexpol

Что за донгл ?



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 24 декабря 2010 00:02
· Личное сообщение · #16

а еще удобно образ флешки Гарант'а маунтить в такой виртуальный флеш драйв,
к слову в линуксе с этим проблем нет, все делается штатными средствами, винда отстой



Ранг: 29.8 (посетитель), 9thx
Активность: 0.020
Статус: Участник

Создано: 24 декабря 2010 12:35
· Личное сообщение · #17

Hugo Chaves
Cm от wibu.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 24 декабря 2010 13:49
· Личное сообщение · #18

alexpol
А удалять с неё (флэшки) можно?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 29.8 (посетитель), 9thx
Активность: 0.020
Статус: Участник

Создано: 24 декабря 2010 14:13
· Личное сообщение · #19

ARCHANGEL
Можно.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 27 декабря 2010 09:52 · Поправил: ARCHANGEL
· Личное сообщение · #20

Недавно у себя на винте нашёл драйвер, создающий виртуальный USB контроллер и подключающий через него виртуальный хасп. Написал это творение Tyrus. На дровине также VMProtect. Обидно

скорее vfd.sourceforge.net/ уже давалась выше

Скачал файл по ссылке, но там они бинари, или я не нашёл сорцов или их нет?

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 27 декабря 2010 10:08
· Личное сообщение · #21

Лицензия ж ГПЛ http://vfd.svn.sourceforge.net/viewvc/vfd/?view=tar

| Сообщение посчитали полезным: ARCHANGEL

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

Создано: 28 декабря 2010 09:23
· Личное сообщение · #22

ARCHANGEL поищи в гугле создание драйвера коврика мышки, там было расписано как в нотепаде сделать руками драйвер, и будет тебе девайс

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 28 декабря 2010 10:10
· Личное сообщение · #23

Товарищи, меня интересует более конкретный вопрос, вот смотрел исходники, но непонятным остался такой момент - как именно диспетчер PnP узнаёт о подключении нового оборудования? Т.е. создали мы свой девайс через IoCreateDevice, заполнили массив Irp обработчиков, среди которых и обработчик IRP_MJ_PNP, но вот как именно заставить этот обработчик выполниться, т.е. как именно заставить диспетчер его вызвать?

VodoleY
Йаду в трусы налей себе

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 28 декабря 2010 11:12 · Поправил: NIKOLA
· Личное сообщение · #24

ARCHANGEL пишет:
Скачал файл по ссылке, но там они бинари, или я не нашёл сорцов или их нет?


Download

vfd21-080206.zip
vfd.sys (kernel-mode driver: version 2.1.2005.404)
vfd.exe (command line console)
vfd. dll (driver control and shell extension library)
vfdwin.exe (GUI interface)
readme.txt (README English)
vfdhelp.txt (VFD.EXE command reference English)
readmej.txt (README Japanese)
vfdhelpj.txt (VFD.EXE command reference Japanese)
copying.txt (GNU GENERAL PUBLIC LICENSE Version 2)

vfdsrc-080206.zip (source code)




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 28 декабря 2010 12:05
· Личное сообщение · #25

NIKOLA
Спасибо, Archer тоже ссылку на сорцы кинул, я уже скачал. Собственно, когда стал их смотреть вопрос про диспетчер PnP и возник.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 28 декабря 2010 15:27
· Личное сообщение · #26

ARCHANGEL

Рано тебе , брат , заниматься виртуальными устройствами .
Почитай документацию о PNP .
Например вот
h**p://msdn.microsoft.com/en-us/library/ff540535%28v=vs.85%29.aspx
или
h**p://www.osronline.com/ddkx/kmarch/plugplay_7mef.htm
и
h**p://blogs.msdn.com/b/usbcoreblog/archive/2009/10/31/how-does-usb-st ack-enumerate-a-device.aspx

| Сообщение посчитали полезным: ARCHANGEL


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 29 декабря 2010 09:57
· Личное сообщение · #27

Hugo Chaves
Спасибо, почитаю. Сейчас, может, и рано, но надо ж с чего-то начать.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 января 2011 13:36 · Поправил: Hottabych
· Личное сообщение · #28

Здравствуйте!
Аналогичный вопрос, но чтобы не создавать новый топик спрошу здесь:
Можно ли эмулировать подключение и определение нового устройства класса UsbStor, взяв за основу пример toaster bus из WDK? М. б. там сменить класс подключаемого PDO и т.д?


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


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