![]() |
[ASM] - Kleinstmögliche Hello World mit WinAPI
Hi!
Ich will ein "Hello World" schreiben, dessen exe möglichst klein sein sollte! hab z.zt folgenden code:
Code:
--> 1,5kb
.386 ; 32bit Windows Anwendung
.model flat, stdcall option casemap : none ; Groß/Kleinschreibung unterscheiden !? include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\include\user32.inc ; MessageBox... includelib \masm32\lib\user32.lib .CODE start: invoke MessageBox, NULL, addr start + 64, addr start + 80, MB_OK ret ; statt ExitProc (wird eh von win gekillt nach ret) end start addr start + 64/80 ist die addresse von der caption/text vom messagebox den text dazu muss man dann nur in die entsprechende stelle in der exe eintragen wie bekomm ich das ganze noch kleiner??? bzw. wo ist das minimum? hab da an 512bytes (mz + pe header) + x (512bytes?) für code gedacht!? stefan |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
Liste der Anhänge anzeigen (Anzahl: 1)
Das kleinste was ich je gesehen hab (basierend auf Code von
![]() Du hast fast recht mit Deiner Berechnung: ca 512 Bytes für den Header (evtl + MS-DOS-Stub Programm) 512 Bytes für die Code Section und 512 Bytes für die Import Table. raziel |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
hm....
meins ist vom prinzip her kleiner (die 00en beginnen früher) aber halt auch 1,5kb beim deinmeister.de hab ich schon öfters rumgesurft ist das also die minimale dateigröße? geht das wirklcih nicht mit 1,0 kb? also 1024 bytes? |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
"This program requires Win32" - diesen Hinweis könntest du noch entfernen.
Ich weiß nicht wie das geht, aber ich weiß dass es geht :) |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
Zitat:
- Du brauchst den MZ/PE Header - Du brauchst Die Code-Section - Du brauchst die Import-Table um was auszugeben Die kleinste Exe die ich zusammengebracht hab und unter Win32 lauffähig war, ist 1024 Bytes groß - aber sie macht nichts anderes als ein simples
Code:
Du jedoch willst was ausgeben. Falls Dir was einfällt, wie Du das OHNE DLLs schaffst und dann noch die Reloc löscht, hast Du Deine 1024 Bytes Hello World Exe.
ret
|
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
aaalso: man bekommt nen (wenn auch relativ beschränkten (schnelles tippen schafft er nicht)) keylogger in 724 bytes. ich weiß nicht, WIE er gecoded wurde, auf jeden fall wird man ja wohl auch ein hello world-programm so klein bekommen
![]() |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
Den hast Du aber hoffentlich noch nicht ausprobiert, oder?
Mein Virenscanner meldet nämlich einen Trojaner... :stupid: //edit: natürlich meldet der einen, das is ja auch einer :wall: //edit2: Habs mir mal angeschaut. Die ham die Import Table mit in die Code-Section gepackt und dann die nuller am Ende der Code-Section abgeschnitten. Ziemlich einfaches, aber geniales Teil. |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
kann mann eigentlich noch bytes einsparen, wenn man den verwendeten dateinamen kürzt? *kenn mich mit exen nicht so gut aus*
dass das als trojaner erkannt wird, hat durchaus seine richtigkeit. aber zur studie im hexedit taugt es, und an nem schulrechner mit so ner wächterkarte wurde auch die lauffähigkeit getesetet. sollte, solange man nichts geheimes macht, auch am heimrechner anwendbar sein. |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
Zitat:
Eine solche Exe ist imho auch nur mit einem Hex-Editor erstellbar, zumindest kenne ich keinen Linker der eine Exe auf eine solche Art linkt, wie sie in obigem Keylogger vorliegt. |
Re: [ASM] - Kleinstmögliche Hello World mit WinAPI
ich hab keine ahnung vom linken/assemblieren/wasauchimmer. kann natürlich gut sein, dass das ding im hexedit geschrieben wurde.
ich meine den dateinamen der datei, wo das hinkommt. der ist ja hardgecoded und belegt ein paar byte "C:\.SYS" da könnte man doch "C:\.SY" nehmen, dann hätte man ein byte gespart. oder was noch lürzers. eventuell geht auch nur "", und er nimmt dann ne datei ohne namen im aktuellen pfad. kein anhnug, ob es klappt, aber THEORETISCH... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz