2017-04-24 27 views
0

私はファイルを隠しているプログラムで作業しています。私は隠しシステムファイルが表示されないようにするにはどうすればよいですか?

File.SetAttributes()隠し、システムにファイル属性を設定するための

コマンドを使用します。ただし、[隠しファイル、フォルダ、およびドライブを表示する]オプションが設定されているため、これらのファイルはまだ表示されています。

C#を使用して保護されたオペレーティングシステムファイルを表示しない(推奨)オプションを設定および設定解除できますか?

私は手動で、隠し属性とシステム属性が設定されたファイルを表示できませんでした。

+2

とはどのような人が、再び上でそれを折り返す際に発生する必要があります

は別の答えからの回答の、

File.SetAttributes(path, FileAttributes.Hidden); 

ソースを使用することを検討してください。 –

+0

"法律第3号:悪意のある人があなたのコンピュータへの物理的なアクセスを制限していない場合、それはあなたのコンピュータではありません。" - あなたのユーザは自分のPCに無制限にアクセスできるので、C#アプリケーションはそのPCを制御できません。 –

+0

C#からPowerShellスクリプトを実行することができます。あるいは、これがあなたのプログラムがやっている唯一のタスクであれば、PowerShellだけを使用してください。 – coinbird

答えて

1

これを行う方法を理解していても、アプローチにはいくつかの問題があります。たとえば:

  • ユーザーが手動で設定を変更したり、
  • ユーザは、特定のスイッチとdirまたはlsコマンドを実行することができ、それは別のプログラムが読むことができるようになります
  • 隠しファイルを表示しますたとえそれが隠されていてもファイルです。

あなたがしようとしているのは、ルートキット/マルウェアの境界線です。 rootkitがこれを行う方法は、ミニフィルタファイルシステムドライバを実行することです。ドライバは特定のIO呼び出しを受け取り、IO要求が「隠された」ファイルに作成された場合、単に「見つからない」結果を返します。ドライバは通常、特定のプロセス(pidまたは証明書のいずれか)からの呼び出しを許可して、読み取り/書き込みおよびその他のIO操作を許可します。

また、達成しようとするものによっては、コンテナのようなファイルを試すこともできますTrueCryptまたはその派生物)を使用するか、プログラムでファイルを暗号化します。

0

これを管理するには、MicrosoftのNTFSまたはAD、.NETフレームワーク、またはAPIを使用することをお勧めします。元の答えに言及しているように、ファイルが隠されようとしている場合に、そのファイルを明らかにするその他の方法があります。 How to hide file in C#?

関連する問題