Как вытащить файл из реестра

Обновлено: 04.07.2024

В данном разделе рассматриваются практические примеры работы с реестром:

Лицензия КриптоПро в реестре [1017]¶

Лицензия КриптоПро хранится в реестре, её можно оттуда скопировать, либо ввести.

КриптоПро 3.6:

КриптоПро 3.9:

КриптоПро 4.0:

КриптоПро 3.0:

  1. Открыть двойным нажатием левой кнопки мыши параметр ProductID и прописать в поле Значение серийный номер лицензии (можно с дефисами, можно без). Либо скопировать номер лицензии оттуда.

Где хранятся ключи(закрытый ключ сертификата) в реестре? [1739]¶

Реестр может использоваться в качестве ключевого носителя, другими словами, в него можно скопировать Квалифицированную электронную подпись (КЭП). После копирования закрытые ключи будут находиться:

  • В некоторых случаях сертификат попадает сюда:

Где SID (идентификатор пользователя) (англ. Security Identifier (SID)) — структура данных переменной длины, которая идентифицирует учетную запись пользователя, группы, домена или компьютера.

Узнать SID пользователя можно через командную строку («Пуск → Выполнить → cmd»), введя команду WHOAMI /USER .

Рис. 23 – Узнать SID пользователя через командную строку

Рис. 23 – Узнать SID пользователя через командную строку

Чтобы скопировать текст из командной строки Windows, необходимо нажать правой кнопкой мыши на заголовок окна консоли и в меню «Свойства» на вкладке «Общие» включить опцию «Выделение мышью».

Восстановление закрытых ключей с неисправного компьютера¶

Обязательно ознакомьтесь с главой Работа с Редактором реестра и разделами:

Есть возможность восстановить закрытые ключи сертификата, если они были записаны в реестре компьютера и этот компьютер сломался.

Это можно сделать только в том случае, если жесткий диск в рабочем состоянии и есть возможность его подключить к рабочему системному блоку. Или есть копия папки C:\Windows\System32\config\ .

Если условия выполняются, необходимо проделать следующее:

  1. Подключить жесткий диск от неработающего компьютера к рабочему системному блоку;
    утилиту PsExec.exe и скопировать ее в корень диска C .

Открыть редактор реестра с помощью утилиты PsExec.exe (см. раздел Работа через утилиту PsExec ). В командной строке («Пуск → Выполнить → cmd») ввести команду;

Загрузить куст HKEY_LOCAL_MACHINE\Software (см. раздел Загрузка и выгрузка куста ):

  • Перейти в раздел HKEY_LOCAL_MACHINE ;
  • Выбрать «Файл → Загрузить куст»;
  • В файловом менеджере выбрать соответствующий файл куста с нерабочего компьютера C:\Windows\System32\config\SOFTWARE ;
  • Задать произвольное имя загруженному кусту, например, AZAZAZ .

В некоторых случаях сертификат попадает сюда:

  1. После того, как найден нужный раздел с ключами:
  • Нажать на подраздел keys правой кнопкой мыши и выбрать пункт «Экспортировать» (см. раздел Создание резервной копии реестра (Экспорт) ).
  • Выбрать место для сохранения и задать имя файла. Экспортированный файл будет иметь расширение .reg .
  • Если требуется, перенести экспортированный файл с расширением .reg на другой компьютер.
  1. Открыть экспортированный файл с расширением .reg в текстовом редакторе (Notepad++, Блокнот) и изменить в файле идентификатор пользователя (SID) на идентификатор текущего пользователя, для этого:

Рис. 24 – Изменение пути к веткам реестра

Рис. 24 – Изменение пути к веткам реестра

  • В командной строке («Пуск → Выполнить → cmd») ввести команду WHOAMI /USER (см. рисунок Рис. 23 – Узнать SID пользователя через командную строку ).

Чтобы скопировать текст из командной строки Windows, необходимо нажать правой кнопкой мыши на заголовок окна консоли и в меню «Свойства» на вкладке «Общие» включить опцию «Выделение мышью».

  1. Сохранить изменения в файле и открыть его двойным щелчком мыши (см. раздел Восстановление реестра из резервной копии (Импорт) ). Разрешить внести изменения в реестр.
