Передача данных через устройство, имитирующее мышь
От: sergey77666 Марс  
Дата: 12.03.18 21:58
Оценка:
Если спаять такое устройство на каком-нибудь МК. И подключать вместо мыши к USB или PS/2. (Скорость МК пускай не ограничена).
Написать прошивку для МК.

А на комп написать приложение, но с минимальной интеграцией в систему. То есть не драйвер. Лучше цикл с вызовами WinAPI — GetAsyncKeyState, GetCursorPos.

Какая может быть максимальная скорость передачи?

Данные только в одном направлении — ОТ устройства к компу.
Можно использовать любые кнопки мыши, колесико и движения курсора — все, что можно отловить на уровне WinAPI.

P.S. Задача — обойти блокировку съемных носителей, COM/LPT-портов и т.д.
Есть и другие, более адекватные идеи по решению проблемы. Но во всем остальном есть сомнения, что удастся. Хотя, винда всего лишь WinXP x86.
В этом же варианте — сомнений нет. Ну, не знаю, может, есть какой-то uid у каждой мыши, но вряд ли там нормальная криптография... Да и в любом случае все данные можно считать компом с неограниченным доступом и "вшить" в МК...
Отредактировано 12.03.2018 22:01 sergey77666 . Предыдущая версия . Еще …
Отредактировано 12.03.2018 21:59 sergey77666 . Предыдущая версия .
Re: Передача данных через устройство, имитирующее мышь
От: kov_serg Россия  
Дата: 12.03.18 22:39
Оценка:
Здравствуйте, sergey77666, Вы писали:

S>Если спаять такое устройство на каком-нибудь МК. И подключать вместо мыши к USB или PS/2. (Скорость МК пускай не ограничена).

S>Написать прошивку для МК.
USB1 ~1Mb/s
USB2 ~20-30Mb/s
USB3 заявлено до 600Мб/с
ps/2 max 1kb/s если по 3 байта на пакет то 200..300Hz
fdd 27кб/сек
audio 44kHz*16bit mono -> 10знач бит -> max ~88кбит ( модемы 56кбит выжимали даже 115.2 некоторые )

S>А на комп написать приложение, но с минимальной интеграцией в систему. То есть не драйвер. Лучше цикл с вызовами WinAPI — GetAsyncKeyState, GetCursorPos.

Чем обычные флешки не устраивают или сеть или бт/вифи?

S>Какая может быть максимальная скорость передачи?


S>Данные только в одном направлении — ОТ устройства к компу.

Можно веб камерой прикинуться и гнать нежатые кадры.
Или геймпадом с кучей осей и кнопок.

S>Можно использовать любые кнопки мыши, колесико и движения курсора — все, что можно отловить на уровне WinAPI.

Cкорость кнопок клавиатуры 30Hz. От мыши можно 1000 пакетов/сек.

S>P.S. Задача — обойти блокировку съемных носителей, COM/LPT-портов и т.д.

А зачем вы их заблокировали?

S>Есть и другие, более адекватные идеи по решению проблемы. Но во всем остальном есть сомнения, что удастся. Хотя, винда всего лишь WinXP x86.

Сеть, стеганография
Набор на клавиатуре с листка hex кода (~0.9 byte/sec => 3кб/час)

S>В этом же варианте — сомнений нет. Ну, не знаю, может, есть какой-то uid у каждой мыши, но вряд ли там нормальная криптография... Да и в любом случае все данные можно считать компом с неограниченным доступом и "вшить" в МК...
Отредактировано 12.03.2018 23:00 kov_serg . Предыдущая версия . Еще …
Отредактировано 12.03.2018 22:40 kov_serg . Предыдущая версия .
Re: Передача данных через устройство, имитирующее мышь
От: sz36 Россия  
Дата: 13.03.18 22:24
Оценка:
Здравствуйте, sergey77666, Вы писали:

S>Если спаять такое устройство на каком-нибудь МК. И подключать вместо мыши к USB или PS/2. (Скорость МК пускай не ограничена).

S>Написать прошивку для МК.
S>А на комп написать приложение, но с минимальной интеграцией в систему. То есть не драйвер. Лучше цикл с вызовами WinAPI — GetAsyncKeyState, GetCursorPos.

