Seite 1 von 1

Der Welt kleinstes PE (Windows) Executable

Verfasst: Do Aug 12, 2010 2:10 pm
von fat-lobyte
Hallo!

Bin gerade auf etwas gestoßen, was ich mal etwas unformal als "kranken Scheiß" bezeichne.
Da hat so ein typ die kleinste Ausführbare Datei der Welt geschrieben, die eine Datei herunterlädt und ausführt. Die Datei ist 133Bytes groß.
Ich bin erstaunt über das Wissen und die Methoden dieses Menschen, und auch aller anderen "Bitschupfer".

Hut ab vor allen Crackern und Hackern dieser Welt!!

Hier der link zur Story: (ich glaubs immer noch nicht ganz...):

http://www.phreedom.org/solar/code/tinype/


Man beachte übrigens die Sicherheitsimplikationen. Eine kleine Datei, eingebettet in ein jpeg Bild, das geöffnet wird durch eine buggy jpeg bibliothek, der EIP rutscht "zufällig" über den Code und bums - ein sauberer "Arbitrary Code execution". Ich finds schön. Erschreckend, aber schön.

Irgendwie motiviert mich das wiedermal in die Crackerei einzusteigen...

Re: Der Welt kleinstes PE (Windows) Executable

Verfasst: Do Aug 12, 2010 2:39 pm
von Xin
Danke für den interessanten Link, der wird sicherlich für meinen den Windows-Codegenerator meines Compilers auch nochmal interessant werden. :-)

Dazu möchte ich allerdings sagen, dass 133 Bytes immernoch sehr groß sind. Unter AmigaOS war ein "Hello World" (also die Ausabe eines Strings von 12 Zeichen und nicht nur die Rückgabe eines Wertes) wenn ich mich recht entsinne 23 Bytes groß.

Code: Alles auswählen

#include <proto/dos.h>

int main()
{
  PutStr( "Hello World" );

  return 0;
}
In Perlen der Programmierkunst ist ein besonders schönes Beispiel beschrieben, wie man es geschafft hat ein Lexikon für eine Rechtschreibprüfung mit 70000 Wörtern (!) im Arbeitsspeicher eines Rechners mit 64kB RAM unterzubringen.
Dem entgegenzusetzen ist nun wieder Dein Link, der beschreibt dass, dieser Code:

Code: Alles auswählen

int main()
{
    return 42;
}
bei normaler Compilierung mit Visual Studio 2005 bereits 45056 groß ist und damit die 64kB Arbeitsspeicher des damaligen Rechner bereits zu über 2/3 ausfüllt.
Bitschieben scheint aus der Mode gekommen sein. Die 4GB RAM meines aktuellen Rechners haben 130 Euro gekostet. Mit einer Minute arbeiten kann ich mir also vermutlich mehr RAM kaufen, als eine Stunde Optimierung in dem Bereich einsparen lassen würden.

Es sind keine guten Zeiten mehr, um sich für Details zu begeistern.

Re: Der Welt kleinstes PE (Windows) Executable

Verfasst: Fr Aug 13, 2010 11:02 am
von cloidnerux
Man beachte übrigens die Sicherheitsimplikationen. Eine kleine Datei, eingebettet in ein jpeg Bild, das geöffnet wird durch eine buggy jpeg bibliothek, der EIP rutscht "zufällig" über den Code und bums - ein sauberer "Arbitrary Code execution". Ich finds schön. Erschreckend, aber schön.
Gibt es schon lange, in PDFs, FLash-Filmchen, Jpegs oder allem anderen, was durch irgendeine weise erlaubt ausführbaren code in den ram zu schleusen:
http://www.heise.de/security/artikel/Ta ... 17983.html
Ich finde es interessant, was alles an Daten in eine Simple ausführbare Datei gepackt werden. Ich habe hier Code für AVR-Microprozessoren mit gerade mal 70Bytes Länge und da habe ich noch Potential, wenn ich mit ASM arbeite.