Tom: Aufruf von src="bild.php" funktioniert nicht!!!

Beitrag lesen

Hello,

ich meine: Wenn Linux keinen Unterschied zwischen binär/ascii macht - könnte ich doch theoretisch einfach beispielsweise eine EXE einlesen und ein einzelnes Byte verändern.

Ja, das hat aber nichts mit Linux zu tun, sondern damit, welche Dateifunktionen des Betriebssystems von der Hochsprache (meistens C) weitergereicht werden. C hat die unangenehme Eigenschaft, die Dateisystemfunktionen neu zu erfinden und setzt dabei auf binäres Lesen und Schreiben in der Betriebssystemschicht. Ob die Datei nun binär oder als Textdatei interpretiert wird, entscheidet sich durch Wahl der Funktion in C (und damit acuh in PHP) und nicht durch den Buffertype im OS.

Man kann also in PHP jede Datei als Bytestream einlesen. Ein einzelnes Byte ändern, und zurückschreiben. Man kann sogar

$fp=fopen($dateiname,"r+");  ## Datei zum Lesen und Schreiben öffnen
fseek($fp, $bytenr);         ## Dateizeiger positionieren
fwrite($fp, $neuesbyte, 1)   ## ein einzelnes Byte an $bytenr schreiben
fclose($fp=;

ein einzelnes Byte (oder auch mehrere) ab einer bestimmten Stelle in die Datei schreiben. Probier das doch mal mit ein paar Systemfiles von Deinem Linux. Das nennt sich Dateiroulette. Irgend wann hast Du dann existenzielle Stellen getroffen. Dann ist's vorbei mit Deinem Linux.

Grüße

Tom