После этого выполнить установку открытого ключа через Крпто Про CSP (Инструкция по установке личного сертификата).

Перед тем, как вносить изменения в реестр, обязательно создавайте его резервную копию. Подробнее в разделе Создание резервной копии реестра (Экспорт) .

  1. В конце рекомендуется выгрузить ранее загруженный куст «Файл → Выгрузить куст».

Можно запускать реестр и не используя утилиту PsExec.exe , но тогда придется добавлять загруженным веткам права и разрешения вручную так, как описано в разделе Права доступа (Разрешения) . Это не критично, если речь идет, например, о копировании всего одного контейнера закрытого ключа. Если файлов много, то гораздо быстрее и удобнее использовать PsExec.exe .

Рекомендую всегда держать на готове утилиту PsExec.exe , ее скачивание и копирование занимает не так много времени.

Извлечение информации из резервной копии реестра¶

Резервные копии реестра обычно создаются автоматически каждые десять дней. Сохраняются они в папке:

  • C:\Windows\System32\config\RegBack – для Windows 7 и Server 2008;
  • C:\Windows\repair – для XP и Server 2003.

Данные папки содержит те же файлы, что и C:\Windows\System32\config\ .

Если, например, из реестра случайно был удален контейнер закрытого ключа, теоретически, есть возможность импортировать куст из резервной копии.

Порядок действия аналогичен, описанному порядку в инструкции Восстановление закрытых ключей с неисправного компьютера . Отличается только файл загружаемого куста C:\Windows\System32\config\RegBack\Software .

Доступ к считываетлям (Calais)¶

Иногда возникает проблема с доступом к считывателям смарт-карт. Она может быть связана с тем, что у текущего пользователя недостаточно прав на следующие ветки:

Подробнее о настройке прав доступа читайте в разделе Права доступа (Разрешения) .

Может возникнуть ситуация, когда текущий пользователь системы даже не будет являться владельцем данных веток реестра, следовательно, у него не будет прав на них. В таком случае, необходимо сначала добавить текущего пользователя во владельцы этих веток, а затем проставить ему соответствующие права, как описано в разделе Права доступа (Разрешения) данного руководства.

Доверенные узлы¶

Если узел не добавляется в надежные узлы, можно добавить его вручную через реестр, для этого необходимо:

Репутация: 62

Есть диск с виндой. Вставить в какой-то комп и запустить эту винду нельзя.

Есть все файлы системного реестра. Подскажите, есть ли софтина, которая сможет разобрать эти файлы? Нужно из реестра скопировать несколько ключей.


DiRTy_GaRRy



Просмотр профиля

Репутация: 9

ALX, таки тебя это удивит, но regedit. Hint: registry hive.


ALX



Просмотр профиля

Репутация: 62

ээээээ. возможно я дико туплю конечно, но как прочить regedit-ом файл реестра.

Вот есть у меня файл Ntuser.dat (хранит ветку реестра определенного юзера). Файл скопировал с винта, на котором стоял Server 2003. Самого винта нет, тока файлик.
Надо его "распарсить" и скинуть пару ключей реестра на диск.

Как мне его открыть и просмотреть в regedit? Вижу в импорте возможность загрузить файл куста реестра. но это же будет загрузка в реестр моей винды. Я его портить не хочу, он же мне позатирает мои ветки.


wine



Просмотр профиля

Репутация: 52

ALX, погуглите на тему "редактор неактивного реестра"


ALX

Многие начинающие пользователи операционной системы Windows, хотят стать продвинутыми пользователями и отлично разбираться в компьютере, но в процессе своего развития эти пользователи иногда выполняют действия, которые вредят ОС. В некоторых случаях эти действия приводят к поломке всей операционной системы. Очень часто это связано с внесением настроек в реестр Windows, поэтому сегодня я расскажу о том, что нужно делать, чтобы защитить Windows от внесения некорректных настроек.

Наверное, все кто хочет научиться разбираться в Windows, слышали о реестре Windows, и наверняка уже что-то там редактировали, но скорей всего не задумывались о том, что это может привести и к нежелательным последствиям.

