マイクラの新インストーラーについて調べてみた
マインクラフトのインストーラーが新しくなったという話を聞いたので、うちのWindows 2000で色々調べてみました
以下分かった事です。
・ダウンロードできる MinecraftInstaller.msi は 2015年1月のまま
・なのでインストールされるJava 8 は Update 25 のまま
・自動インストールされる Minecraft.exe は以下の物
http://launcher.mojang.com/mc/launcher/win/7dbb83a4ffb116a3c37230ec727e30298990c365/Minecraft.exe
・起動される MinecraftLauncher.exe が Windows 2000 互換モードだと強制的にクラッシュさせられる
・起動される MinecraftLauncher.exe が Windows 7 互換モードだと新インストーラーがダウンロードされる
・ダウンロードされた 新ランチャーは MinecraftLauncher.exe が Launcher.dll を動的に呼び出して起動する。
・新ランチャーはChrome コンポーネントを使っているので libcef.dll が配下のフォルダに存在する
・バージョンを調べると 3.2840.1511.0、Windows 7以降の専用命令てんこ盛りバージョン。
・リンクしている関係上 CEF 3.2704.1434 なら使えるはずなので入れてみる。
L100A160F: lea eax,[ebp-000000FCh] mov dword ptr [ebp-04h],FFFFFFFFh push eax call SUB_L100B4740 // <- 使ってるCEFのライブラリバージョンをチェックして // 第一引数にライブラリアドレスを格納。 // バージョンが違ってたら NULLが入る add esp,00000004h call [KERNEL32.dll!GetCommandLineW] mov dword ptr [ebp-1Ch],L1016FF20 mov dword ptr [ebp-18h],00000000h mov byte ptr [ebp-14h],00h test eax,eax jz L100A1668 push eax lea ecx,[ebp-48h] call SUB_L10098D40 push eax lea ecx,[ebp-1Ch] call SUB_L100A0F10 mov eax,[ebp-34h] cmp eax,00000008h jc L100A1668 inc eax lea ecx,[ebp-48h] push eax push [ebp-48h] call SUB_L1000D400 L100A1668: mov ecx,[ebp-000000FCh] lea edx,[ebp-1Ch] push edx mov eax,[ecx] //ライブラリバージョンが違ってたら、 //エラーもなくクラッシュする素敵仕様 call [eax+10h] |
・Chromium Embedded Framework のバージョンをチェックして、違っていたら、有無を言わせずクラッシュさせる素敵仕様であることが発覚。(例えば、 system32 に別バージョンのCEF をインストールをインストールしていれば環境によってはクラッシュする)
つまり、
・MinecraftLauncher.exe を Vista 未満の互換モードで起動すると古い奴がそのまま使える。
・Java は 8 Update 25をダウンロードしてくれる素敵仕様のまま
・新 ランチャーはChromium Embedded Framework を使ってるけど、ランチャー自体がバッファーチェックすらしないゴミのような仕様。セキュリティホールもあると思われる。
・新ランチャーが手抜きなのは確実(ファイルの作成日時は2017/02/09 15時)
・インストーラーフォルダに、プログラムのインポート ライブラリ (.lib) とエクスポート ファイル (.exp) も同梱してくれる親切設計!(要するにゴミファイル)
やっぱり、マイクロソフトが買収すると、何もかもゴミになりますね・ω・!
ひどい・・・
ランチャーが新しくなることで、悪くなってしまうとは
ひどい・・・
ランチャーが新しくなることで、悪くなってしまうとは