fl
АВТОМАТИКА
[|
&
RAMEDIA. Режим мини HASP
jXJ
Подключите (любое) USB устройство для использования
в роли HASP ключа.
..
ф RAMEDIA. Режим мини HASP
Данное USB устройство будет использовано для защиты
Вашего ПК!
Рис. 2. Активация режима “мини HASP’
Рис. 3. USB устройство установлено
«$ DUSB
O b je c t In s p e c to r
DUSB
VD;./-D
Properties j Events I
Author
Badlo Sergey
Block_EnableL False
Block_NumberI 07521094081F
Lic_Key_____ i
Name
Tag
USBJnterval
USB.MODE
All shown
;0
■250
I none
Рис. 4. Компонент мини HASP
Рис. 5. Тестовый монитор USB
Покажем на практике, как это ра-
ботает. Встроим компонент в уже го-
товую программу [3, 5] и в меню осу-
ществим активацию режима “мини
HASP” (см. рис. 2-3).
После того, как флешка будет
вставлена, наступает событие
DBT_DEVICEARRIVAL (вставка 2).
Для того, чтобы программа зна-
ла о наличии нужного нам “девайса”
в любой момент времени, а не толь-
ко в момент съема, воспользуемся
функцией SetupDiGetClassDevsA
все той же библиотеки (вставка 3).
вставка 2
Чтение очереди сообщений и перехват момента подключения-съема USB
procedure TDUSB.WndProc(var Msg:TMessage);
begin
with Msg do
if (Msg=WM_DEVICECHANGE)and
((wParam=DBT_DEVICEARRIVAL)or(wParam=DBT_DEVICEREMOVECOMPLETE)) then '
try DoDeviceChange(wParam, PDevBroadcastDevicelnterface(IParam));
except end
else Resutt:= DefWindowProc(FWnd,Msg,wParam,IParam)
end;,.
■■■
производим считывание серийного номера, ID и GUID
var VID.PID: Word;
Serial,GUID: string;
const USBNameMask=’\\?\USB#Vid_%x&Pid„%x#%s#%s’;
begin
if (Device.dbcc_devicetype=DBT_DEVTYP_DEVICEINTERFACE)and Assigned(FOnChange)
and ParseDeviceName(USBNameMask,PChar(@Device.dbcc_name), [@VID,@PiD,©Serial,©GUID])
then .
case Event of
DBT_DEVICEARRIVAL
: FOnChange(Setf,VID.PID,Serial,GUID,dolnsert);
DBTJ3EVICEREMOVECOMPLETE: FOnChange(Seff,VID.PID,Serial,GUID,doRemove)
■•end
end:
Полные исходные тексты компонен-
та “мини HASP’ и тестовый монитор (см.
рис. 4-5) доступны по ссылкам [4,5].
Таким образом, при съеме флеш-
ки ПК будет заблокирован до тех пор,
пока она не будет возращена на мес-
то. Род действий на данные события
ограничен лишь фантазией разработ-
чика. Для полноценной защиты воз-
можен вариант запуска в виде серви-
са в безопасном режиме (Safe Mode).
Заключение
Обратите внимание: рассмотрен-
ный метод защиты как USB флешкой,
так и самими ключами HASP имеет
уязвимое место - это аппаратный пе-
рехват вызова устройства. Тем не ме-
нее, учитывая дешевизну, скорость
разработки, а главное - простоту, дан-
ный метод с успехом можно исполь-
зовать для минимальной защиты как
ПК и данных, так и привязки про-
грамм.
Полный комплект программ про-
екта (файл
miniHASP.zip)
вы можете
загрузить с сайта нашего журнала:
(раздел “Программы”)
Ресурсы
1. Сайт Alladin - http://www.alladin.ru
2. Dependency Walker из комплекта Visual C++ 6.0 - http://ra-xp.narod.ru/zip/dll.zip
3. Модификация системы управления ПК - http://ra-xp.narod.ru/zip/ram.zip
4. Компонент mihiHASP for DELPHI и компиляция тестового проекта -
http://ra-xp.narod.ru/zip/hsp.zip
20
U Радиолюбитель - 0 6 /2 0 0 8
предыдущая страница 20 Радиолюбитель 2008-06 читать онлайн следующая страница 22 Радиолюбитель 2008-06 читать онлайн Домой Выключить/включить текст