2016-04-05 41 views
-1

ちょうどC++プログラミングを学び始めたばかりで、エクササイズのためにWindows API Syscall Hookを書く方法を学びたいと思います。たとえば、特定の名前のファイルを削除しようとすると、 'test.txt'の例では、削除する代わりにメッセージがポップアップ表示されます。私はそのようなことをする方法についてのチュートリアルを探してみましたが、何も見つかりませんでした。C++ Windows API Syscallフックの例

誰かがこのようなことを行う方法や、非常に簡単なコード例についてのチュートリアルへのリンクを共有できますか?私は、Windows 10マシンおよびVisual Studio 2015

+0

はこれよりは、Windows APIと独自にC++よりも、ライブラリの関連ウィンドウに関係しています。ポップアップのwinformsについて学ぶ必要があるかもしれません。 – shinzou

+0

私が知っている限り、WindowsはLinuxとは対照的に、APIの一部としてこれをサポートしていません。 Windows APIの非常に特殊なサブセット(ファイルIOを傍受するためのカスタムドライバの作成など)と、サンクレベルで動作し、x86/x64アセンブラに関する知識を必要とするいくつかの低レベルのアプローチのためのアプローチがいくつかあります。好奇心の理由から、単純なコード例でこれを行うことができると思われるのはなぜですか? –

+2

これは可能ですが、非常に困難です。それは初心者のための適切なプロジェクトではありません。 –

答えて

1

に取り組んでいます

ファイルシステム(ミニ)フィルタドライバを書きます。

https://msdn.microsoft.com/en-us/library/windows/hardware/ff548202%28v=vs.85%29.aspx

ファイルシステムフィルタドライバは、ファイルシステムの挙動を に値を追加または変更する任意のドライバです。ファイルシステムフィルタドライバ は、Windowsエグゼクティブの一部として実行されるカーネルモードのコンポーネントです。

ファイルシステムフィルタドライバは、1つ以上の ファイルシステムまたはファイルシステムボリュームのI/O操作をフィルタできます。 ドライバの性質に応じて、フィルタはログを記録したり、観察したり、変更したり、あるいは防ぐことさえできます。ファイルシステムフィルタドライバの標準 アプリケーションには、ウイルス対策ソフトウェア ユーティリティ、暗号化プログラム、および階層ストレージ管理 システムが含まれています。

Windowsドライバサンプルには、ファイルまたはストリームの削除を検出するミニフィルタドライバが含まれています。

参照:https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/delete