1

アプリケーションの開始時に、レジストリのシェル値をカスタムシェルに変更し、explorer.exeを強制終了します(アプリケーションの外部で実行されます)。バックドアが元のシェルに戻ってエクスプローラーを戻すことができるようにします。 。EXE。プロセスを元に戻すことは私にとってはうまくいきますが、レジストリ値を変更するためにコードを実行しても例外はスローされませんが、regeditをチェックインしても値は変更されません、これは私のコードです(別の質問でここで見ました):

        RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
        regKey.SetValue("Shell", "explorer.exe", RegistryValueKind.String);
        regKey.Close();

助けてください

4

1 に答える 1

6

あなたのコードでは、あなたは実際にの値を設定しています

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

一部のレジストリキーはWOW64によってリダイレクトされるため、詳細については、 MSDNを確認してください。

これを試して:

RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);

RegistryKey regKey = localMachine .OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
regKey.SetValue("Shell", "explorer.exe", RegistryValueKind.String);
regKey.Close();
于 2012-12-02T07:55:01.143 に答える