Эмуляция ключей
Добрый день!
Нашел в Интернете описание способа эмуляции Вашего ключа. Материал довольно старый, однако существуют целые ресурсы, занимающиеся написанием эмуляторов под заказ (нужен дамп памяти). Меня интересует, гарантируете ли Вы защиту в продуктах серии Guardant Code приусловии, что у злоумышленика действительно будет иметься дамп памяти? Или может быть защита достигается грамотной интеграцией приложения в ключ?
Описание способа (url: http://best-xaker.moy.su/load/moi_fajly … t/1-1-0-14):
Эмуляция ключей Guardant
Внимание: Данная статья предназначена только для эмулирования легально купленных ключей, которые по каким-либо причинам не могут быть использованы в компьютере (отсутствие порта, его некорректная работа или занятость). Автор не несет никакой ответственности за нецелевое использование нижеизложенного материала.
Программная эмуляция ключа Guardant подразумевает под собой перехват обращений приложения к ключу и формирование ответов ключа на программном уровне. Подробнее об алгоритмах работы и взаимодействии защищенного приложения с ключом можно узнать из ПО Guardant, найти который несложно.
Перед эмулированием ключа нужно снять область его памяти (в большинстве случаев - частичную), так называемый дамп ключа.
Снятие дампа с ключа Guardant
Для того, чтобы снять дамп ключа Guardant, Вам необходимо скачать и установить оригинальные драйверы Guardant, а также специальную программу-дампер:
Оригинальные драйверы Guardant 4.88
Guardant key dumper 0.3 (c) infern0 / TSRh team
Распакуйте архив с драйверами ключа и запустите файл INSTDRV.EXE, после чего нажмите на кнопку Установить драйвер. В случае успешной операции программа установки должна отобразить окно с текстом Драйвер Windows NT/2000/XP для электронных ключей Guardant успешно установлен.
Внимание: Если при запуске программа установки драйверов отображает окно:
То это значит, что в Вашей системе установлен эмулятор от Lz (или Lz Driver Control), который необходимо деинсталлировать!!!
После установки драйверов распакуйте архив с дампером в отдельную папку и запустите.
Когда окно закроется, в папке с дампером появятся несколько файлов с расширением bin и один файл с расширекнием log.
В некоторых случаях дампер может выдать следующую информацию:
Found Dongle, ID: XXXXXXXX
ERR: Cannot find key with Private RD YYYYYYYY
Чтобы снять дамп с такого ключа, нужно вручную передать дамперу его личный код чтения. Для того, чтобы узнать личный код чтения ключа, нужно выполнить следующее:
Драйвер протокола ключей Guardant (novex logger)
распакуйте архив и запустите файл instnt.bat. Подключите аппаратный ключ к компьютеру и запустите защищаемое приложение. Произведите в приложении несколько действий, после чего программу можно закрыть. Драйвером протокола ключей будет создан файл C:\nvx.log примерно следующего содержания (начало):
<-- nsc_Read: pvRead = XXXXXXXX, mode = SAM, addr = 00, len = 02
--> nsc_Read: retCode = 0000
<-- nsc_Read: pvRead = XXXXXXXX, mode = SAM, addr = 0E, len = 04
--> nsc_Read: retCode = 0000
<-- nsc_Transform: pvRead = XXXXXXXX, algo = 00, len = 04, cnvType = 00
<-- ***
...
Последовательность символов XXXXXXXX - личный код чтения Вашего ключа, который нужно передать дамперу. Для этого запустите файл search.exe с параметром XXXXXXXX.
Когда окно дампера закроется, в папке с дампером появятся несколько файлов с расширением bin и один файл с расширекнием log.
После успешного снятия дампа можно приступить к программному эмулированию работы ключа.
Эмуляция работы ключа
Для эмуляции работы ключа потребуется фильтр-драйвер, который будет перехватывать и обрабатывать запросы защищаемого приложения к ключу. Мы воспользуемся одним из общедоступных табличных эмуляторов - Guardant Dongle Emulator by LZ. Мной была написана оболочка для работы с эмулятором, в котором содержится сам драйвер и некоторые инструменты для работы с ним.
Распакуйте архив и запустите файл lzdc.exe. На рабочем столе должно появиться небольшое полупрозрачное окно. Нажмите на нем правой кнопкой, дальше 'Установить эмулятор' -> 'Without Crypt'. Программа попросит перезагрузиться. Перезагружаемся.
После перезагрузки снова запускаем программу и запускаем LZDC. Далее правой кнопкой мыши жмем на окне LZDC и выбираем 'bin2reg'. Нажимаем в новом окне на значок папки и выбираем файл с дампом, который Вы получили (файл формата mem_XXXXXXXX.bin, предварительно переименовав его в XXXXXXXX.bin, где XXXXXXXX - личный код чтения ключа). Нажимаем на кнопку 'Конверт' --> 'Экспорт в реестр'.
После проделанных операций можно включать эмулятор и пробовать запустить программу. Если после вышеуказанных действий программа не запустится, то можно попробовать снять с файла запуска конверт. Делаетсяэто утилитой Guardant / Novex envelope killer 1.41 (спасибо infern0 [TSRh]). Данная утилита снимает конверт версии не выше 4.44.
Если в Вашей программе используется конверт версии выше 4.44, попробуйте снять его, используя следующий материал:
Распаковка конверта Guardant при наличии ключа или эмулятора (by Larry)
Возможно, что после вышеуказанных действий программа все равно не запустится. Это связано с тем, что некоторые программы защищаются на основе секретных алгоритмов ключа (конверт Guardant также использует один из алгоритмов), которые не всегда обрабатываются табличными эмуляторами. Если Вы все же хотите сэмулировать ключ, можете воспользоваться услугами, предложенными на данном сайте или написать свой собственный эмулятор. В разделе Программы по взлому на сайте есть исходные коды табличного эмулятора от Lz, которые могут помочь в освоении искусства эмулирования.