首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

奇葩的Adobe Flash Player安装流程

☆ 离线安装包的安装过程

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\

后面是别的事。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180515G0ZBNV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券