NTFSストリームを使用して実行中の.exeを削除する

既に2回以上書かれたhabr上のNTFSストリームについて、プロセスを使用したWindowsの制限の1つを克服する方法を示します。 ここで、1つの投稿でこのトピックは既に取り上げられていますが、何とか気軽に取り上げられています。 彼女に注目したい。



実行中のプロセスの.exeファイルは、実行中に削除できないことをご存知でしょう。 ファイルは移動できますが、そのセクション内でのみ移動できます。 NTFSストリームを使用すると、実行中のプロセスファイルを削除できます。



これは、コマンドラインの3行で文字通り行われます。

cmd.exeを実行し、NTFSパーティションのディレクトリに移動します。



type %windir%\system32\notepad.exe > zz:notepad.exe

start E:\tmp\zz:notepad.exe

del zz









最初の行は、メモ帳をNTFSパーティションに「notepad.exe」zzファイルのストリームとしてコピーします。 空のzzファイルが自動的に作成されます。

2行目は、このスレッドが通常の.exeファイルであるかのように実行を開始します。

3行目は空のzzファイルを削除し、そのスレッドは一緒に消えます



プロセスは引き続き機能します。 taskmgr.exeを実行して、引き続き動作するzz:notepad.exeプロセスを鑑賞できます。



これの実用化? たとえば、インストーラーで。 彼らは一時ファイルにたくさんのexe-shnikovを残すのが好きです。 インストーラーはこの方法で実行可能ファイルを実行できますが、一時.exeファイルを削除しても問題はありません。



代替NTFSファイルストリームを操作するためのプログラム



All Articles