Seite 2 von 2

Re: Vorführeffekt

Verfasst: 14.11.2009 01:14
von c4s
gnasen hat geschrieben:damit ist es offiziel, ich bin neues Mitglied der Demo Scene mit einer 4 Byte Kampfansage.
Wer traut sich das zu toppen? :evil:
Ui, hab da starke Konkurrenz gefunden:
http://www.pouet.net/prod.php?which=53766

Hier gibts mit drei Bytes einen zufällig bewegenden Cursor. Kommt an unser "blub" ran ist aber 1 Byte kleiner :mrgreen:

Einfach mal selbst gucken:
http://www.pouet.net/prodlist.php?type[]=32b
Es ist schon interessant was man mit Programmen die kleiner als 32 Bytes (!) sind alles anstellen kann.

Re: Vorführeffekt

Verfasst: 14.11.2009 17:32
von Thorium
Definitiv ein Windows Bug.
Möglicherweise nimmt Windows aber auch an das es sich um .com Dateien handelt, bei der geringen größe. PE Dateien gibt es in der Größe nicht.
NicknameFJ hat geschrieben: Jede Win-Exe beginnt mit dem DOS Header (beginnt mit dem String MZ) bei Byte-Pos. $00.

An Byte-Pos $80 beginnt der PE Header mit dem String "PE"
Ich hoffe das hast du so in keinem Programm von dir verwendet. Du kannst nicht einfach davon ausgehen das der PE Header an Position $80 liegt. Du musst den Pointer zum PE Header aus dem DOS Header auslesen. Muss nur ein anderer DOS Stub reingelinkt worden sein, schon passt deine $80 nicht mehr. Ausserdem ist die Sigantur nicht PE, sondern PE00, wobei die beiden Nullen binär sind, also nicht das Zeichen Null.

Re: Vorführeffekt

Verfasst: 04.02.2010 21:29
von NicknameFJ
Thorium hat geschrieben:Definitiv ein Windows Bug.
Möglicherweise nimmt Windows aber auch an das es sich um .com Dateien handelt, bei der geringen größe. PE Dateien gibt es in der Größe nicht.
NicknameFJ hat geschrieben: Jede Win-Exe beginnt mit dem DOS Header (beginnt mit dem String MZ) bei Byte-Pos. $00.

An Byte-Pos $80 beginnt der PE Header mit dem String "PE"
Ich hoffe das hast du so in keinem Programm von dir verwendet. Du kannst nicht einfach davon ausgehen das der PE Header an Position $80 liegt. Du musst den Pointer zum PE Header aus dem DOS Header auslesen. Muss nur ein anderer DOS Stub reingelinkt worden sein, schon passt deine $80 nicht mehr. Ausserdem ist die Sigantur nicht PE, sondern PE00, wobei die beiden Nullen binär sind, also nicht das Zeichen Null.

Hast recht, danke.

Habe mein falsches Wissen :oops: aus den FAQ der Heaventools
http://www.heaventools.de/faq.htm hat geschrieben: F: Was ist eine PE Datei... Ich habe davon gehört, jedoch geglaubt, mein Betriebssystem kann sie nicht ausführen?

"PE" steht für "Portable Executable" transportable ausführbare Datei. Der Terminus Transportable ausführbare Datei wurde gewählt um ein Dateiformat zu beschreiben, welches unter allen Windowsversionen, auf allen unterstützten CPU´s laufen soll. Eine PE Datei ist eine 32 bit ausführbare Datei, entwickelt für Microsoft Windows® NT (und Win9x). Andere nicht ausführbare Dateitypen laufen auf MS Plattformen "MZ" (DOS). "NE" und "LE" sind nicht mehr unterstützt, funktionieren jedoch noch. Beim Öffnen einer Datei im Hex-Editor oder Binärbetrachter sind die ersten beiden Werte "MZ" - ja der DOS Header ist immer noch vorhanden. Wenn man 128 Bytes weiter sucht, so findet man den Wert "PE". Das ist der Punkt, wo das PE-Format übernimmt. (Für mehr Details siehe unter Grundwissen in der Hilfe)
In WIKI steht es richtig so wie Du es auch beschrieben hast.

Grüße
NicknameFJ

Re: Vorführeffekt

Verfasst: 05.02.2010 07:52
von Thorium
NicknameFJ hat geschrieben: Habe mein falsches Wissen :oops: aus den FAQ der Heaventools
Wieder mal ein Beweis dafür das man sich seine Infos aus erster Hand besorgen sollte. Es gibt in der MSDN sehr gut Artikel, die das PE Format genaustens beschreiben. Generell sollte man, wenn man Infos zu Windowsinterna sucht erstmal die MSDN konsultieren.

Re: Vorführeffekt

Verfasst: 12.02.2010 14:07
von Max_der_Held
oh,.. is leider nicht vista 64 kompatibel :( ;)
"Die Version der Datei ist nicht..kompatibel.."