06 December 2008

Windows XP SP3のテーマ制限回避(uxtheme.dllパッチ)

Windows XP SP3 で、Microsoft以外のデスクトップ・テーマを用いるための制限を回避するため、C:\Windows\System32\uxtheme.dll を改変して制限を回避する。

好き好き大スキン!WindowsXPスキンスレッド」などの解説サイトでは、「uxtheme.dllにパッチを当てるソフト」へのリンクが掲載されているが、試した限りではすべてリンク切れ。 マイクロソフトの魔の手が…

仕方なく、今回もバイナリエディタを用いて改変を行った。改変後の uxtheme.dll と、オリジナルのuxtheme.dll.org を比較すると次のようになる。

H:\WINDOWS\system32>comp uxtheme.dll uxtheme.dll.org uxtheme.dll と uxtheme.dll.org を比較しています... オフセット 19A9C で比較エラーがあります ファイル1 = 33 ファイル2 = 81 オフセット 19A9D で比較エラーがあります ファイル1 = F6 ファイル2 = EC オフセット 19A9E で比較エラーがあります ファイル1 = 8B ファイル2 = 88 オフセット 19A9F で比較エラーがあります ファイル1 = C6 ファイル2 = 0 オフセット 19AA0 で比較エラーがあります ファイル1 = C9 ファイル2 = 0 オフセット 19AA1 で比較エラーがあります ファイル1 = C2 ファイル2 = 0 オフセット 19AA2 で比較エラーがあります ファイル1 = 8 ファイル2 = A1 オフセット 19AA3 で比較エラーがあります ファイル1 = 0 ファイル2 = 18 ほかのファイルを比較しますか (Y/N)? n

もっとわかりやすく書けば、0x19A9Cからのバイト列を次のように書き換える

「81 EC 88 00 00 00 A1 18」 → 「33 F6 8B C6 C9 C2 08 00」


現在利用中のテーマファイルは、「Longhorn Slateと、Windows Server 2003のテーマファイルを日本語化したもの」を用いている。