Если притворяться именно мышью (или клавиатурой), то максимально достижимая скорость — несколько КБайт/сек. Мышь это класс HID, он всегда работает как USB1, и по прерываниям, не более 1 пакета в миллисекунду. Размер пакета от мыши не знаю, но наверняка он стандартный и вряд ли больше нескольких байт. Можно притворяться абстрактным HID устройством, драйвера в этом случае не нужны, но придется написать inf файл. Данные можно получать через HidD_GetFeature() из hid.dll. В этом случае можно сделать свой дескриптор размером близким к 1КБ и попытаться достичь скорости 1МБит/сек, только ОС это может не понравиться.

Но еще лучше притвориться устройством класса CDC, драйвера для этого тоже не нужны (начиная с XP), и скорость в этом случае ограничена только пропускной способностью USB. Данные получать через ReadFile() как из обычного COM порта.
Re[2]: Передача данных через устройство, имитирующее мышь
От: IID Россия  
Дата: 14.03.18 16:58
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Набор на клавиатуре с листка hex кода (~0.9 byte/sec => 3кб/час)


Пусть устройство прикинется сначала клавиатурой. Наберёт на ней приложение. А потом переключится в мышь/камеру/ит.д. с которой будет работать "набранное" приложение.

ЗЫ: будет весело если система защиты среагирует на внезапную дополнительную "клавиатуру" требованием набрать на ней PIN-код
kalsarikännit
Отредактировано 14.03.2018 17:09 IID . Предыдущая версия .
Re[2]: Передача данных через устройство, имитирующее мышь
От: ononim  
Дата: 14.03.18 21:07
Оценка:
S> Но еще лучше притвориться устройством класса CDC, драйвера для этого тоже не нужны (начиная с XP), и скорость в этом случае ограничена только пропускной способностью USB. Данные получать через ReadFile() как из обычного COM порта.
Из исходной мессаги ТС следует что COM порты тоже заблокированы.
Предлагаю эмулировать USB headset. С "микрофоном" и "наушниками". USB headset-ы то явно блокировать не будут. Не уверен правда что можно получить bit perfect каналы в обе стороны штатными средствами, но это не большая проблема — модемные протоколы с такими проблемами справятся на раз-два. Можно даже продолжить — вообще, зачем паять USB девайс -это же тоже некоторое палево. Можно использовать имеющуюся звуковуху + внешний плеер/записыватель
  экстремальные идеи на тему использования имеющихся девайсов для обхода анальной изгороди
- дуплексный видео канал: последовательность QR кодов на экране компа перед видеокамерой мобильника и на экране мобильника перед веб камерой
— вывод инфы клавой: обычно на клаве у нас есть три лампочки — три лампочки это целых три бита, которые можно записать на видео и потом декодировать
— ввод инфы мышкой: тут надо небольшое исследование на тему можно ли заставить мышку думать что поверхность под ней движется, рисуя ей на экране мобильника движущуюся текстуру. Полагаю с лазерными мышами не прокатит, а вот с обычной оптикой с красным светодиодом — пуркуа бы и не па. Если сработает — что делать дальше — очевидно.
Как много веселых ребят, и все делают велосипед...
Отредактировано 14.03.2018 21:20 ononim . Предыдущая версия . Еще …
Отредактировано 14.03.2018 21:18 ononim . Предыдущая версия .
Отредактировано 14.03.2018 21:09 ononim . Предыдущая версия .
Отредактировано 14.03.2018 21:08 ononim . Предыдущая версия .
Re: Передача данных через устройство, имитирующее мышь
От: kov_serg Россия  
Дата: 14.03.18 21:22
Оценка:
Здравствуйте, sergey77666, Вы писали:

S>P.S. Задача — обойти блокировку съемных носителей, COM/LPT-портов и т.д.

S>Есть и другие, более адекватные идеи по решению проблемы. Но во всем остальном есть сомнения, что удастся. Хотя, винда всего лишь WinXP x86.
Что мешает загрузиться с флешки и забить на WinXP с блокировкой?
Re[2]: Передача данных через устройство, имитирующее мышь
От: ononim  
Дата: 14.03.18 21:24
Оценка:
_>Что мешает загрузиться с флешки и забить на WinXP с блокировкой?
ну например отсутствие админского/биосовских паролей и опломбированный системник
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.