[Script] String in EXE-Download anpassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Script] String in EXE-Download anpassen

    Hallo allerseits,
    ich suche nach einer Möglichkeit aus einem PHP-Skript heraus in einer Windows-EXE-Datei, bevor diese von einem Homepage-Besucher runtergeladen wird, einen bestimmten Text-String durch einen andere - gleich langen - zu ersetzten. Dass die EXE-Datei dabei intakt bleibt habe ich bereits lokal mit einem Hex-Editor nachgeprüft.

    Der Sinn des Ganzen ist, dass ich auf meiner Homepage ein kleinen Dowload-Manager (ca. 200KB) anbieten möchte. Dieser soll das eigentliche Programm für den Benutzer runterladen und installieren. Damit der Benutzer nach Start des Download-Managers die gewünschte Download-Adresse nicht manuell eingeben muss, ist diese bereits in der EXE voreingetragen.
    Da ich allerdings mehrere Downloads auf diese Art und Weise anbieten möchte, müsste ich für jeden Download auch eine angepasste Version des Download-Managers hochladen.
    Daher möchte ich ein PHP-Skript einsetzten, dass die EXE-Datei des Download-Managers einließt, darin die Ziel-Adresse anpasst, und die so geänderte Datei an den Browser schickt.

    Gibt es eventuell bereits fertige Skripte die so etwas können? Oder ist eine einfache Umsetzung von Hand möglich?
    Ich freue mich auf eure Ratschläge.

    Ciao,
    Bastian

  • #2
    PHP-Code:
    $exe file_get_contents($filename);
    $exe str_replace('%Platzhalter%''Downloadlink'$exe);

    header(...);
    echo 
    $exe

    Kommentar


    • #3
      Danke, ich denke das dürfte genau das Richtige sein.

      Ich hätte allerdings noch ein paar Fragen:
      - Besteht die Gefahr, dass die str_replace Funktion nicht-ASCII-Zeichen, wie sie in Binär-Dateien vorkommen, beschädigt?
      - Welchen Header muss ich senden, damit der Browser die Datei als EXE-Datei erkennt?
      - Kann ich per Header dem Browser einen Dateinamen übergeben, der vom PHP-Skript abweicht? (Damit der User eine Datei mit der Endung EXE statt PHP abspeichert.)

      Kommentar


      • #4
        Nein, str_replace() ersetzt wirklich nur, was man angibt, alles rundherum bleibt unangetastet.

        Der richtige Content-Type für eine .exe ist application/octet-stream und mit 'Content-Disposition: attachment; filename="installer.exe"' wird der Name des Downloads auf "installer.exe" festgelegt.

        Aber alle Angaben ohne Gewähr.

        Kommentar


        • #5
          OK, vielen Dank. Scheint alles gut zu funktionieren.

          Kommentar

          Lädt...
          X