[PHP] Fiese PHP Skripte: Obscurity Code
Nils hat zum Verfassen von fiesen PHP Skripten aufgerufen. Dem bin ich natürlich gefolgt.
Zuerst die Frage: Was meint er denn überhaupt? Da ich mir nicht ganz im Klaren war, was Nils mit "fies" meint, habe ich mir überlegt ..
- … das Skript könnte etwas fieses mit dem System anstellen: na ja find ich persönlich jetzt nicht so spannend. Fork Bombs gibts zu genüge und das geht mit Perl sowieso schöner …
- … das Skript könnte einfach extrem schlecht programmiert sein: Lustig ist es ja. Aber auf Kommando schlechten Code zu produzieren ist schwerer als man glaubt *g*
- … das Skript könnte sehr unsicher sein: Na gut, das ist nicht schwer, das sieht man oft genug.
- … das Skript könnte interessante Syntax-Features verwenden und am Ende aussehen wie ein zusammengehacktes, unleserliches PERL-Script: Das klingt doch lustig
Also habe ich mir angesehen, was man in PHP exotisches mit der Syntax anstellen kann und bin auch fündig geworden. Außerdem habe ich selbst noch ein wenig rumporbiert. Ergebnis ist folgender Code.
Wobei ich mir hier auch das Prinzip der "security by obscurity" zu Nutze gemacht habe und das Skript einfach extrem unleserlich geschrieben habe. Fies eben
Hier ein paar Merkmale des Codes:
- Keine ordentliche Kapselung
- "€" als Namen für Methoden und Funktionen funktioniert
- "_" als Klassenname
- Sehr unleserlich, da die Methoden namen in einem Array abgelegt ist und die Methoden dann dynamisch aufgerufen werden
- Es is auch ein Singleton-Pattern implementiert *g*
So würde das in der Praxis natürlich niemand machen. Aber es geht.
Keine Angst vor dem Ausführen: Das Script gibt einfach nur Zahlen von 0-10 mit Einrückung aus.
<?php
$f=_::€0();for(;_::$i->c<_::$f[4]();){_::$i->$f[3]()||_::$f[1]((_::$i->c<10?' '._::$i->c:_::$i->c));}
class _{var $c;static $i;
static function €0(){self::$i = new _;return array('€0','€1', '€2', '€3', '€4');}
static function €1($t){echo $t."\n";}
function €3(){$this->c++;}
static function €4(){return 10;}}

Beim betrachten des Quellcodes kriegt man ja Kopfschmerzen
Gruß
Heiko
Hehe, ja.
Viel Schlimmer:
Ich hatte während des Schreibens ein Zeichen vertauscht. Die Zeile zu Debuggen ist schlimmer als Brainfuck zu coden x(
Also ich würde sagen wunderbar gelungen.