Wurm mit 8 Bytes

Gast #1295974
Lesenswert?
• ▲
▼
Hallo,
ich konnte nicht vermeiden, in der Kantine ein Gepräch mitzuhören:

"So ein Wurm hat 8 Byte...  die da irgendwo zwischen sind..."

Jetzt meine Frage, da ich nur ein einfacher Lötknecht bin, verstehe ich 
von diesen Sachen ja nicht so viel:

Kann es sein, das man einen (Computerwurm) mit nur 8 Byte programmieren 
kann?
Das kann dann doch nur ein Assembler Unterprogrammaufruf mit ein paar 
Übergabeparametern sein. Oder zwei Unterprogrammaufrufe aber ohne 
Übergabeparameter.
#1295994
Lesenswert?
• ▲
▼
Ein Computerwurm verbreitet sich über das Internet/Netzwerk (E-Mail, AIM 
etc)
Es benötigt dafür also einen Rechner mit Betriebssystem. Um die 
Systemfunktionen verwenden zu können (daher ein Ausführbares 
Windows/Linux Programm) gehören noch einige weitere Sachen, die alleine 
schon die 8 Bytes übersteigen (Header etc wie z.B. bei Windows das PE 
"Portable Executable").
Das kleinste Programm was ich mal hatte war glaub ich 12 Bytes und hat 
den Bildschirm zum flackern gebracht. Dies geschah aber indem direkt in 
den Framebuffer der Grafikkarte geschrieben wurde und nicht über die 
Umwege des Betriebssystems.
Also ich würde sagen: Nein, einen Wurm mit einer Größe von 8 Byte gibt 
es nicht. Alleine der Aufruf einer API Funktion mit einem Parameter 
besteht zumindest aus zwei Assembler Befehlen. Alleine das übersteigt 
schon die 8 Bytes
Gast #1296014
Lesenswert?
• ▲
▼
@Timmo H.
> Header etc wie z.B. bei Windows das PE"Portable Executable")
Die kann man pauschal nicht sagen, es gibt sogenannten shell-code dieser 
hat kein Header.

Er wird einfach in den Speicher gelegt (also reicht wenn er in einer 
Variable liegt z.b. char*) und dann wird dieser durch einen geschickten 
stacküberschreiber vom Prozessor angesprungen.

in 8byte bekommt man 8 befehle rein ( z.b. Add, Push, Pop, or ). Wenn im 
Speicher schon ein Wurm liegt kann man ihn mit 8byte anspringen. Aber 
ein eigenständiger Wurm mit 8byte ist nicht möglich.
#1296631
Lesenswert?
• ▲
▼
>eine aktuelle x68 cpu kann auch alle 2byte (1byte + operant) befehle
>noch ausführen. Sonst könnte man nicht auf einer 64bit cpu noch 32bit
>programm laufen lassen.
Es heißt 1. x86 und 2. hat das nichts mit 64 Bit zu tun sondern eine x86 
Architektur muss die "alten Befehle" noch können, damit es eine x86 
Architektur ist. Die 64 Bit Unterstützung der aktuellen CPUs ist nur 
eine Erweiterung, weshalb diese Architektur auch x86-64 heißt. Reine 64 
Bit CPUs wie z.B. der Intel Itanium können 32 Bit befehle nur sehr 
langsam über eine Emulation ausführen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren