
shadow-rs は Rust で書かれた Windows カーネルルートキットであり、Rust の安全性とパフォーマンスの特性を活用しながら、高度なカーネル操作テクニックを実証します。このプロジェクトは教育および研究目的を意図しています。
[!IMPORTANT]
このプロジェクトは開発中です。
Protected Processes (PP) および Protected Process Light (PPL) を処理するためにプロセス署名レベルを変更します。DSE) を有効または無効にして、署名なしドライバの読み込みを許可します。EtwTi) を無効化します。ZwCreateThreadEx を使用してプロセスにシェルコードまたは DLL を注入します。APC) 注入により、アラート可能なスレッドでシェルコードまたは DLL を実行します。スレッドハイジャッキング を使用してプロセス内でシェルコードを実行します。driver ディレクトリに移動して、カーネルドライバをビルドします:
cargo make default --release
[!IMPORTANT]
注: 最初のビルドは Administrator として実行する必要があります。以降のビルドでは昇格された権限は必要ありません。
kdmapper などのツールのマッピングサポートを有効にするには、以下でコンパイルします:
cargo make default --release --features mapper
client ディレクトリに移動して、ユーザーモードクライアントをビルドします:
cargo build --release
マップされたドライバとの互換性を確保するには:
cargo build --release --features mapper
bcdedit /set testsigning on
サービス コントロール マネージャー または OSR Driver Loader を使用してドライバを読み込むことができます。
Windbg を使用してカーネルにアタッチし、ドライバの動作を監視します。
bcdedit /debug on
bcdedit /dbgsettings net hostip:<IP> port:<PORT>
shadow-rs に貢献するには、次の手順に従ってください:
git checkout -b <branch_name>。git commit -m '<commit_message>'。git push origin <project_name> / <local>。あるいは、GitHub ドキュメント でプルリクエストの作成方法を参照してください。
このプロジェクトは教育および研究目的です。本ソフトウェアの悪意のある使用は固く禁止されており、推奨されません。本ソフトウェアの不適切な使用によって生じたいかなる損害についても、私は責任を負いません。
shadow-rs の作成に刺激を与え、いくつかの機能に貢献してくれた以下のプロジェクトに感謝の意を表します:
以下の資料と研究は、Windows カーネル開発に対する理解を深める上で非常に貴重でした:
このプロジェクトは MIT ライセンス の下でライセンスされています。詳細は LICENSE ファイルを参照してください。