On 8/29/05, Geoff Stearns <[EMAIL PROTECTED]> wrote:
> url doesn't work for me either... got a working one?
>
> Taggart, Damian wrote:
> > http://mm-en.com/damian/blog/src/autoUpdater.as
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > On Behalf Of Geoff Stearns
> > Sent: Monday, August 29, 2005 9:49 AM
> > To: Open Source Flash Mailing List
> > Subject: [osflash] decompiling the expressinstall updater
> >
> > has anyone taken a look at the express install updater swf in an
> > actionscript viewer or othwerwise decompiled it to see what makes it
> > tick?
> >
> > might be interesting to see how they trigger the upgrade proccess.
> >
> > http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/auto
> > Updater.swf
> >
> >
> > _______________________________________________
> > osflash mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/osflash_osflash.org
> >
> > _______________________________________________
> > osflash mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/osflash_osflash.org
>
> _______________________________________________
> osflash mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/osflash_osflash.org
>
Action Script Viewer 4.086
autoUpdater.swf
SWF version : 6
Compressed : Yes
Width : 215
Height : 138
Frame rate : 12
Frame count : 1
Background color : #FFFFFF
Bounding rectangle : (0,0) (215,138)
Center : (107.5,69)
----------------------------------------------------------------------
Frame 1
----------------------------------------------------------------------
function initOldPlayerDialog() {
if (DEBUG) {
valueText.text = valueText.text + "\ninitOldPlayerDialog";
}
this.attachMovie("block", "blocker", 12000);
blocker._width = 10000;
blocker._height = 10000;
blocker.useHandCursor = false;
this.attachMovie("blockerText", "blockerText", 12001);
this.blockerText.blockerTextObj.html = true;
var localizedText_en = "Express Install is not supported by this
version of the Flash Player. To upgrade, please visit:<BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player Download
Center.</A></U></FONT>";
var localizedText_de = "Eine Express-Installation wird von dieser Flash
Player-Version nicht unterstützt. Für eine Aktualisierung besuchen Sie bitte
das <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player
Download-Center.</A></U></FONT>";
var localizedText_fr = "L\'installation expresse n\'est pas prise en
charge par cette version de Flash Player. Pour procéder à la mise à niveau,
consultez le <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centre de téléchargement
de Macromedia Flash Player.</A></U></FONT>";
var localizedText_es = "En esta versión de Flash Player no se admite la
instalación rápida. Para obtener una actualización, visite el <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centro de descargas de
Flash Player.</A></U></FONT>";
var localizedText_it = "L\'installazione rapida non è supportata in
questa versione di Flash Player. Per effettuare l\'aggiornamento, visitare il
<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centro Download di Flash
Player.</A></U></FONT>";
var localizedText_jp = "???????? Flash Player
??????????????????????????????????????????????????????<BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer_jp\'>Flash Player
??????????</A></U></FONT>";
var localizedText_ko = "? ??? Flash Player??? Express ??? ???? ????.
???????? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player ????
??</A></U></FONT>? ??????.";
var localizedText_cn = "??? Flash PLayer ????????????,??? <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player
?????</A></U></FONT>";
var localizedText_tw = "?????????????? Flash Player???? <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player
?????</A></U></FONT>";
var langText = eval ("localizedText_" + updateLang);
this.blockerText.blockerTextObj.htmlText = langText;
blocker.onPress = function () {
};
}
function initUnsupportedDialog() {
if (DEBUG) {
valueText.text = valueText.text + "\ninitUnsupportedDialog";
}
this.attachMovie("block", "blocker", 12000);
blocker._width = 10000;
blocker._height = 10000;
blocker.useHandCursor = false;
this.attachMovie("blockerText", "blockerText", 12001);
this.blockerText.blockerTextObj.html = true;
var localizedText_en = "You are trying to install Macromedia Flash
Player 8 on an unsupported operating system. For system requirements, please
visit:<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Flash
Player System Requirements.</A></U></FONT><BR><BR>For Flash Player 7, please
visit:<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player Download
Center.</A></U></FONT>";
var localizedText_de = "Sie versuchen gerade, Macromedia Flash Player 8
auf einem nicht unterstützten Betriebssystem zu installieren. Die
Systemvoraussetzungen finden Sie auf der Seite <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Flash
Player-Systemvoraussetzungen.</A></U></FONT><BR><BR>Die Voraussetzungen für
Flash Player 7 finden Sie auf der Seite <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer_de\'>Flash Player
Download-Center.</A></U></FONT>";
var localizedText_fr = "Votre système d\'exploitation ne prend pas en
charge Macromedia Flash Player 8. Pour prendre connaissance de la configuration
requise, consultez la page<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Configuration
système requise pour Flash Player.</A></U></FONT><BR><BR>Pour Flash Player 7,
consultez la page<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centre de téléchargement
de Macromedia Flash Player.</A></U></FONT>";
var localizedText_es = "Está intentando instalar Macromedia Flash
Player 8 en un sistema operativo no admitido. Para ver los requisitos del
sistema, visite <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Requisitos
del sistema para Flash Player.</A></U></FONT><BR><BR>Para Flash Player 7,
visite el <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centro de descargas de
Flash Player.</A></U></FONT>";
var localizedText_it = "Si sta tentando di installare Macromedia Flash
Player 8 in un sistema operativo non supportato. Per conoscere i requisiti di
sistema, consultare i <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Requisiti
di sistema di Flash Player.</A></U></FONT><BR><BR>Per Flash Player 7, visitare
il <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Centro Download di
Macromedia Flash Player.</A></U></FONT>";
var localizedText_jp = "???????????????????????? Macromedia Flash
Player 8 ?????????????????????????????????????????????<BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/jp/software/flashplayer/productinfo/systemreqs/\'>Flash
Player ?????????</A></U></FONT><BR><BR>Flash Player 7
????????????????????????<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer_jp\'>Flash Player
??????????</A></U></FONT>";
var localizedText_ko = "?? ?? ?? ?? ????? Macromedia Flash Player 8?
??? ???? ????. ??? ?? ??? ??? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Flash
Player ??? ?? ??</A></U></FONT>? ??????.<BR><BR>Flash Player 7? ?? ??? ???
???<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player ????
??</A></U></FONT>? ??????.";
var localizedText_cn = "???????????? Macromedia Flash Player
8??????????,??? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Flash
Player ?????</A></U></FONT><BR><BR>?? Flash Player 7 ???,??? <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player
?????</A></U></FONT>";
var localizedText_tw = "?????? Flash Player 8 ???? Flash Player 8
?????????????????,??? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/software/flashplayer/productinfo/systemreqs/\'>Flash
Player ?????</A></U></FONT><BR><BR>???? Flash Player 7 ??,??? <BR><FONT
COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/go/getflashplayer\'>Flash Player
?????</A></U></FONT>";
var langText = eval ("localizedText_" + updateLang);
this.blockerText.blockerTextObj.htmlText = langText;
blocker.onPress = function () {
};
}
function initCompletionDialog() {
var i = 0;
this.onEnterFrame = function () {
if (i == 58) {
this.attachMovie("block", "blocker", 12000);
blocker._width = 10000;
blocker._height = 10000;
blocker.useHandCursor = false;
this.attachMovie("blockerText", "blockerText", 12001);
this.blockerText.blockerTextObj.html = true;
var localizedText_en = "Please close this browser window to
complete Flash Player installation.<BR><BR>If you are experiencing problems
with installation please visit the <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Macromedia Flash Player
Support Center.</A></U></FONT>";
var localizedText_de = "Schließen Sie dieses Browserfenster, um
die Flash Player-Installation abzuschließen.<BR><BR>Falls Sie Probleme bei der
Installation haben, besuchen Sie bitte das <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Macromedia Flash Player
Support Center.</A></U></FONT>";
var localizedText_fr = "Pour terminer linstallation de Flash
Player, vous devez fermer ce navigateur.<BR><BR>En cas de problèmes
dinstallation, visitez le <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Centre dassistance de
Macromedia Flash Player.</A></U></FONT>";
var localizedText_es = "Cierre esta ventana del navegador para
completar la instalación de Flash Player.<BR><BR>Si tiene problemas con la
instalación, visite el <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Centro de soporte de
Macromedia Flash Player.</A></U></FONT>";
var localizedText_it = "Chiudere la finestra del browser per
completare l\'installazione di Flash Player.<BR><BR>Se si riscontrano problemi
durante l\'installazione, visitare il <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Centro di supporto per
Macromedia Flash Player.</A></U></FONT>";
var localizedText_jp = "????????????????Flash Player
?????????????????<BR><BR>???????????????????<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/jp/support/flashplayer/\'>Macromedia Flash
Player ????????</A></U></FONT>????????????";
var localizedText_ko = "Flash Player ??? ????? ? ?????
?????.<BR><BR>?? ? ??? ??? ?? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Macromedia Flash Player
?? ??</A></U></FONT>? ??????.";
var localizedText_cn = "???????????? Flash Player
???<BR><BR>???????????,???<BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Macromedia Flash Player
?????</A></U></FONT>";
var localizedText_tw = "??????????? Flash
Player????<BR><BR>???????????,??? <BR><FONT COLOR=\'#0000FF\'><U><A
HREF=\'http://www.macromedia.com/support/flashplayer/\'>Macromedia Flash
?????</A></U></FONT>";
var langText = eval ("localizedText_" + updateLang);
this.blockerText.blockerTextObj.htmlText = langText;
blocker.onPress = function () {
};
}
i++;
};
}
function checkPlayer() {
var _local2 = System.capabilities.os;
if (DEBUG) {
valueText.text = valueText.text + ("\nOS=" + _local2);
}
if (DEBUG) {
valueText.text = valueText.text + (" OSSub=" +
_local2.substring(0, 5));
}
var _local5 = System.capabilities.version;
var _local7 = _local5.split(",")[2];
var _local3 = _local5.split(",")[0];
var _local4 = _local3.substring(0, _local3.indexOf(" ")).toLowerCase();
var _local1 = 0;
if (_local4 == "MAC") {
var _local6 = _local2.substr(7, 2);
if (DEBUG) {
valueText.text = valueText.text + (("\nMac VERSION=" + _local6)
+ newline);
}
if (_local6 < 10) {
if (DEBUG) {
valueText.text = valueText.text + "Mac OS Classic is
Unsupported\n";
}
_local1 = kUnsupportedPlayer;
}
} else {
if (_local2 == "Windows NT") {
_local1 = kUnsupportedPlayer;
}
if (_local2 == "Windows 95") {
_local1 = kUnsupportedPlayer;
}
if (((_local2.substring(0, 5) == "Linux") || (_local4 == "lnx")) ||
(_local4 == "lin")) {
_local1 = kOldPlayer;
}
if (_local2.substring(0, 3) == "UNIX") {
_local1 = kOldPlayer;
}
}
_local3 = _local3.substr(_local3.indexOf(" ") + 1);
var _local8 = 6;
var _local9 = 65;
if ((_local7 < _local9) && (_local3 <= _local8)) {
_local1 = kOldPlayer;
}
return (_local1);
}
function checkServerVersion() {
var _local10 = System.capabilities.version;
var _local13 = _local10.split(",")[2];
var _local11 = _local10.split(",")[0];
var _local8 = _local11.substring(0, _local11.indexOf("
")).toLowerCase();
if (DEBUG) {
valueText.text = valueText.text + (("platform=" + _local8) +
newline);
}
var _local4 = System.capabilities.playerType;
if (_local4 == undefined) {
_local4 = _root.MMplayerType;
}
if (DEBUG) {
valueText.text = valueText.text + (("PLAYERTYPE=" + _local4) +
newline);
}
if (DEBUG) {
valueText.text = valueText.text + (("doctitle=" + MMdoctitle) +
newline);
}
if ((_local4 == "External") || (_local4 == "StandAlone")) {
return (undefined);
}
if (_local4 == "ActiveX") {
pt = "ax";
}
if (_local4 == "PlugIn") {
pt = "pl";
}
var _local12 = Math.random();
var _local9 =
(((((("http://fpdownload.macromedia.com/get/flashplayer/update/maelstrom/xml/version_"
+ updateLang) + "_") + _local8) + "_") + pt) + ".xml?") + _local12;
if (DEBUG) {
_local9 =
(((((("http://lab1.macromedia.com/pub/flashplayer/update/current/xml/version_"
+ updateLang) + "_") + _local8) + "_") + pt) + ".xml?") + _local12;
}
if (DEBUG) {
valueText.text = valueText.text + (("gVersionURL=" + _local9) +
newline);
}
gXML = new XML ();
gXML.ignoreWhite = true;
gXML.onLoad = function (success) {
if (success) {
var _local4 = ClientVersion();
var _local5 = ServerVersion(this);
var _local2 = _local4.length;
if ((_local2 != 4) || (_local2 != _local5.length)) {
return (undefined);
}
var _local3 = false;
i = 0;
while (i < _local2) {
if (_local5[i] > _local4[i]) {
_local3 = true;
break;
}
i++;
}
if (_local3 == true) {
startInstall();
}
} else {
return (undefined);
}
};
gXML.load(_local9);
}
function ClientVersion() {
var _local1 = System.capabilities.version;
if (DEBUG) {
valueText.text = valueText.text + (("localVer=" + _local1) +
newline);
}
_local1 = _local1.substring(_local1.indexOf(" ") + 1, _local1.length);
return (VersionStrToArray(_local1));
}
function ServerVersion(rootNode) {
var _local1 = rootNode.firstChild;
_local1 = _local1.firstChild;
while (_local1) {
if (_local1.nodeName == "update") {
if (DEBUG) {
valueText.text = valueText.text + (("remoteVer=" +
_local1.attributes.version) + newline);
}
return (VersionStrToArray(_local1.attributes.version));
}
_local1 = _local1.nextSibling;
}
return (undefined);
}
function VersionStrToArray(v) {
var _local2 = v.split(",");
var _local3 = _local2.length;
var _local1;
if (_local3 != 4) {
return (undefined);
}
_local1 = 0;
while (_local1 < _local3) {
_local2[_local1] = Number (_local2[_local1]);
_local1++;
}
return (_local2);
}
function startInstall() {
switch (checkPlayer()) {
case kInstallOK :
if (gCanInstall) {
var redirectSO = SharedObject.getLocal("redirectSO", "/");
if (DEBUG) {
valueText.text = valueText.text + ("DOWNLOAD=fpUpdate_"
+ pt);
}
installService = new System.Product("fpUpdate" + pt);
installService.onStatus = function (info) {
if (DEBUG) {
valueText.text = valueText.text + ((" code=" +
info.code) + newline);
}
switch (info.code) {
case "Download.Complete" :
redirectSO.data.url = redirectURL;
redirectSO.data.doctitle = MMdoctitle;
if (DEBUG) {
valueText.text = valueText.text + (("SET
redirectSO=" + redirectURL) + newline);
}
redirectSO.flush();
installService.launch();
initCompletionDialog();
_parent.installStatus("Download.Complete");
break;
case "Download.Cancelled" :
redirectSO.data.url = eval("NULL");
redirectSO.data.doctitle = eval("NULL");
redirectSO.flush();
redirectSO.clear();
_parent.installStatus("Download.Cancelled");
if (DEBUG) {
valueText.text = valueText.text + "Canceled
- Shared Object Cleared!\n";
}
break;
case "Download.Failed" :
redirectSO.data.url = eval("NULL");
redirectSO.data.doctitle = eval("NULL");
redirectSO.flush();
redirectSO.clear();
_parent.installStatus("Download.Failed");
if (DEBUG) {
valueText.text = valueText.text + "Failed -
Shared Object Cleared!\n";
}
break;
}
};
installService.download();
}
break;
case kOldPlayer :
initOldPlayerDialog();
break;
case kUnsupportedPlayer :
initUnsupportedDialog();
break;
}
}
function startUpdate() {
if (DEBUG) {
valueText.text = valueText.text + ((newline + _url) + newline);
}
if (DEBUG) {
valueText.text = valueText.text + (("REDIRECT=" + redirectURL) +
newline);
}
checkServerVersion();
}
var DEBUG = false;
if (DEBUG) {
valueText.text = "Debug Mode!\n";
}
System.security.allowDomain(_parent._url);
gCanInstall = false;
kInstallOK = 0;
kOldPlayer = 1;
kUnsupportedPlayer = 2;
pt = "";
var language = System.capabilities.language;
var updateLang = language;
if (DEBUG) {
valueText.text = valueText.text + (("Language=" + language) + newline);
}
if (language == "ja") {
updateLang = "jp";
}
if (language == "zh-CN") {
updateLang = "cn";
}
if (language == "zh-TW") {
updateLang = "tw";
}
if (language == "en-US") {
updateLang = "en";
}
if (language == "sv") {
updateLang = "en";
}
if (language == "pt") {
updateLang = "en";
}
if (language == "pl") {
updateLang = "en";
}
if (language == "hu") {
updateLang = "en";
}
if (language == "cs") {
updateLang = "en";
}
if (language == "tr") {
updateLang = "en";
}
if (language == "fi") {
updateLang = "en";
}
if (language == "da") {
updateLang = "en";
}
if (language == "no") {
updateLang = "en";
}
if (language == "nl") {
updateLang = "en";
}
if (language == "ru") {
updateLang = "en";
}
if (language == "xu") {
updateLang = "en";
}
switch (checkPlayer()) {
case kInstallOK :
gCanInstall = true;
break;
case kOldPlayer :
initOldPlayerDialog();
gCanInstall = false;
break;
case kUnsupportedPlayer :
initUnsupportedDialog();
gCanInstall = false;
break;
}
var redirectURL = "http://www.macromedia.com/software/flash/about/";
stop();
----------------------------------------------------------------------
Instance Names
----------------------------------------------------------------------
"valueText" Frame 1 Symbol 7 EditableText
"blockerTextObj" Symbol 6 MovieClip [blockerText] Frame 1 Symbol
5 EditableText
----------------------------------------------------------------------
Library
----------------------------------------------------------------------
Symbol 1 Graphic Used by:2
Symbol 2 MovieClip Uses:1 Used by:3
Symbol 3 MovieClip [block] Uses:2
Symbol 4 Font Used by:5 7
Symbol 5 EditableText Uses:4 Used by:6
Symbol 6 MovieClip [blockerText] Uses:5
Symbol 7 EditableText Uses:4 Used by:Timeline
----------------------------------------------------------------------
Special Tags
----------------------------------------------------------------------
ExportAssets (56) Timeline Frame 1 Symbol 3 as "block"
ExportAssets (56) Timeline Frame 1 Symbol 6 as "blockerText"
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org