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