14 June 2010

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

マイクロソフト以外のテーマファイルを適用するために、uxtheme.dllなどにパッチを当てる。

ネットにパッチ後のファイルが結構掲載されていたりするが、スパイウエア入りだったりすると怖いので、変更部分をディスアセンブルして吟味した上でシステムファイルを差し替えた。今後、同じ作業をするときのためにパッチ部分の差分をここに置いておく。

■ uxtheme.dll version 6.1.7600.16385 date=2009/07/14, 10:16:18


$ cmp -l org/uxtheme.dll mod/uxtheme.dll | cmp2hex.pl
アドレス 変更前 変更後
000149 8B D4
00014A A5 7D
01C021 81 33
01C022 EC C0
01C023 84 C9
01C024 00 C2
01C025 00 04

■ themeui.dll version 6.1.7600.16385 date=2009/07/14, 10:16:18


$ cmp -l org/themeui.dll mod/themeui.dll | cmp2hex.pl
アドレス 変更前 変更後
000149 54 9D
00014A B2 8A
0421D5 81 33
0421D6 EC C0
0421D7 84 C9
0421D8 00 C2
0421D9 00 04

■ themeservice.dll version 6.1.7600.16385 date=2009/07/14, 10:16:18


$ cmp -l org/themeservice.dll mod/themeservice.dll | cmp2hex.pl
アドレス 変更前 変更後
000149 EF 37
00014A 9D 76
00014B 00 01
003739 81 33
00373A EC C0
00373B 84 C9
00373C 00 C2
00373D 00 04

ちなみに、最後の部分のオペランドは、強制的に関数から抜ける(戻る)コマンドのようだ


$ x86dis -e 0x3738 -s intel < mod/themeservice.dll
00003738 33 C0 xor eax, eax
0000373A C9 leave
0000373B C2 04 00 ret 0x0004