Erhalte ExternalInterface Definitionen in Javascript

9

Gibt es eine Möglichkeit, eine Liste der exponierten Funktionen von einem Flash-Objekt zu erhalten? Sie können beispielsweise eine Liste aller Methoden in einem Objekt abrufen, indem Sie Folgendes ausführen:

%Vor%

Das einzige Problem ist, dass dadurch keine über die API ExternalInterfaces registrierten Methoden verfügbar gemacht werden. Ich kann versuchen zu sehen, ob die Funktion existiert ( object['method'] ) und es sagt mir, dass es eine Funktion ist, aber ich müsste jede existierende Methode auf diese Weise erraten.

HINWEIS: Offensichtlich habe ich keinen Zugriff auf das ActionScript.

    
Jamal Fanaian 12.01.2010, 21:03
quelle

5 Antworten

2

Schlagen Sie einfach diese Frage, ein bisschen zu spät es scheint, aber ich werde trotzdem eine Antwort posten;) Mit IE10 (Windows 7) funktionierte es vollkommen in Ordnung für mich, alle meine Methoden wie folgt aufzulisten:

%Vor%

Beachten Sie, dass dies in Chrome oder Firefox und nur mit der genauen Regexp nicht funktioniert hat, da IE10 keinen "nativen Code" meldet wie die anderen Browser.

    
Tobias 17.06.2013 11:19
quelle
1

Das Problem ist noch schlimmer: Die Informationen sind in ActionScript nicht verfügbar. Sie registrieren eine neue Funktion als ExternalInterface.addCallback('foo', foo) und Sie können bereits registrierte Rückrufe nicht auflisten.

    
newtover 20.04.2010 21:59
quelle
1

Nur eine Vermutung, aber sehen Sie, ob es funktioniert. Alle ExternalInterface-Funktionen sollten im globalen Namespace definiert sein. Versuchen Sie, die SWF-Datei in eine HTML-Seite einzubetten und alle Javascript-Funktionen für die Seite zu aktivieren, nachdem die Seite geladen wurde. Liste der globalen benutzerdefinierten Funktionen in JavaScript?

Die Liste der Funktionen sollte die in der SWF-Datei definierte Liste sein.

    
Abhinav 28.04.2010 10:35
quelle
0

Ich schätze, der einzige Weg ist es, den SWF-Datei-Bytecode zu analysieren und zu versuchen, die Aufrufe von ExternalInterface.addCallback method zu sammeln.

Ссылка

    
zproxy 27.04.2010 18:03
quelle
-1

Mein Instinkt ist nein, ExternalInterface ist im Wesentlichen eine Blackbox oder ein schwarzer Briefkasten, man steckt Dinge durch und manchmal kommen Dinge zurück, aber man kann die Tür nicht öffnen, um zu sehen, was drin ist.

Ohne Dokumentation darüber, was in der SWF veröffentlicht wurde, ist der einzige andere Vorschlag, die swf zu dekompilieren, um einen Blick auf die Quelle zu werfen.

    
jolyonruss 15.04.2010 09:35
quelle