☆ 离线安装包的安装过程
0) 29.0.0.171版离线安装包
Firefox版
http://fpdownload.macromedia.com/get/flashplayer/pdc/27.0.0.187/install_flash_player.exe
IE版
http://fpdownload.macromedia.com/get/flashplayer/pdc/27.0.0.187/install_flash_player_ax.exe
Chrome版
http://fpdownload.macromedia.com/get/flashplayer/pdc/27.0.0.187/install_flash_player_ppapi.exe
我维护了某些常用软件的离线安装包下载链接:
http://scz.617.cn/resource/201503041155.txt
1) 奇葩转向
从中国大陆地区访问:
https://get3.adobe.com/flashplayer/update/activex/?source=2680
会被301到:
https://flash.2144.com/?activex
下面分别是不挂代理、挂代理时的情形:
$ curl --ciphers DEFAULT --compressed -ksL -I ...
HTTP/1.1 301 Moved Permanently
Server: AkamaiGHost
Content-Length: 0
Location: https://flash.2144.com/?activex
Date: Tue, 15 May 2018 02:21:47 GMT
Connection: keep-alive
Network_Type:
Throughput: vhigh
Country_Code: CN
$ curl --socks5 :
--ciphers DEFAULT --compressed -ksL -I ...
HTTP/1.1 200 OK
Server: JRun Web Server
Content-Language: en-US
Content-Language: en-US
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: private, no-cache, no-store
Date: Tue, 15 May 2018 02:23:26 GMT
Content-Length: 20
Connection: keep-alive
Set-Cookie: SETTINGS.LOCALE=en%5Fus; HttpOnly;domain=.adobe.com;expires=Thu, 07-May-2048 02:23:26 GMT;path=/cfusion/
Network_Type: mobile
Throughput: vhigh
Country_Code: XX
这还不算最奇葩的。假设挂海外代理下载了IE版离线安装包(29.0.0.171):
http://fpdownload.macromedia.com/get/flashplayer/pdc/29.0.0.171/install_flash_player_ax.exe
双击执行:
install_flash_player_ax.exe
你妹啊,居然会去访问URL:
https://get3.adobe.com/flashplayer/update/activex/?source=2680
这个行为导致默认浏览器弹出,最终转向2144网站。明明有一个离线安装包在我的面前,但无法进入正常安装流程。表面上看,不从2144下载"定制"安装包,是无法继续的。
有些阅读障碍症患者会以为本文炒冷饭,在说如何避免重定向到2144。针对这类患者,强调一下,前面说的已经是大份的离线安装包,不是那种小份的在线安装包。
Adobe在2017年宣布,将于2020年停止开发和分发Flash浏览器插件。显然,Adobe在此之后决定疯狂一把,与2144配合着割韭菜,能割一茬是一茬,如果用户不爽了,正好加速Flash的消亡。
2) 利用PFW禁止安装包联网
bluerust发现,利用PFW禁止install_flash_player_ax.exe联网,就能正常安装。现象是,这货试图联网,挣扎了好一会儿,发现无法成功,然后无奈地继续早期那种正常安装流程。Win7之后的PFW都可以做这个操作,不需要第三方软件。
部分读者看到这里可以打住了。好奇心比较强的,继续,后面介绍如何不用PFW完成安装。
3) 利用调试器禁止安装包联网
以IE版离线安装包(29.0.0.171)为例。
用Process Monitor观察install_flash_player_ax.exe,它会创建子进程:
iexplore.exe
调用栈回溯中出现临时文件:
C:\Windows\SysWOW64\Macromed\Temp\...\fpb.tmp
调用栈上出现:
install_flash_player_ax+0xc329
在IDA中能搜到"fpb.tmp",用IDA x64可以正常搜这个字符串,用IDA x86搜这个字符串时会僵死。顺着"fpb.tmp"的交叉引用定位其所在函数:
Morpheme+0x11083
cdb -noinh -snul -hd -o -xe ld:ntdll install_flash_player_ax.exe
在cdb里install_flash_player_ax的模块名是Morpheme。
断点命中时查看调用栈回溯:
栈顶的函数引用了"fpb.tmp"。在IDA中用F5简单看了看各层函数,在0x000d19e4低址方向看到如下代码:
F5看到的是:
我开了个脑洞,在调试器里动态Patch,让a4恒为0:
cdb -noinh -snul -hd -o -g -G -xi ld -xe cpr -c "bu Morpheme+0x19cd \"eb @ebp+0x9c 0;gc\";g" install_flash_player_ax.exe
选中"Morpheme+0x19cd",纯粹是感觉,并不知道a4的本来涵义,只是简单地不想让流程进入sub_D183F(),避免与"fpb.tmp"产生交集。
这次不会试图访问:
https://get3.adobe.com/flashplayer/update/activex/?source=2680
于是也不会转去2144。安装结束时会碰上错误提示:
然后告诉你,安装遇到错误
不要理它们,实际上Flash已经安装成功,"添加删除"里有,用IE实测Flash有效。
试了一下,静态Patch也可以:
$ fc /b old new
00000160: C7 C1
00000161: 67 D8
00000162: 37 36
00000DD4: 74 EB
实际只Patch了1个字节,把jz变成jmp。
☆ 安装旧版Flash
有时因故需要安装旧版Flash,比如29.0.0.140版,此时官方最新版是29.0.0.171。你会碰上错误提示:
这是如下注册表项惹的祸:
0xab就是171,表示当前官方最新版是29.0.0.171,小于这个数的旧版无法正常安装。只需要手工修改这个数,就可以安装旧版Flash。
reg add "HKLM\SOFTWARE\Macromedia\FlashPlayer\SafeVersions" /v "29.0" /t REG_DWORD /d 140 /f
reg query "HKLM\SOFTWARE\Macromedia\FlashPlayer\SafeVersions" /v "29.0"
reg add "HKLM\SOFTWARE\Wow6432Node\Macromedia\FlashPlayer\SafeVersions" /v "29.0" /t REG_DWORD /d 140 /f
reg query "HKLM\SOFTWARE\Wow6432Node\Macromedia\FlashPlayer\SafeVersions" /v "29.0"
实际起作用的是Wow6432Node下的SafeVersions。
Archived Flash Player versions
https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
Uninstall Flash Player For Windows
https://helpx.adobe.com/flash-player/kb/uninstall-flash-player-windows.html
https://fpdownload.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
我猜官方的"uninstall_flash_player.exe -uninstall"会处理SafeVersions。顺便看了一眼Flash涉及的目录:
C:\Windows\System32\Macromed\Flash\
C:\Windows\SysWOW64\Macromed\Flash\
%appdata%\Adobe\Flash Player\
%appdata%\Macromedia\Flash Player\
后面是别的事。
领取专属 10元无门槛券
私享最新 技术干货