DLLインジェクションがWindows 10でネイティブWindowsバイナリ(calc.exeなど)に対して機能しないのはなぜですか?
私はDLLインジェクションを使用するために、たとえばcalc.exeをインジェクトするために、その使用に関するいくつかの古い記事を読んで遊んでいます。
ただし、最新のWindows 10マシンでは、Windows独自のバイナリ(calc.exeなど)や一部のサードパーティアプリケーション(Chromeなど)に注入できないという結論に達しました。
私自身のプログラムを含む他のプロセスでは、DLLインジェクションは問題なく動作するので、インジェクターは問題なく動作すると思います...
これらのプロセスに注入できない理由は何ですか?
実行中のcalc.exeのプロセスID(pid)でPowerShell Get-ProcessMitigationコマンドを実行します。
PS> Get-ProcessMitigation -Id <calc_pid>
Microsoft Signed Librariesのみをロードすることが通知されます。
MicrosoftSignedOnly:ON
これはWindows 10の新機能です。