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のテーマファイルを日本語化したもの」を用いている。