概要
Windows 11 22H2で導入されたスマート アプリ コントロール(Smart App Control)の機能が、一般アプリの起動や一般アプリからのプロセスの起動にどの程度影響あるかを確認するための開発用のツールです。
テストできること
Windows 11 22H2で導入されたスマート アプリ コントールによる、EXEモジュールの電子署名の有無による起動の振る舞いを確認できるようにするため、テストツールは、未署名版(*_unsigned.exe)と署名版(*_signed.exe)を用意しました。
また、アプリからのプロセス起動、ライブラリーの読み込みに対する挙動を確認できるように、ShellExecuteEx() / CreateProcess() / LoadLibrary() の呼び出しを試すことができます。
また、スマート アプリ コントロールの最後のエラーメッセージを確認することができます。
動作環境
OS | Windows 7 / 8 / 8.1 / 10 / 11 OS標準搭載以外のライブラリーやフレームワークは必要ありません。 |
言語 | 動作:全言語 Windowsがサポートしているすべての言語で動作します。 表示UI: 英語 英語で表示されます。 |
ダウンロード&変更内容
Smart App Control Test App 1.0.0 (スマート アプリ コントロールのテスト用アプリ 1.0.0) (2022年8月18日公開)
インストール方法
インストールは必要ありません。zipファイルを展開するのみです。zipファイルの中には四つのEXEファイルがあります。
- SmartAppControlTest32_unsigned.exe
- SmartAppControlTest32_signed.exe
- SmartAppControlTest64_unsigned.exe
- SmartAppControlTest64_signed.exe
前者二つ(SmartAppControlTest32_*.exe)は、32ビットテストアプリです。後者二つ(SmartAppControlTest64_*.exe)は、64ビットテストアプリです。
また、*_unsigned.exeは、電子署名を付与していないファイルです。*_signed.exeは、電子署名を付与したファイルです。
使用方法
4つのモジュールファイルは、署名の有無、および、アプリのビット数の違いだけであり、アプリの機能は全く同じです。
起動すると、ウィンドウには6つのボタンがあります。
- Browse
- ShellExecuteEx()
- CreateProcess()
- LoadLibrary()
- Query last error event
- Close
また、下部は、Resultエリアとなっており、結果が表示されます。
スマート アプリ コントロールを有効にしていないWindows 11の場合は、どのボタンも正常に動作しますが、スマートアプリコントロールを有効にしたWindows 11 22H2以降の場合は、電子署名を付与されていないモジュールに対する操作は失敗することを確認できます。
Browse ボタン
ShellExecuteEx() / CreateProcess() / LoadLibrary() ボタンで使用するファイルを指定します。exeファイルやdllファイルなどの実行ファイル、または、ドキュメントファイル(ShellExecuteEx()のみ対象)を指定可能です。
ShellExecuteEx() ボタン
Browseボタンで指定した実行ファイル、または、ドキュメントファイルをShellExecuteEx() APIを使って開きます。APIの実行結果は、Resultエリアに表示されます。APIの呼び出しが失敗した場合は、スマート アプリ コントロールのエラーイベントの読み出しも行います。
CreateProcess() ボタン
Browseボタンで指定した実行ファイルをCreateProcess() APIを使って開きます。APIの実行結果は、Resultエリアに表示されます。APIの呼び出しが失敗した場合は、スマート アプリ コントロールのエラーイベントの読み出しも行います。
LoadLibrary() ボタン
Browseボタンで指定した実行ファイルをLoadLibrary() APIを使って開きます。APIの実行結果は、Resultエリアに表示されます。APIの呼び出しが失敗した場合は、スマート アプリ コントロールのエラーイベントの読み出しも行います。
Query last error event ボタン
実行や読み込みがスマート アプリ コントロールで阻止された最後のエラーイベントをResultエリアに表示します。
Close ボタン
アプリを閉じます。
Resultエリア
Resultエリアは、二つの結果表示領域があります。
上部の表示エリアは、呼び出したAPIの実行結果が表示されます。
下部の表示エリアは、APIの実行がスマート アプリ コントロールで阻止された最後のエラーイベントを表示します。