Что такое хэш в HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \.<Расширение>\ UserChoice?

В Windows 8 выбор пользователя, для которого следует открыть приложение для данного типа документа, по-видимому, сохраняется в

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<extension>\UserChoice

Для PDF-файлов на моей машине это содержит:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice]
"Hash"="xh8KhPWlZL0="
"ProgId"="AcroExch.Document"

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

4 ответа

Решение

Кто-то пересмотрел хэш и написал инструмент CLI для установки ассоциаций файлов:

http://kolbi.cz/blog/?p=346

extension = “.txt”; the file extension
sid = “S-1-5-21-463486358-3398762107-1964875780-1001” ; the SID of the current user
progid = “txtfile”; the ProgId of the desired association
regdate = “01d3442a29887400”; timestamp of the UserChoice registry key
experience = “a microsoft secret string”; a static string (this is a dummy example, not the real string
hash = Base64(MicrosoftHash(MD5(toLower(extension, sid, progid, regdate, experience))))

Не все детали раскрыты, но, вероятно, достаточно, чтобы перепроектировать остальные.

Microsoft решила в Windows 8 (вероятно, из соображений безопасности), что пользователи должны иметь возможность устанавливать программы по умолчанию только через встроенный графический интерфейс. Т.е. по замыслу вы не должны устанавливать обработчики по умолчанию в скрипте или программно.

Значение Hash используется для доказательства того, что значение ProgId UserChoice было задано пользователем, а не каким-либо другим способом. Это работает, пока Microsoft хранит алгоритм, который генерирует Hash, и механизм проверки ProgId с использованием Hash, секрета.

Теоретически вы можете выяснить секрет установки хэша (и, возможно, других скрытых настроек ОС), но у вас не будет гарантии его надежности; например, следующее обновление Windows может нарушить ваш метод. Возможно, вам просто нужно адаптироваться к изменениям и жить с использованием новых методов, встроенных в ОС Microsoft.

Между прочим, эти хэши выбора пользователя в профиле становятся недействительными после sysprep, вызывая все эти сообщения "приложение по умолчанию было сброшено" во время первого входа в систему после sysprep и множество записей журнала в Microsoft-Windows-Shell-Core/AppDefaults.

Существует обратная инженерная работа здесь .

Вот основной алгоритм: Imgur

Другие вопросы по тегам