Christian Seiler: safe_mode = Off ?? Wie macht ihr es?

Beitrag lesen

Hallo hawk,

(Setx.exe um Registry Einträge zu lesen, Gsview um PS Dateien in JPG umzuwandeln und eine Exe die eine Zip Datei in eine ausführbare Exe Datei umwandelt.)
Ich glaube nicht das man dies alles mit reinem PHP Code machen könnte.

Wenn Du unter Windows die Registry mit PHP auslesen willst und die COM-Erweiterung installiert hast, dann kannst Du folgendes machen:

$wscript = new COM('WScript.Shell');  
$inhalt = $wscript->RegRead ('HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\sonstwas');

Das verwendet im Endeffekt das WScript.Shell-Objekt, das im Windows Scripting Host enthalten ist. Doku dazu findest Du auf der MSDN-Seite von Microsoft.

Unter Linux würde das natürlich entfallen, da Du unter Linux keine Registry hast, wie es sie unter Windows gibt.

Selbstentpackende Exe-Dateien erstellen ist in meinen Augen auch relativ einfach machbar. Zumindest noch zu der Zeit, als ich mich damit mal beschäftigt habe (ist etwas her) waren selbstextrahierende Exe-Dateien unter Windows nichts anderes als eine normale Exe-Datei, an die hinter den Exe-Teil (der in der Software enthalten war, mit der man diese Dateien erstellt hat) einfach das Archiv (z.B. ZIP) angefügt hat, d.h. im Endeffekt reicht es aus, wenn Du folgendes machst:

$template = file_get_contents ('selbstentpacker_vorlage.exe');  
$zip = file_get_contents ('zipdatei.zip');  
file_put_contents ('ausgabedatei.exe', $template . $zip);

Wie Du an die Roh-Exe-Datei ohne bereits vorhandenes Archiv rankommst, wäre dann allerdings die zweite Frage. Hängt halt alles von der bisherigen Software ab, die diese Exe-Dateien erzeugt, eventuell funktioniert die auch nach einem ganz anderem Schema, als das einfache Schema, das ich kenne, dann würde die Methode von mir natürlich versagen. Aber vielleicht gibt Dir das einen Hinweis, wonach Du für sowas suchen musst.

Zwei von den drei Punkten kann man also mit PHP alleine mit vertretbarem Aufwand realisieren.

Nur mit dem Postscript-Gedöns wirst Du Probleme haben - es ist zwar prinzipiell möglich (PHP ist ja schließlich eine Programmiersprache) einen PS-Interpreter in PHP zu schreiben, mit dem Du dann JPGs generieren kannst, allerdings müsstest Du dann Postscript komplett in PHP implementieren - und das wäre vmtl. zum einen langsam und zum anderen extrem aufwändig.

Viele Grüße,
Christian