2016-07-16 9 views
0

Ich bin völlig neu in Greasemonkey, und ich suchte ziemlich viel nach dem, was ich tun möchte und nichts gefunden habe. Ich mache etwas Whitehat-Hacking für diesen browserbasierten Unity-FPS, und ich versuche, dass die Webseite eine direkt verknüpfte, bearbeitete Kopie der Spieldatei anstelle des normalen Spielclients einbindet. Insbesondere versuche ich, die URL im zweiten Attribut der Funktion UnityObject.embedUnity() in Zeile 335 der Quelle der this Seite zu ändern. Ich finde Greasemonkey ist der Weg dahin.Greasemonkey ersetzen unityObject Quelle in Webseite

Meine Verwirrung kommt von der Tatsache, dass das Anschauen der Quelle (Strg + U) diese Quelle in einer JavaScript-Funktion zeigt, aber die Verwendung des Inspektors in Dev-Tools zeigt das Ergebnis der Funktion in einem Embed-Tag. Ich bin mir nicht sicher, was ich in meinem Greasemonkey-Skript erklären soll. Ich habe nicht die direkte Verbindung haben noch Datei, aber ich versuchte, dieses Skript (was nicht funktioniert) (Google ist nur ein Platzhalter zu sehen, ob der Textersetzung funktioniert):

var tags = document.getElementsByTagName('embed'); tags[0].src = tags[0].src.replace('http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5', 'http://google.com')

Wie würde Ich schreibe ein Skript, um das zu tun?

Antwort

0

Das embed Element wird von Unity Player Js-Code innerhalb <script> Tag der Seite eingefügt, die automatisch ausgeführt wird, wenn der Browser es analysiert.

Firefox hat noch beforescriptexecute Fall, dass Sie das Skript ändern können, bevor es läuft:

document.addEventListener("beforescriptexecute", replacePlayer, true); 
function replacePlayer(e) { 
    var lookFor = 'http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5'; 
    var replaceWith = 'http://google.com'; 
    if (e.target.text.indexOf(lookFor) > 0) { 
     e.target.text = e.target.text.replace(lookFor, replaceWith); 
    } 
} 
Verwandte Themen