CCLEANER 5.44~5.57 をインストールしようとすると一部の環境でクラッシュするのは Avast! の低品質な広告SDKが原因だった
英語版の Windows 2000 に CCLEANER 5.57を入れる場合問題ないのですが、日本語版にいれようとするとインストールでクラッシュしてしまいました
調べてみると
%temp%\nsz3A.tmp\a\asdk.dll の COM オブジェクト読み込みで失敗したため KERNEL32.DLL のRaiseException をコールしてDLLが自爆して強制終了してることが分かりました
調べてみると asdk.dll は Avast Ad SDK でした。
要するに AVASTの広告用のSDKなのですが、 AVASTは昔 Windows 2000 非対応になる寸前に、インストーラーのOSバージョンチェックで XP 未満だった場合エラーメッセージを出さずにアプリをクラッシュする様な劣悪な機構を搭載していることが知られています
Avast!2014はわざとWin2000でクラッシュさせてることが判明
実際のASDK.DLLのコードがこちらです
L10084030: push ebp mov ebp,esp sub esp,00000010h lea ecx,[ebp-10h] push 00000000h push [ebp+0Ch] push [ebp+08h] call SUB_L10083F40 push L1011A4A0 lea eax,[ebp-10h] push eax call SUB_L1009C30F ←強制クラッシュ INT3 ←強制停止 |
自社製のインストーラーならまだしも、広告用の組み込み用SDKに広告が表示できない環境下では強制的にインストーラーをクラッシュさせる機能を組み込むというのは、ちょっと狂気的なものを感じます。
Error while updating to V5.44.6575 - CCleaner Bug Reporting - CCleaner Community Forums
5.51 installer crashes at WS 2008 R2 - CCleaner Bug Reporting - CCleaner Community Forums
Windows 2000何かに入れる方が悪い!なんて思われるかもしれませんが、この問題は正規の現行OSユーザーの中でも発生しています
Avast! のアプリが如何に劣悪なのかは分かるかと思います( ˘ω˘)
Windows版「CCleaner」のインストーラーに「アバスト」がバンドル - 窓の杜
迂回方法は、インストーラーを使わずポータブル版ZIPを使うことですかね
Comments