Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

All notable project changes are documented here. The project follows semantic versioning after the first generally available release.

## [0.4.0-rc3] - 2026-08-20

### Changed

- Disconnected-Windows scanning now runs on a background thread, keeping the main window responsive while slow HDD/USB media are read.
- The progress bar uses a continuous marquee during offline scans, the scan button shows an active state, and the status line reports each scan stage.
- Offline path guidance and the folder-picker title now explicitly say that either a drive root such as `E:\` or its `E:\Windows` directory can be selected.

### Validation

- The user confirmed that RC2 detects the products and full license on the real connected Windows 7 x86 disk and successfully exports its public certificates.
- Release x86 build and all core tests pass after the asynchronous GUI change.

## [0.4.0-rc2] - 2026-08-20

### Fixed
Expand Down
5 changes: 3 additions & 2 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Windows 7–11](https://img.shields.io/badge/Windows-7%20SP1%E2%80%9311-0078D6.svg)](#system-requirements)

> **Status: 0.4.0 RC2.** A user successfully completed full removal on a live Windows 10 x64 system. RC1 did not fix the real disconnected Windows 7 x86 disk; RC2 replaces the unsuitable `RegLoadAppKey` path with a system-hive loader and separately supports file-backed certificate stores. The same disk still needs a repeat test.
> **Status: 0.4.0 RC3.** A user successfully completed full removal on a live Windows 10 x64 system. Detection of products and the complete license plus public-certificate export are now confirmed on a real connected Windows 7 x86 disk. RC3 adds responsive background scanning with live indication.

An unofficial portable utility for backing up license identifiers and public certificates, controlled removal of installed CryptoPro products, and rescue from a disconnected Windows 7 SP1 through Windows 11 installation.

Expand Down Expand Up @@ -35,6 +35,7 @@ The utility deliberately preserves Windows certificate stores, hardware tokens,
- fallback profile discovery from `Users`, plus registry-backed user and local-machine public-certificate stores;
- public-certificate discovery in `AppData\Roaming\Microsoft\SystemCertificates\My\Certificates` without accessing private keys;
- copyable stage-by-stage offline diagnostics and a safe `--offline-scan` command.
- background disconnected-Windows scanning with a responsive window, continuous progress animation, and live stage text.

## System requirements

Expand All @@ -55,7 +56,7 @@ CryptoPro CSP 4.x and 5.x (and available 3.x installations) are discovered from

## Disconnected Windows rescue

On the Disconnected Windows tab, choose an offline `Windows` directory or drive root and scan it read-only. Licenses and selected public certificates can be rescued without changing the disk. Advanced offline cleanup cannot run the disconnected installation's registered MSI/EXE uninstaller, so it is explicitly forced and conservative. It requires all detected products, the typed phrase `OFFLINE`, and a backup on another volume. Complete `SOFTWARE` and `SYSTEM` hives plus quarantined file copies and a recovery map are created before writes. User `NTUSER.DAT` files, certificate stores, tokens, and private-key containers remain read-only. Unknown COM/browser remnants are retained and can produce a partial result.
On the Disconnected Windows tab, choose either a drive root such as `E:\` or its `E:\Windows` directory and scan it read-only. The window remains responsive, a continuous indicator moves, and the current stage is shown; a slow HDD/USB scan may take several minutes. Licenses and selected public certificates can be rescued without changing the disk. Advanced offline cleanup cannot run the disconnected installation's registered MSI/EXE uninstaller, so it is explicitly forced and conservative. It requires all detected products, the typed phrase `OFFLINE`, and a backup on another volume. Complete `SOFTWARE` and `SYSTEM` hives plus quarantined file copies and a recovery map are created before writes. User `NTUSER.DAT` files, certificate stores, tokens, and private-key containers remain read-only. Unknown COM/browser remnants are retained and can produce a partial result.

Safe scan-only CLI:

Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Windows 7–11](https://img.shields.io/badge/Windows-7%20SP1%E2%80%9311-0078D6.svg)](#системные-требования)

> **Статус: релиз-кандидат 0.4.0 RC2.** Полное удаление успешно проверено пользователем на живой Windows 10 x64. RC1 не исправил чтение реального диска Windows 7 x86; в RC2 ошибочный `RegLoadAppKey` заменён системным загрузчиком hive, а файловое хранилище сертификатов поддерживается отдельно. Требуется повторная проверка на том же диске.
> **Статус: релиз-кандидат 0.4.0 RC3.** Полное удаление успешно проверено пользователем на живой Windows 10 x64. На реальном подключённом диске Windows 7 x86 подтверждены обнаружение продуктов, полный номер лицензии и экспорт открытых сертификатов. RC3 добавляет отзывчивое фоновое сканирование с живой индикацией.

Неофициальная portable-утилита для резервного копирования лицензий и открытых сертификатов, контролируемого удаления установленных продуктов CryptoPro и спасения данных из отключённой Windows 7 SP1–Windows 11.

Expand Down Expand Up @@ -45,6 +45,7 @@
- резервный поиск профилей в `Users` и чтение пользовательского и машинного реестровых хранилищ сертификатов;
- чтение открытых сертификатов из файлового хранилища `AppData\Roaming\Microsoft\SystemCertificates\My\Certificates` без доступа к закрытым ключам;
- копируемая пошаговая диагностика офлайн-сканирования и безопасный параметр `--offline-scan`.
- фоновое сканирование отключённой Windows: окно остаётся отзывчивым, индикатор движется непрерывно, а строка состояния показывает текущий этап.

## Системные требования

Expand All @@ -69,8 +70,8 @@

## Неисправный или подключённый диск

1. Откройте вкладку «Неисправный диск» и укажите папку `Windows` отключённой установки либо корень диска.
2. Нажмите «Сканировать». Ульи `SOFTWARE`, `SYSTEM` и пользовательские `NTUSER.DAT` на этом этапе открываются только для чтения.
1. Откройте вкладку «Неисправный диск» и выберите корень диска с Windows, например `E:\`, либо саму папку `E:\Windows` — подходят оба варианта.
2. Нажмите «Сканировать». Во время чтения движется индикатор и показывается текущий этап; на медленном HDD/USB операция может занять несколько минут. Ульи `SOFTWARE`, `SYSTEM` и пользовательские `NTUSER.DAT` открываются только для чтения.
3. Кнопка «Сохранить найденные данные» извлекает полные лицензии и выбранные открытые сертификаты, не меняя отключённую Windows.
4. «Расширенная офлайн-очистка» требует выбора всех найденных продуктов, ввода `OFFLINE` и резервной папки на другом томе. До изменений копируются целиком `SOFTWARE` и `SYSTEM`, а подтверждённые файлы помещаются в карантинную копию с `recovery-map.txt`.

Expand Down
18 changes: 18 additions & 0 deletions docs/RELEASE_NOTES_0.4.0-rc3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# КриптоПро Очистка 0.4.0 RC3

Этот релиз улучшает удобство проверенного офлайн-сканирования подключённого диска Windows.

## Что изменено

- сканирование отключённой Windows перенесено в фоновый поток, поэтому окно больше не выглядит зависшим;
- во время всей операции движется непрерывный индикатор;
- кнопка показывает состояние «Сканирование…», а строка состояния — текущий этап;
- окно остаётся отзывчивым и его можно перемещать;
- в самой вкладке и окне выбора теперь прямо написано, что можно указать корень диска (`E:\`) или папку Windows (`E:\Windows`);
- добавлено предупреждение, что чтение медленного HDD/USB может занять несколько минут и носитель нельзя отключать.

## Подтверждённая проверка

На реальном подключённом диске с загружаемой Windows 7 x86 версия RC2 правильно обнаружила продукты CryptoPro и полный номер лицензии, показала сертификаты и успешно экспортировала их открытую часть. Полное удаление на работающей Windows 10 x64 также ранее прошло успешно.

RC3 не меняет правила чтения и очистки диска: первичное сканирование остаётся только для чтения, сертификатные хранилища и контейнеры закрытых ключей защищены.
1 change: 1 addition & 0 deletions docs/TEST_MATRIX.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ For each VM retain the initial JSON report, final JSON report, cleanup log, prod
- 2026-08-20: version 0.3.0 RC2 running on Windows 10 x64 returned zero products and certificates for a connected, bootable Windows 7 x86 disk. Version 0.4.0 RC1 added registry-view, MSI Installer UserData, profile-fallback, and certificate-store changes, but a repeat test still returned zero results.
- 2026-08-20: version 0.4.0 unit tests, non-destructive integration scan, and MSVC C++ static analysis passed. The release executable was verified as x86 with OS/subsystem version 6.01, `requireAdministrator`, system-DPI awareness, Common Controls v6, and no dynamic Visual C++ runtime dependency.
- 2026-08-20: user repeat test of 0.4.0 RC1 still returned zero products and certificates on the connected Windows 7 x86 disk. Reproduction showed `RegLoadAppKey` returning `ERROR_BADDB` for a valid saved system `SOFTWARE` hive; `RegLoadKey` opened and unloaded the same hive successfully. RC2 replaces the loader and adds serialized certificate-file discovery.
- 2026-08-20: user testing of 0.4.0 RC2 on the real connected Windows 7 x86 disk confirmed product detection, the correct complete license identifier, and successful public-certificate export. RC3 moves this scan to a responsive background worker with continuous progress indication.
- 2026-08-20: read-only synthetic disconnected-Windows fixture passed with 2 confirmed CryptoPro products, 4 license candidates, 1 inactive profile, and 7 public certificates from `AppData\Roaming\Microsoft\SystemCertificates\My\Certificates`; both `SOFTWARE` and `SYSTEM` temporary mounts unloaded successfully.
- 2026-08-20: RC2 implementation passed unit tests, the non-destructive live integration scan, and MSVC C++ static analysis with no warnings. No `CryptoProCleanup_Offline_*` registry mounts remained after testing; sensitive hive/certificate fixture copies were removed.
- The running Windows directory is rejected as an offline target. A destructive disconnected-Windows VM test is still pending.
Expand Down
2 changes: 1 addition & 1 deletion src/cleanup.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace cpc {

constexpr wchar_t kVersion[] = L"0.4.0";
constexpr wchar_t kVersion[] = L"0.4.0-rc3";

enum class Language { Russian, English };
enum class RiskLevel { Normal, High };
Expand Down
Loading
Loading