web-dev-qa-db-ja.com

Windowsテーマファイル(aero.msstyles)は、リソース、特にUIスクリプトにスパイウェアをサイドロードできますか?

ショートバージョン:トピック

詳細バージョン:

Windowsに特定のサードパーティテーマを使用したい。私はすでに、テーマのウィンドウの制限を無効にするために自分でコンパイルしたオープンソースソリューションを使用しています。

以前は、DLLに付属するサードパーティのテーマに関連するmod(たとえば、ログインuiにはauthui.dll、またはシステムアイコンを変更するにはimageres.dll)を使用する場合、不明なDLLのテーマ関連リソースをコピーするだけで、不明なDLLの使用を回避していました(ビットマップ、アイコングループ、UIスクリプトなど)それは未使用のMS Dllに相当します。私はこれをリソースグラフティングと呼びます。リソースは変更されますが、DLLまたはexeの実行可能要素はそのままです。

インストールしたいテーマに戻り、sha256ハッシュを使用して、リソースハッカーによっても変更可能なaero.msstylesのみを決定しました。だから私はいつもと同じことをし、サードパーティのテーマからウィンドウの独自のaero.msstylesにリソースを転送しました。問題は、私がその内容を読んだり、知ることができないタイプのリソースに遭遇したことです。 VARIANTと呼ばれます。 VMで行われたいくつかの実験から、リソースハッカーが逆コンパイルできないのは、ある種のバイナリUIスクリプトのようです。私は通常、転送するUIスクリプトを読み取ることができるのが好きですが、これを使用して読み取ることはできません。

これは実際のセキュリティリスクを構成しますか? UIスクリプトをある種のエクスプロイトでサイドロードできますか?テーマファイル(msstyle)の機能はシステムUIの外観を調整することであるため、私にはありそうにありませんが、テーマシステム全体の内部動作について十分に理解できていません。仮想マシンからテーマを削除する前に、別の視点を得ると思いました。

3
thebunnyrules

VBinDiffを使用して、変更されたVARIANT/NORMALバイナリの16進コードを元のテーマの16進コードと比較しました。 binhexをコピーして、WinMergeと比較する2つのテキストファイルに保存することもできます。

vBinDiffとWinMergeは、バイナリに加えられた変更と追加/減算を強調表示し、それらを並べて表示します。私は違いを読みましたが、それらの90%は4オクタル(4バイト)以下でした。これは通常、16進エディターを使用して色を変更するときに予想されるものです。最大の相違は、追加された32バイトのコードでした。

このような追加については、2つの説明が考えられます。(1)作成者が追加の画像リソースを追加し、それらを参照するために必要なエントリを追加した、(2)挿入された不要なコードの種類がある。

2の可能性に対処するために、小さなトロイの木馬コードがどのように取得できるかを調べるために検索を行いました。 UIスクリプトをコンパイルした場合、トロイの木馬が32バイトに詰め込まれた可能性はどのくらいありますか? DOS時代の古い17バイトのウイルスと呼ばれるトリビアルウイルスの言及をいくつか見つけましたが、既知の動作を考えるとすぐに明らかになるため、すぐに無視しました。バックドア機能とダウンロード機能を備えた本格的なトロイの木馬としては、2012年に発見された最小の20kb(トロイの木馬)です。Catchy32もあり、これはまだトロイの木馬と見なされていますが、より単純で非常に特殊な機能を備えており、約580バイトです。 ( 参照 )。この情報に基づいて、32バイトのコードでコードをスリップする可能性は非常に低い(不可能ではないにしても)ことを確認し、問題のリソースがクリーンであることを確認しました。

ちなみに、これは私が尋ねた質問には答えませんが、かなり近いです。共有したいと思いました。

3
thebunnyrules