Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[PHP] Grafiken Base64-encodiert verwenden

- - - - -

  • Bitte melde dich an um zu Antworten
Keine Antworten in diesem Thema

#1
B1nary

B1nary

    Samurai

  • Elite Member
  • Likes
    489
  • 506 Beiträge
  • 346 Bedankt
Moin Community,

hier mal eine kleine Anleitung, wie ihr Grafiken innerhalb von PHP-Dokumenten Base64-encodiert verwenden könnt. Das bedeutet im Konkreten, dass Grafiken nicht mehr via

<img src="image.png" />

eingebunden werden, sondern als "Text-String" im Dokument stehen. Dies bietet den Vorteil, dass Grafiken nicht mehr extra zu einem jeweiligen Dokument mitgeliefert werden müssen, sondern man aus 1x PHP und 7x zugehörigen PNG-Grafiken eine PHP-Datei machen kann.

Vorteil:
Wie gesagt, die kompakte Gestaltung eines Projektes (z.B. sehr sinnvoll bei Web-Shells!!!). Grafiken müssen also nicht mehr verlinkt und mit beigefügt bzw. externe Verlinkungen (aus dem Internet via URL) müssen nicht mehr auf Existenz kontrolliert werden.

Nachteil:
Die Performance leidet natürlich etwas

Was ist Base64?
Base64 beschreibt ein Verfahren zur Kodierung von 8-Bit-Binärdaten (z. B. ausführbare Programme, ZIP-Dateien oder Bilder) in eine Zeichenfolge,
die nur aus lesbaren, Codepage-unabhängigen ASCII-Zeichen besteht.
Quelle: Wikipedia

Script-Snippet
<?php
$images = array('arrow' => 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAA'.
			 'Bl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEsSURBVDjLY/j//z8DJZhhmBuQvdj8a+'.
			 'p8w//xc3U5yTIgeb7h18bNUf/DZ2j8958qz0nQgPyltv9zF5v/TV9o/Ddxrv7fmvWh/1ednvi/ZLX/f9d+'.
			 '8b+23YI8eA0AOvn/hnPT/q89OwWsccXpCf8n7Cn5v/B41/+MpW7/TdvZ/+o2M/LjNADoZLDmvl35/zt3ZP'.
			 '9v3Zb2v2Fz4v+mren/Zxxq/h+zwOa/aj3DH5wGRM/W/L/y1IT/S0/0/l94rOv/vKMdQEOy/k8/1PQ/banH'.
			 'f8VahlfSlQwGOA0InK74z3Oi9D/nftF/1t38/+LmW/2fdrDhf9Jit//ytQzPJSsZtEiKBe1mxq/xC53/y1c'.
			 'zPAFqVic5GoFO/ipXzfxftJJBkeyUKFzOwDm48wIAh5XH+g7drOwAAAAASUVORK5CYII=',
			 'next' => 'Base64 der Grafik next.png usw.');
function show_image($type, $img) {
   global $images;
   $wlist = array('jpg', 'jpeg', 'gif', 'png');
   if (in_array($type, $wlist)):
      header('Content-type: image/'.strtolower($type));
	  header('Cache-control: public');
	  header('Expires: '.date('r', mktime(0, 0, 0, 1, 1, 2050)));
	  header('Cache-control: max-age=604800');
	  header('Last-Modified: '.date('r', filemtime(__FILE__)));
	  return base64_decode($images[$img]);
   else: return 'Das Grafikformat konnte nicht bestimmt werden.';
   endif; }
echo show_image('png', 'arrow');
?>

Vorerst müsst ihr alle verwendeten Grafiken in Base64 dekodieren. Dies könnt ihr mit einem kleinen Script erledigen:
<?php
$imagedata = file_get_contents('pfad/zur/grafik.png');
$base64 = base64_encode($imagedata);
echo $base64;
?>

Den erzeugten Base64-Code fügt ihr dann mit einem entsprechenden, eindeutigen Bezeichner ins Array $image ein.
Die Funktion wird dann mit show_image('Grafikformat', 'Bild-Arrayelement') aufgerufen.

Bei Grafikformat gebt ihr das verwendete Format (z.B. png, jpg, ...) mit. Natürlich könnte sich das PHP auch selbst raussuchen, aber so tun wir dem Script einen Gefallen und sparen die Rechenleistung. Wer das doch gerne hätte, kann sich ja einmal hier reinlesen:

Please Login HERE or Register HERE to see this link!

:) Achtet bei der o.g. Version darauf, dass das übergebene Format in der Whitelist, also im Array $wlist, enthalten sein muss.
Bei Bild-Arrayelement geben wir der Funktion den Bezeichner im Array mit.

Wie gesagt, ich nutze dies v.a. für meine Web-Shells, da ich so immer eine kompakte Datei habe.
hf
  • Cube und hikhack7 gefällt das

Thanked by 1 Member:
hikhack7


  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 23 user(s)


    Alpha63, B1nary, Ch!ller, Cube, cX., FalkE, Flex.Net, hikhack7, Hurenpeter, Julius-K9, kil0, kiwitone, most_uniQue, PHIPU, pongy231, SOCOM, st0rm, stoneserv, sub0, sunrise, Th3xploiterZ, Touch_Freak, Xenio
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.