Конечно, если Вы точно знаете, что Вы правили в реестре и на что точно это повлияет, то никаких нежелательных последствий не возникнет, но в большинстве случаем начинающие «продвинутые пользователи» не имеют представления, что конкретно они редактируют, а знают лишь то, что им посоветовали в интернете или просто знакомые.

Поэтому рекомендуется перед внесением любых изменений в реестр Windows, делать копии тех веток, которые будут редактироваться. Это делается с помощью функционала «Экспорта».

Примечание! Если Вы даже не знаете, что такое реестр Windows, то для начала рекомендую Вам ознакомиться со следующими материалами: Реестр Windows, Интересные настройки реестра.

Запускаем редактор реестра Windows

Хватит вступления, давайте перейдем к теме данной статьи. И начнем мы с того, что запустим программу по редактированию реестра. На самом деле существует много программ по редактированию реестра, но мы будем использовать стандартную утилиту regedit. Она запускается «Пуск -> Выполнить -> regedit» далее жмем OK (или нажмите сочетание клавиш «Win + R» и введите regedit).

Скриншот 1

После запуска Вы увидите.

Скриншот 2

И так рассмотрим простейший пример по редактированию реестра, представим нам нужно удалить что-то из автозагрузки. Для этого нам необходимо открыть следующую ветку реестра, в которой и хранятся программы, запускаемые автоматически при запуске ОС.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

Экспорт ветки реестра Windows

Скриншот 3

Затем, Вам останется всего лишь указать каталог для сохранения экспортируемого файла и имя самого файла. После того как путь к каталогу Вы указали, нажимаем «Сохранить».

Скриншот 4

После этого у Вас в той папке, которую Вы указали, появится вот такой файл.

Скриншот 5

Файл, в который мы экспортировали ветку реестра, можно редактировать в любом текстовом редакторе, например в блокноте (или например в Notepad++), где Вы можете посмотреть, что именно Вы выгрузили.

Импорт ветки реестра Windows

Эта простая операция по экспорту веток реестра, перед их непосредственным редактированием, обезопасит Вас от нежелательных последствий, так что возьмите себе на вооружение данный совет.

Заметка! Данный совет относится не только к сохранению реестра перед редактированием, но и к любым действиям с файлами (конфигурационные файлы программ или просто скрипты). Иными словами, перед редактированием или удалением таких файлов, сохраните их в любом месте, для того чтобы не возникала ситуация, когда Вы что-то удалили, а это оказалось нужное, и что делать дальше Вы не знаете.

Заметка! В интернете очень часто предлагают скачать тот или иной файл-экспорта и импортировать у себя на компьютере, например, для решения какой-нибудь проблемы. Советую такие скаченные файлы обязательно просматривать и смотреть, что именно они делают, перед тем как импортировать в реестр, так как могут попасться и вредоносные файлы.

Криптопровайдер КриптоПро на сегодняшний день является, пожалуй, самым популярным на рынке, по крайней мере в России. Я хочу рассказать, как быстро и удобно перенести большое количество контейнеров закрытых ключей CryptoPro и сертификатов к ним. Существует штатный механизм в самой программе, работает в ручном режиме и не подходит, когда надо перенести большое количество.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это - банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме. Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:

  1. Перенести или скопировать контейнер закрытого ключа через стандартную оснастку CryptoPro в панели управления. Это самый простой и быстрый способ, если у вас не много сертификатов и ключей. Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит.
  2. Скопировать сертификаты и ключи непосредственно через перенос самих исходных файлов и данных, где все это хранится. Объем работы одинаков и для 5 и для 50-ти сертификатов, но требуется больше усилий и знаний.

Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.

Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты.

Копирование закрытого ключа через оснастку КриптоПро

Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.

Копирование закрытого ключа сертификата через оснастку КриптоПро

Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.

Выбор контейнер для экспорта

Ошибка копирования контейнера

Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:

Ошибка копирования контейнера

Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии. Либо вы просто не сможете его выбрать для копирования, если у вас последняя версия CryptoPro. Он будет неактивен:

Неэкспортируемый контейнер

Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему. Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Делаем это там же на вкладке Сервис в оснастке CryptoPro. Нажимаем Посмотреть сертификаты в контейнере.

