web-dev-qa-db-ja.com

DLLインジェクションがWindows 10でネイティブWindowsバイナリ(calc.exeなど)に対して機能しないのはなぜですか?

DLLインジェクションがWindows 10でネイティブWindowsバイナリ(calc.exeなど)に対して機能しないのはなぜですか?

私はDLLインジェクションを使用するために、たとえばcalc.exeをインジェクトするために、その使用に関するいくつかの古い記事を読んで遊んでいます。

ただし、最新のWindows 10マシンでは、Windows独自のバイナリ(calc.exeなど)や一部のサードパーティアプリケーション(Chromeなど)に注入できないという結論に達しました。

私自身のプログラムを含む他のプロセスでは、DLLインジェクションは問題なく動作するので、インジェクターは問題なく動作すると思います...

これらのプロセスに注入できない理由は何ですか?

2
Shuzheng

実行中のcalc.exeのプロセスID(pid)でPowerShell Get-ProcessMitigationコマンドを実行します。

PS> Get-ProcessMitigation -Id <calc_pid>

Microsoft Signed Librariesのみをロードすることが通知されます。

MicrosoftSignedOnly:ON

これはWindows 10の新機能です。

1
ojblass