Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Быстрая настройка Windows (рабочее место)

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

westlife



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Сама винда (OpenWith.exe) когда назначает, она не удаляет раздел и от нее прокмон не показывает того действия, которое делает утилита, кроме проверки тага. Только в утилите таг показывает 0х400, а у винды 0х0  
И то действие в прокмоне может быть не правильно интерпретировано, так как недокументировано и официально не должно показывать, либо нет доступа у прокмона видеть низкоуровневую операцию и он показывает как может или как понимает.
 
ЧТо написать не знаю. общую суть можно.  
Что недостаточно знать генерацию хэша и установить его в раздел. Привести в пример утилиту эту, которая делает что то ещё и после нее расширение не сбрасывает. Раз они узнали как генерить хэш, значит они дизасемблировали так же как тот чел с утилитой (так как такой метод наугад не воспроизвести). только не всё поняли видимо.  
 
Если могут пусть дизасемблируют код этой утилиты, и поглядят как там реализовано. пусть обратят внимание на любые метки на раздел. ЧТо то там используется недокументированное с разделом, а не просто установка этого параметра.
Думаю в утилите сделано через удаление раздела, чтобы при создании нового раздела, воспроизводилось часть необходимого условия (метка времени), а дальше он делает еще что то чтобы симулировать то, что делает сама винда с разделом, то что она проверяет на "легитимность" хэша. Тут завязано 3 состовляющие: время, метка раздела и сам хэш. Видимо надо время для хэша в каком то виде записать в раздел.
 
Потратил 3 дня уже на этот хэш, думал что все норм, а оказалось, что радоваться рано, есть подвох.
Если менять одно расширение за раз, то заметить эту проблему не получится, и кажется что всё нормально.
Я делал так: назначал дефолтный просмотрщик на Microsoft.Windows.Photos параметрами винды.
Затем менял те 15 расширений на стандартный просмотрщик, который восстановил (с обновлением параметров проводника! как сделано в оригинале у него и как делает утилита и как делает винда). Затем открывал папку с картинками. и проверял сброс, так как не всегда понятно что сбросило (иногда вылезает сообщение что сбросило), вот так проверять можно:
 

Код:
$SetExtensions = 'jpg', 'jpe', 'jpeg', 'jfif', 'bmp', 'dib', 'wdp', 'jxr', 'png', 'tiff', 'tif', 'nef', 'orf', 'arw', 'cr2'
foreach ( $Ext in $SetExtensions )
{
    [string] $Path = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.$Ext\UserChoice"
    Write-Host ".$Ext | " -NoNewline
    [Microsoft.Win32.Registry]::GetValue($Path,'ProgId',$null)
}

 
Ну и вот таким методом если проверять после утилиты, за все 3 дня не смог получить сброс параметров. А через PS если назначить, то легко воспроизводится со 2 или третьего раза. как раз на том расширении которое сброшено, оно "ломается", то есть его через пкм меню уже не назначить, там нет галочки "открывать всегда", и вот если снова применить назначение через PS, не всегда, но восстанавливается, иногда с 5 раза или вообще не получается, и на сколько восстанавливается тоже не известно. Но вот если утилитой назначить, то восстанавливается всегда с первого раза! то есть что то она еще делает и суть только в самом этом разделе!!!! В его метке. остальные параметры не меняются ни где. именно из-за кривой метки этого раздела и "ломается" расширение и сбрасывается на дефолт. Может винда не будет сбрасывать при этом косяке  "неважное" расширение, типа css или txt, надо проверять именно на важных, типа картинок и видео. На протоколах не ставит винда запрета на изменение, но наверно на раздел ту фишку все же делает как для расширений, так как после PS протокол также сбрасывается, только чтобы увидеть сброс протокола надо время и перезагрузку или выключение включение делать.
 
Вот функция для установки правильного доступа (делать после установки параметров), делать только для расширений, не протоколов!:

Код:
    Function Set-UserAccessKey {
 
        Param(
            [Parameter( Position = 0, Mandatory = $true )] [String] $SubKey
        )
 
        try
        {
            $OpenSubKey = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey($SubKey,'ReadWriteSubTree','TakeOwnership')
 
            if ( $OpenSubKey )
            {
                $Acl = [System.Security.AccessControl.RegistrySecurity]::new()
                $UserSID = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
                $Acl.SetSecurityDescriptorSddlForm("O:$UserSID`G:$UserSID`D:AI(D;;DC;;;$UserSID)")
                $OpenSubKey.SetAccessControl($Acl)
                $OpenSubKey.Close()
            }
 
            Write-Verbose "Set User Access Ok: HKCU:\$Subkey"
        }
        catch { Write-Warning "Set User Access FAIL: HKCU:\$SubKey" }
    }

пример: Set-UserAccessKey "SOFTWARE\...\Explorer\FileExts\.jpg\UserChoice"
 
А это для md5, вместо того:

Код:
[byte[]] $bytesMD5 = [System.Security.Cryptography.CryptoConfig]::CreateFromName('md5').ComputeHash($bytesBaseInfo)

 
 

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 01:43 09-03-2021
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Быстрая настройка Windows (рабочее место)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru