Просто как небольшой упрек разработчикам. Есть такая программулина USB over network, позволяющая расшаривать USB-устройства по сети, в том числе Senselock. Программа не предназначена для обхода лицензионных защит, поэтому не заморачивается с полной имитацией всех нюансов. Так что ключ, смонтированный ею, можно надежно отличить от подключенного к ПК напрямую. Проблема в том, что нельзя установить соответствие между SENSELOCK_CONTEXT выбранного донгла и его реальным HID-идентификатором (что-то типа "\\?\hid#vid_0471&pid_485e#6&7fd75d&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"), с которым приходится выполнять разные манипуляции, чтобы отличить от виртуального устройства. По крайней мере документированным способом.
Приходится лезть в S4Open, находить там конструкцию
- Код: Выделить всё
.text:1000683C mov eax, [esi]
.text:1000683E lea ecx, [eax+eax*4]
.text:10006841 lea ecx, [ecx+ecx*8]
.text:10006844 lea edx, [eax+ecx*2]
.text:10006847 mov al, [esp+7Ch]
.text:1000684B test al, 4
.text:1000684D lea ebp, dword_10013260[edx*4]
где
esi - указатель на SENSELOCK_CONTEXT, а в результате исполнения этого фрагмента
ebp+8 - указатель на нужный HID-идентификатор, а потом придумывать, что теперь с этим делать.
Было бы неплохо, если бы эти идентификаторы просто были в SENSELOCK_CONTEXT.
Атомную бомбу с верблюда не сбрасывают.