Посмотреть список сертификатов в системе

Выбираем необходимый сертификат и нажимаем Посмотреть свойства сертификата.

Выбор сертификата

Далее переходим на вкладку Состав в информации о сертификате и нажимаем Копировать в файл.

Сохранение сертификата КриптоПро в файл

Если у вас после слов "Экспортировать закрытый ключ вместе с сертификатом" нет возможности выбрать ответ "Да, экспортировать закрытый ключ", значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.

Невозможно экспортировать закрытый ключ

Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, кроме удаления. Так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.

Формат экспортируемого ключа

Укажите какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В завершении укажите имя файла, куда вы хотите сохранить закрытый ключ. Теперь вам нужно скопировать сам сертификат. Только что мы копировали закрытый ключ для него. Не путайте эти понятия, это разные вещи. Опять выбираете этот же сертификат в списке из оснастки Crypto Pro, жмёте Копировать в файл, экспортировать БЕЗ закрытого ключа. И выбираете файл формата .CER.

Перенос сертификата

Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него. В итоге у вас должны получиться 2 файла с расширениями:

Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам нужно будет выбрать все параметры по умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер. Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.

Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер

В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже. Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:

Как узнать SID пользователя

В данном случай user - имя учетной записи, для которой узнаем SID. Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра (regedit.exe) и переходим в ветку:

где S-1-5-21-4126888996-1677807805-1843639151-1000 - SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее. Этот путь актуален для 64-х битных систем - Windows 7, 8, 10. В 32-х битных путь может быть немного другой. Я специально не проверял, но поиском по реестру вы при желании найдете его.

Массовый перенос закрытых ключей сертификатов с компьютера на компьютер

Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи. Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории - C:\Users\user\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию. Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My.

После того, как перенесли файлы со старого компьютера на новый, открываем файл с веткой реестра в текстовом редакторе и меняем там SID пользователя со старого компьютера на SID пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.

Замена SID пользователя

После этого запускаем .reg файл и вносим данные из файла в реестр. Теперь скопируйте папку My с сертификатами в то же место в профиле нового пользователя. На этом перенос сертификатов и контейнеров закрытых ключей КриптоПро завершен. Можно проверять работу. Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью, чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

Иногда после переноса контейнеров закрытых ключей через экспорт - импорт ветки реестра с ключами можно увидеть ошибку доступа к контейнерам. Вроде бы все на месте, ключи есть в реестре. Их можно увидеть в останстке CryptoPro, но не получается прочитать. При попытке это сделать возникает ошибка:

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

Права доступа в реестре на ключи

Убедитесь так же, что новые права наследовались на дочерние ветки с самими ключами. Обычно это так, но перепроверить на всякий случай непомешает. После этого ошибка с доступом к контейнеру закрытого ключа исчезнет.

Часто задаваемые вопросы по теме статьи (FAQ)

Можно ли перенести сертификат, который находится на токене и защищен от копирования?

Очевидно, что предложенное в статье решение для этого не подойдет. Ведь тут идет речь о переносе сертификатов, которые хранятся в реестре, то есть уже были скопированы. Технические средства для копирования защищенных крипто контейнеров тоже существуют, но это не такое простое и очевидное решение.

Безопасно ли хранить сертификаты в реестре?

Это не безопасно и в общем случае я не рекомендую это делать. USB токены для хранения сертификатов придуманы не просто так. Они реально защищают сертификаты от несанкционированного копирования. Если у вас нет объективной необходимости копировать сертификаты в реестр, лучше этого не делать. Если вам нужно сделать бэкап сертификата на случай поломки токена, то просто скопируйте его в зашифрованный архив и сохраните на флешке.

Подойдет ли предложенный способ копирования сертификатов CryptoPro для VipNet?

Нет, не подойдет. В статье описан способ переноса сертификатов CryptoPro. Другие криптопровайдеры хранят сертификаты по-другому. Универсального способа для всех не существует.

Есть ли какой-то очень простой способ скопировать сертификаты crypto pro? То, что описано в статье слишком сложно для меня.

Да, есть статья на сайте контура, в ней ссылка на утилиту для копирования контейнеров Certfix. Можете воспользоваться ей.

Читайте также: