Копирование неэкспортируемого ключа с JaCarta LT

Программирование, Хакинг, Безопасность, Софт, Железо, а также всё связанное с компьютерами
Viktorovich
Сообщения: 3
Зарегистрирован: 24 апр 2023, 16:33

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Viktorovich »

k0smo писал(а):
11 мар 2023, 22:10
Собрал небольшой скрипт, помогающий собирать и обрабатывать файл полученные после разбора дампа. Является дополнением к инструкции, которая в начале темы, все необходимые настройки с dll и установкой Perl должны быть произведены.

Что делает скрипт: ищет файлы по маске 30_22_04_20 и 30_36_04_20 и производит их копирование через утилиту DD с фиксированной длиной, побайтово, тем самым получая сразу primary.key и masks.key нужной величины. Чистит директорию от файлов *_in*
Скрипт на Python ищет последовательность файлов свыше 199 байт, затем добавляем файл предшествующий и следующий за данной последователь, в результате данные файлы объединяются в header.key

Как использовать:
1) Установить Python 3 в систему. Например, версию 3.8.9 если используется Win7. Обязательно поставить галочку при установке для интеграции в переменные среды системы Add Python 3.8 to PATH Изображение.
Проверить, что работает путём запуска команды python в командной строке - должен запуститься IDLE Python
https://www.python.org/downloads/windows/
2) Размести в папке c:\1 файл dd.exe
дистрибутив http://www.chrysocome.net/downloads/dd-0.6beta3.zip
Страница с описанием http://www.chrysocome.net/dd
3) Архив со скриптами состоит из 3х файлов:
Perl_maker.bat - выполняет perl writeBinaryAPDU.pl < rundll32.exe.txt
Maker.bat - запускает вышеописанные процессы
jacarta.py - выполняет задачу по поиску файлов для header.key
Порядок действий:
1) положить Perl_maker.bat в C:\1\ там уже должен быть файл writeBinaryAPDU.pl
2) выполнить Perl_maker.bat
3) поместить Maker.bat и jacarta.py в созданную скриптом на предыдущем шаге папку, например 1678545860
4) Запустить Maker.bat - в директории, например 1678545860 будет создана еще одна директория cont - в ней будет 3 файл primary.key, masks.key, header.key
5) Добавить к этим файлам name.key и поместить на съемный диск
Архив со скриптами https://disk.yandex.ru/d/YIdn0BIr2IrxJA
ссылка на видео работы скрипта https://disk.yandex.ru/i/HhAmBEu46wJidQ

На большом количестве подписей протестировать возможности не было, так что вероятны ошибки в работе алгоритмов. Буду рад обратной связи :)
спасибо за скрипт! с джакартой всё отлично получилось.
а вот с другим токеном - Форос проблема. не создаётся файл header - пришлось вручную его слепить. но всё равно скопировал ЭП.

+с рутокен ЭЦП тоже не получается автоматом сделать, здесь наоборот, только header создаётся. а остальные не могу слепить, т.к. файлы отличаются от тех, что надо было искать, например, в дампе джакарты.
Mic_Richi
Сообщения: 4
Зарегистрирован: 26 апр 2023, 18:52
Поблагодарили: 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Mic_Richi »

Спасибо автору статьи. Всё получилось. Правда не с первого раза. Хочу поделиться своими наблюдениями:
Сначала была ошибка как у Stanislav2112.
Потом ещё раз заснифил токен и всё получилось.
Что делал во второй раз:
1. Установил серт на комп через криптопро (хотя по логике не обязательно это было делать)
2. Запустил криптопро.
3. Ещё раз зашёл в папку со сниффером и удалил все *txt.
4. Нажал протестировать в криптопро.
5. Дамп сразу скопировал.

P.S. Делал на W7 x 64 через VM.
Mic_Richi
Сообщения: 4
Зарегистрирован: 26 апр 2023, 18:52
Поблагодарили: 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Mic_Richi »

И ещё:
Размер header можно проверить по 3 - 4 байту в файле. (1 и 2 - заголовок). 3-4 байт + 4 = размер файла header
Если не совпадает - значит header собран не правильно.
Размеры masks и primary находятся во 2 байте (2 байт+2 = размер)
NeonS
Сообщения: 9
Зарегистрирован: 26 май 2023, 11:19
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение NeonS »

Господа, доброго дня, возникла следующая проблема.
Итак, дано – ключ Esmart с неэкспортируемой подписью.

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

Пытаюсь собрать header.key используя инструкцию и этот форум, но видимо уже отупел и не могу разобраться, каким образом понять, что файл нужно отмечать в «сборку» или нет.

У меня все «большие» файлы имеют вес в 255 байт, но есть и те, которые «весят» 178 байт (например) и их тоже не сказать, что мало. Пытался отмечать все файлы на 255, но нет, не сработало. Каким образом я должен понять, что именно эти файлы нужно отмечать, а другие – нет? Кроме объёма есть ещё какие-то моменты? Здесь было сообщение, что, мол, нужно только первый файл 30_82 (в моём случае 039_out(16)30_82_02_BC) и затем 14 последующих весом 200 (у меня нет 200, только 255). К слову, в последнем дампе у меня только 12 файлов весом 255 байт…

Может быть сразу подскажете? А так я и скринов могу навалить, естественно :pardon: Спасибо!
Аватара пользователя
Андрей
Архитектор
Сообщения: 7935
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 746 раз
Поблагодарили: 498 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Андрей »

NeonS, нужен скрин ваших файлов с длинами и временами создания (например, тотал кмд). Всех. Снятых в 1 проход. Чтобы лишних дублей не было.
NeonS
Сообщения: 9
Зарегистрирован: 26 май 2023, 11:19
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение NeonS »

Аватара пользователя
Андрей
Архитектор
Сообщения: 7935
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 746 раз
Поблагодарили: 498 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Андрей »

NeonS, сложная у вас ситуация.

1. Нужно воспользоваться советом Mic_Richi, файл 30_82 первый взять и определить длину header.

2. Нужно брать по порядку файлы 255 до тех пор пока не приблизимся к длине header.

3. Нужно взять "хвостик" так, чтобы совпала длина с header.

(что будет хвостиком - вопрос пока открытый, но по длине скорее всего 1 файл после "крайнего" 255-файла)
Аватара пользователя
Андрей
Архитектор
Сообщения: 7935
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 746 раз
Поблагодарили: 498 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Андрей »

NeonS писал(а):
26 май 2023, 16:39
можно ли давать ссылку?
можно, любая инфа по уточнению процесса приветствуется.
NeonS
Сообщения: 9
Зарегистрирован: 26 май 2023, 11:19
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение NeonS »

Прошу прощения за тупость, но я не могу понять фразу "Размер header можно проверить по 3 - 4 байту в файле. (1 и 2 - заголовок)". 3-4 байту ы каком файле? В первом? В каждом? Может быть есть какая-то наглядная инструкция :)? На что и куда смотреть? Т.е. у меня получается так, я понимаю абсолютно всё о чём мы тут общаемся, но никак не могу понять как собрать последний этап :dash:
Аватара пользователя
Андрей
Архитектор
Сообщения: 7935
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 746 раз
Поблагодарили: 498 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Андрей »

NeonS писал(а):
26 май 2023, 16:39
039_out(16)30_82_02_BC
Вот этот вот первый файл длиной 16 байт и является началом header - следовательно длину header нужно вычислить из него.