Посл.ответ |
Сообщение |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 20 марта 2006 12:17 · Личное сообщение · #1
Парни, есть программа WinELSO, setup.exe защищен ключем для LPT порта, и соответственно не запускается.
Вопрос: №1 как работает такой ключ?
№2 можно ли обойти эту защиту?
| Сообщение посчитали полезным: |
|
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 20 марта 2006 12:19 · Личное сообщение · #2
для начала скажи, что написано на ключе.
или опознай его по фотографиям:
www.dongle.ru/dongles.html
www.sporaw.ru/work/dongles/identity.htm
| Сообщение посчитали полезным: |
Ранг: 160.1 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 20 марта 2006 13:16 · Личное сообщение · #3
ключ по-моему сентинел
как работает - читай описание на сайте производителя (safekey ?)
обойти можно
| Сообщение посчитали полезным: |
 Ранг: 85.7 (постоянный) Активность: 0.11↘0 Статус: Участник
|
Создано: 20 марта 2006 16:06 · Личное сообщение · #4 |
Ранг: 60.4 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 20 марта 2006 16:25 · Личное сообщение · #5
Как говорил один из умных людей "взломать можно всё, что можно запустить".
| Сообщение посчитали полезным: |
Ранг: 39.3 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 20 марта 2006 18:11 · Поправил: Mordred · Личное сообщение · #6
Кстати, к вопросу о донглах. Сейчас ковыряю одну прогу (из любопытства, ключ у меня есть  ) В ней обращения к ключу идут как обычно через DeviceIoControl, однако после вызова никакие данные из передаваемых в функцию данных (выходной буфер, число возвращённых байт и т.п.) не изменяются, и значения регистров при запуске с ключом и без ключа одинаковы, однако прога всё же строго определяет, есть ключ или нет  Кто-нить знает, как еще может возвращать ключ какие-то данные?..
| Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 марта 2006 01:34 · Личное сообщение · #7
Mordred
Вроде, можно LPT и без функций читать. Просто обращаться к 378h (собсно, LPT) порту, а там дальше через регистры.
| Сообщение посчитали полезным: |
Ранг: 39.3 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 21 марта 2006 09:27 · Личное сообщение · #8
Ekzobit
Пасиба, проверю  А про функцию DeviceIoControl - она может изменять какие-то данные кроме своих параметров? Не в курсе? А то в доках пока ничего не нарыл...
| Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 22 марта 2006 01:00 · Личное сообщение · #9
Это HASP4 M1, попробую найти описание на сайте производителя или у дяди Googla!
Всем спасибо, все свободны ;)
| Сообщение посчитали полезным: |
Ранг: 12.5 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 22 марта 2006 02:17 · Личное сообщение · #10
Mordred пишет:
А про функцию DeviceIoControl - она может изменять какие-то данные кроме своих параметров?
Не-а. Я по апи не разбираюсь пока что, сори.
| Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 23 марта 2006 11:10 · Личное сообщение · #11
Mordred пишет:
А про функцию DeviceIoControl - она может изменять какие-то данные кроме своих параметров?
Вроде нет. Но драйвера Алладин, например, пишет так, что передает и вызвает ключ совсем по другому.
Смотри статью Chingachguk на wasm.ru про LPT-ключи. Если у тебя ключ Rockey4,
то лучше ломать функции более высокого уровня. Я тоже долго тупо проверял
буфер DeviceIoControl и очень удивлялся - во всех статьях написано совсем другое.
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 23 марта 2006 12:21 · Личное сообщение · #12
все производители донглов предоставляют высокоуровневые API, а никто сам DeviceIoControl не зовет. так что начни с того, что определи что за донгл, найди sdk. сделай сигнатуры для IDA и посмотри какие API функции там зовутся
| Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 23 марта 2006 12:46 · Личное сообщение · #13
Так насколько я помню к LPT можно через CreateFile обратиться, а потом работать как с обычным файлом (ReadFile,WriteFile, CloseHandle).
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 23 марта 2006 13:43 · Личное сообщение · #14
еще раз попробую: не думаю что это самый простой способ - начать с CreateFile и зарываться в глубины общения с ключом.
| Сообщение посчитали полезным: |
Ранг: 39.3 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 23 марта 2006 15:30 · Поправил: Mordred · Личное сообщение · #15
У меня донгл Eutron'a. В другой версии этой же проги (к которой у меня ключа сейчас нет) все обращения шли через DeviceIoControl(перед этим как раз использовалась CreateFile для получения хэндла), которая вызывалась с двумя различными кодами dwIoControlCode. С одним из них каждый раз возвращалось по 2 байта с ключа, с другим - данные не менялись. Я написал лоадер, подставляющий нужные байты на вызовах с первым кодом - прога запустилась, но на некоторых функциях вылетает с ошибкой, т.е. какие-то данные всё же некорректны...  Пока копаю в дизасме - вроде других обращений к ключу не вижу, да и Eutron'ы, насколько я знаю, одни из простейших донглов.
ssx
Пасиб за идею, попробую реализовать
ЗЫ Прогу по некоторым причинам выложить не могу
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 23 марта 2006 15:48 · Личное сообщение · #16
да и не надо
рекомендую посмотреть дрова eutron
дампер для ключей тут: www.nodongle.biz/files/euapi.zip
| Сообщение посчитали полезным: |