HASP HL

Тема в разделе "WASM.RESEARCH", создана пользователем Black_sun, 11 ноя 2008.

  1. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Прошу помочь разобраться с алгоритмом работы хаспа
    На алладине наткнулся на такую статью(отрывок):
    Возникло пару вопросов:

    Если же работа идет с usb(других нет для ШЛ), то возможно ли просто скопировать данные с этого ключа(почему нет)?

    "посылая ему наборы закодированных данных, и получает от него для дальнейшего использования раскодированные блоки данных" - данная процедура идет все время или же только в процессе запуска программы (а далее так сказать для проверки установленного ключа)?

    "с ключом длиной 128 бит, постоянно хранящимся в защищенной памяти" как я понял идет речь про ключ или нет ?
     
  2. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Существуют специальные эмуляторы, эмулирующие работы устройства.

    Все зависит от программы, в нее могут быть встроены и ложные запросы.
     
  3. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    При правильной реализации было бы нельзя, так как
    (Здесь речь действительно именно про ключ).
    А Hasp HL дырявый, с него можно. По крайней мере envelope обходится элементарно

    Сколько накодили, столько и будет.
    Если не кодили вообще, а пользовали envelope, то действительно только на запуске
     
  4. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    патаму что разрабы ключа не полные дауны и понимают чем подобное грозит. в твоем случае проще представить сам донгл как чорный ящег - на входах одна комбинация - на выходах другая. далее - что ты оттуда копировать собралсо ? если правильно помню то хардварно донгл - какой то (АВР ?) контроллер который и дешифрует то что ему посылают.
    если взять идельную ситуацию - то ключ можна только брутить, но на практике появляеццо еще пара способов как то отснифать пары вход-выход и эмулировать присутствие донгла подсовывая отснифаные данные
     
  5. Diakon

    Diakon New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2008
    Сообщения:
    27
    Исследую программу в ХР использующую хасп ключ usb.

    Почитав статьи на форуме, я нашел обращение к ключу через CreateFile и работа с ним через DeviceIoControl. Конечно программка использует еще проверку crc при запуске. Но можно патчить динамически и подменять ответ DeviceIoControl. Но беда в том, что это работает лишь когда ключ вставлен, если ключ не вставлен то программа идет по какой-то другой ветке кода ((((. В статьях не разбирается случай отслеживания на присутствие хасп ключа. Там ключ эмулируют через HASP.VXD. В ХР такого драйвера я не нашел.

    Подскажите как к нему подойти. Зарание спасибо.

    Еще некоторая инфа, которую я обнаружил. В реестре в одном ключе прописаны, как я понял, имена usb ключа.
    Типа USB\HASP\6389r4&12 и что-то типа \\?\usb#hasp#6389&247#.... и т.п. Второе имя ключа используется программой при открытии ключа через CreateFile, как имя файла. Любое изменение данных записей в реестре приводит к тому что даже вставленный ключ не обнаруживается
     
  6. Diakon

    Diakon New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2008
    Сообщения:
    27
    Полностью разобрался с работой Hasp Hl, по крайней мере в свой проге, как напишу эмулятор мгу выложить, если будет интересно.

    Прога использует процедуры setupapi.dll для инициализации ключа. Если ключ инициализирован то он открывается через CreateFile и опрашивается через драйвер. Общение проги с драйвером через DevicIoControl.

    Поэтому для эмуляции ключа необходимо

    1) Подмена используемых функций setupapi
    2) Подмена CreateFile при открытии ключа
    3) Эмуляция обмена с драйвером, при чем необходима подмена как входящих так и выходящих данных DeviceIoControl