レジストリに関連するAPI関数を呼び出すようにプログラムを制限するにはどうすればよいですか?


0

私はあまり好きではない方法で動作するプログラムを使用しています。管理者権限を持たないユーザーで実行されている場合でも、レジストリに書き込むことができます。説明できるものが他にあるとは思わないが、レジストリキー/文字列の編集に関連付けられているAPI関数を呼び出すようにプログラムを制限するにはどうすればよいですか?目標を達成するために広く受け入れられている方法はありますか?私の質問への答えは不十分に文書化されていますか、それは数回クリックするだけでMicrosoftのウェブサイトで見つけることができたものですか?


プログラムが使用するレジストリキーに対するユーザーのアクセス許可を取り消しますが、アプリケーションはそれを読み取ることができます(これがないと機能しないため良いです)
Ramhound

Microsoft Application Comparability Toolkitを使用して、アプリケーションのシムを作成することを検討します。VirtualRegistryなどの修正プログラムが役立つと確信しています。キーを書き込めない場合、アプリケーションがどうなるか、クラッシュするか、設定を保持しないだけですか?
HelpingHand

回答:


1

レジストリキーへのアクセスを拒否すると、プログラムは確実に誤動作します。

このプログラムを信頼できない場合は、Sandboxieを使用してレジストリから隔離してください :

Sandboxieは分離技術を使用して、基盤となるオペレーティングシステムからプログラムを分離し、ハードドライブに安全に保存されている個人データ、プログラム、およびアプリケーションに望ましくない変更が発生するのを防ぎます。

プログラムはこの方法で必要なものを変更できますが、Sandboxieはシステムの残りの部分に影響を与えないようにすべての変更をリダイレクトします。


0

レジストリキー/文字列の編集に関連付けられているAPI関数を呼び出すようにプログラムを制限するにはどうすればよいですか?

Windowsセキュリティモデルは、このまさにシナリオを処理するように設計されています。すべてのレジストリキーには、トラスティ(ユーザーアカウントなど)およびキーに対して実行が許可されているアクション(読み取りなど)を指定するアクセス制御リスト(ACL)があります。

これを活用してアプリケーションを制限するには、管理者以外のユーザーアカウントを作成し、常にそのユーザーのコンテキストでアプリケーションを実行します。Windowsの別のユーザーとして実行機能を使用すると、制限されたアカウントで実際にログオンしなくても、この方法でアプリケーションを実行できます。

デフォルトでは、標準ユーザーは、HKLMブランチなど、レジストリのシステム全体の部分に対する読み取りアクセス権のみを持ち、自分のアカウントのHKCUブランチのみを変更できます。

アカウントのレジストリアクセス許可をさらに制限する場合は、レジストリの適切なブランチを変更して、ユーザーアカウントに必要なアクセス許可を指定する必要があります。Microsoftのプロセスモニターを使用して、アクセスするレジストリパスと、変更されたアクセス許可が必要な可能性があるレジストリパスを確認できます。

ほぼすべてのWindowsアプリケーションが適切な操作のためにレジストリにアクセスする必要があることに留意してください。このようなアクセスを大量にブロックすると、プログラムが意図した機能を実行できなくなる可能性があります。

詳しくは:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.