Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Programme ~ 1kb (https://www.delphipraxis.net/132115-delphi-programme-%7E-1kb.html)

mr_emre_d 6. Apr 2009 14:53


Delphi Programme ~ 1kb
 
Ich wollte rausfinden, wie ich meine Apps. kleiner als 10kb kriege und deshalb habe ich im Internet recherchiert. Ich habe einige Beiträge in (Viren- & Trojaner) Foren gelesen und bin auf etwas aufmerksam geworden:

Code:
#1 -- Leere(alles raus, was nicht wirklich gebraucht wird) System & SysUnit erstellen (~20-30 Zeilen)

#2 -- Mit "dcc32.exe -Q system.pas sysinit.pas -M -Y -Z -$D- -0" kompilieren

#3 -- Anstatt den Borland Linker einfach den von Microsoft verwenden -> Dazu muss das Borland OMF Format zu Intel OMF verwandelt werden -> und dazu gibts einen Konverter (omf2d.exe; Author EliCZ)

#4 -- Konvertieren "omf2d Hello.obj /U-"

#5 -- Und letztendlich linken "link.exe /ALIGN:32 /FORCE:UNRESOLVED /SUBSYSTEM:WINDOWS /ENTRY:Start$qqrv Hello.obj user32.lib /out:Hello.exe"
DAS PROBLEM = #3:
Mein AntiVir bombardiert mich mit Warnungen, dass es sich bei omf2d um nen Trojaner handelt usw.

Ich hab nen Upload bei Virustotal gemacht und der lieferte mir ~ 24/39 (61.54%) als Ergebnis :(.

Den Link zum Programm gibts hier:
http://w-shadow.com/blog/2006/10/12/...ers-in-delphi/

Mich würds nun wirklich interessieren, ob es eine (evt. andere) Möglichkeit gibt, die Echsen wirklich so klein zu kriegen :)

MfG

himitsu 6. Apr 2009 15:08

Re: Delphi Programme ~ 1kb
 
NonVLC und ohne die großen Delphi-Units, wie SysUtils und Co., kommst du schon locker auf ~30 KB runter.

hab hier ein Programm,welches praktisch nur die Windows.pas und einige eigene WinAPIs enthält ... mit D7 kompiliert ist das nur 12 KB klein.

Reinhard Kern 6. Apr 2009 15:11

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von mr_emre_d
Mich würds nun wirklich interessieren, ob es eine (evt. andere) Möglichkeit gibt, die Echsen wirklich so klein zu kriegen :)

MfG

Hallo,

das Problem liegt im wesentlichen am Linker - ich bin es von anderen (älteren) Sprachen gewohnt, besonders natürlich im Embedded-Bereich, dass nur gelinkt wird, was im Programm aufgerufen wird. Der Borland-Linker war dazu schon immer zu doof, wenn du uses math schreibst wird einfach alles gelinkt, was in math definiert ist, auch wenn du nur eine einzige Funktion brauchst. Die Lösung ist daher ein intelligenterer Linker, vermutlich könnte man auch Intel nehmen, aber das ändert nicht viel, also warum nicht MS.

Im Programm selbst muss man natürlich auch möglichst wenige Funktionen benutzen, Beispiel: bei Umwandlung mm - inch definiert man für beide Richtungen einen Multiplikationsfaktor, denn wenn man auf Division ganz verzichten kann, braucht man schon einiges weniger an Rechenfunktionen.

Die Entwicklung geht (leider) dahin, gleich die gesamte Library einzubinden (.NET), mit dem Argument dass ja auch Waschmaschinen heute MBytes an Speicher haben.

Gruss Reinhard

himitsu 6. Apr 2009 15:16

Re: Delphi Programme ~ 1kb
 
nee nee, der Linker ist schon intelligent genug ... Problem ist der Initialisations/Finalisations-Abschnitt ... alles was darin verwendet wird, wird auch gelinkt ... und das ist vorallem in SysUtils eine ganze Menge

mr_emre_d 6. Apr 2009 15:20

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von himitsu
NonVLC und ohne die großen Delphi-Units, wie SysUtils und Co., kommst du schon locker auf ~30 KB runter.

hab hier ein Programm,welches praktisch nur die Windows.pas und einige eigene WinAPIs enthält ... mit D7 kompiliert ist das nur 12 KB klein.

:D Dat ist mir schon klar. Ich entwickle eh fast nur NonVCL - das kann man sogar aus meinem ersten Satz entnehmen :P

Kann ich nun "EliCZ" trauen? Die haben ja das DDDK geschrieben und da sind einige Beispiele drinnen :?
Ich bin auch für andere Vorschläge offen

MfG

Bernhard Geyer 6. Apr 2009 15:22

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von Reinhard Kern
Der Borland-Linker war dazu schon immer zu doof, wenn du uses math schreibst wird einfach alles gelinkt, was in math definiert ist, auch wenn du nur eine einzige Funktion brauchst.

Nein, so doof ist der Borland-Linker nicht. Das "Problem" liegt daran in den von Math.pas geuseden Units viele initialization-Abschitte vorhanden sind (Siehe SysUtils.pas) die dafür sorgen das die Exe von 10 auf 40 kByte anschwillt. Was nicht verwendet wird, landet auch nicht in der Exe! Bei Objekten geht er nicht soweit. Alles was Private/Protected (?) als Methoden definiert ist wird AFAIK gebunden auch wenn es nicht verwendet wird.

mr_emre_d 6. Apr 2009 15:22

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von himitsu
nee nee, der Linker ist schon intelligent genug ... Problem ist der Initialisations/Finalisations-Abschnitt ... alles was darin verwendet wird, wird auch gelinkt ... und das ist vorallem in SysUtils eine ganze Menge

Naja:
Delphi-Quellcode:
SYSINIT:

unit SysInit;

interface
procedure _InitExe;
procedure _halt0;
procedure _InitLib(Context: PinitContext);

var
ModulelsLib: Boolean;
TlsIndex: Integer = -1;
TlsLast: Byte;

const
PtrToNil: Pointer = nil;


implementation

procedure _InitLib(Context: PinitContext);
asm
end;

procedure _InitExe;
asm
end;

procedure _halt0;
asm
end;

end.

SYSTEM:

unit System;

interface

procedure _HandleFinally;

type
TGUID = record
D1: LongWord;
D2: Word;
D3: Word;
D4: array[0..7] of Byte;
end;

PInitContext = ^TInitContext;
TInitCOntext = record

OuterContext: PInitContext;
ExcFrame: Pointer;
InitTable: Pointer;
InitCount: Integer;
Module: Pointer;
DLLSaveEBP: Pointer;
DLLSaveEBX: Pointer;
DLLSaveESI: Pointer;
DLLSaveEDI: Pointer;
ExitProcessTLS: procedure;
DLLInitState: Byte;
end;

implementation


procedure _HandleFinally;
asm
end;

end.
ist nicht viel :S

Wenn man diese Units verwendet, ändert sich nichts großartig ander Größe (~10kb)

Dax 6. Apr 2009 16:01

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von Reinhard Kern
Die Entwicklung geht (leider) dahin, gleich die gesamte Library einzubinden (.NET), mit dem Argument dass ja auch Waschmaschinen heute MBytes an Speicher haben.

Hast du was gegen in Delphi-Programme eingebundene Fremd-DLLs? :)

lbccaleb 6. Apr 2009 16:54

Re: Delphi Programme ~ 1kb
 
Ganz gute Anlaufstelle ist da wohl die Seite von Assarbad!
Dort kann man zb. sowas finden:

nonVcl-App
Diese Anwendung ist mit Delphi schon nur bei 16kb groß!


Sollte das noch zu groß sein, dann hast du auf der Seite noch ein Bsp von Nico
MiniDExe
Dort ist die Anwendung nur noch 3kb groß!

Allerdings musst du dafür schon die System.pas austauschen, welche auch auf den Seiten zufinden sind! Dabei gibt es verschiedene Versionen dort, einmal eine von Nico, und einmal eine von Assarbad (wenn ich mich recht entsinne)!

Musst mal sehen wo sich diew befinden, weiß ich jetzt auch nicht mehr genau, müsste auch erst suchen!!

Edit:

Willst du es immer schön kleine haben, dann hilft dir nur das Umsteigen auf Maschienen-Sprache, also Assembler!

Reinhard Kern 6. Apr 2009 17:10

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von Dax
Zitat:

Zitat von Reinhard Kern
Die Entwicklung geht (leider) dahin, gleich die gesamte Library einzubinden (.NET), mit dem Argument dass ja auch Waschmaschinen heute MBytes an Speicher haben.

Hast du was gegen in Delphi-Programme eingebundene Fremd-DLLs? :)

Hallo,

ich bin halt entsetzlich altmodisch und denke, eine Waschmaschine soll Wäsche waschen und nicht eine Website mit Flash-Animationen, FTP-Server, DHCP und DNS zur Verfügung stellen - aber das ist natürlich Geschmackssache. Dafür muss ich in den Keller laufen und nachsehen, ob die Wäsche fertig ist, aber da mir das wg. beginnendem Alzheimer sowieso erst in 2-3 Stunden wieder einfällt, habe ich kaum Nachteile dadurch.

Gruss Reinhard

mr_emre_d 6. Apr 2009 17:21

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von lbccaleb
Sollte das noch zu groß sein, dann hast du auf der Seite noch ein Bsp von Nico
MiniDExe
Dort ist die Anwendung nur noch 3kb groß!

Danke, genau soetwas habe ich gesucht .. Mal sehen

EDIT:
Jawohl ... Wenn man es mit UPX packt, hat es ne Größe von 2,5 kb :)
Ich bin zufrieden :)

MfG

Matze 6. Apr 2009 17:39

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von mr_emre_d
Jawohl ... Wenn man es mit UPX packt, hat es ne Größe von 2,5 kb :)

Bedenke aber, dass das Packen mit UPX auch Nachteile bringt. Also wenn es nicht sein muss, würde ich es auch nicht unbedingt machen.

himitsu 6. Apr 2009 19:17

Re: Delphi Programme ~ 1kb
 
Die Frage ist, vorallem in der heutigen Zeit, wofür man sowas überhaupt noch baucht.

OK, ich versuch auch oftmals alles so klein wie möglich zu halten, aber übertreiben muß ich das nun auch nicht.

Selbst Nico und Assarbad schreiben nicht nur so kleine Programme (oftmals ist es ja einfach den Aufwand nicht wert)



PS: da gibt es soeine 64kb-Fraktion, mit richtigen Wetbewerben, wo man versucht soviel wie möglich (ohne irgendwelche Komprimierungen, weibei sowas bei den Programmen kaum möglich ist, da dort nicht viel zum komprimieren drin ist) in eine 64 KB-Datei zu packen.

die bekommen da z.B. sogar rießige 3D-Ego-Shooter mit Sound und allem drum und dran in solche Dateien rein.
mir fiel jetzt nur ein Name eines Prorammes ein "Brüllwürfel"
google fand dann dieses http://www.glastyn.de/downloads/farb...ellwuerfel.htm
und wenn man da die Links unten verfolgt, findet man schonmal einen der "Irren" und seine Programme :angel:

lbccaleb 6. Apr 2009 19:40

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von himitsu
PS: da gibt es soeine 64kb-Fraktion, mit richtigen Wetbewerben, wo man versucht soviel wie möglich (ohne irgendwelche Komprimierungen, weibei sowas bei den Programmen kaum möglich ist, da dort nicht viel zum komprimieren drin ist) in eine 64 KB-Datei zu packen.

OK, ist zwar leicht OT, aber kann man trotzdem mal posten^^

pouet.net

Das ist so eine Wettbewerbsseite :)
Dort sind über 100erte dieser Programme zu finden, einige sind schon wirklich beeindruckend^^
Die Programme auf der Seite sind nicht nur was für nonVcl Liebhaber, sondern auch was für Grafik-Fans, Sound-Fans und Hardware-Leistung-Test-Fans^^

Kann man sich auf jedenfall mal angeschaut haben...

Edit:
Link korrigiert

jaenicke 6. Apr 2009 20:09

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von Matze
Bedenke aber, dass das Packen mit UPX auch Nachteile bringt. Also wenn es nicht sein muss, würde ich es auch nicht unbedingt machen.

Das würde ich auch nicht machen. Denn man muss immer damit rechnen, dass eine Exe alleine deshalb plötzlich von einigen Virenscannern erkannt wird. Das ist normal, da viele Viren eben auch gepackt sind und deshalb ähnliche Signaturen enthalten. Letztlich zerstört man so das Vertrauen in ein Produkt.

Was das für einen Sinn hat, ist nochmal eine andere Frage, ich sehe keinen, aber vielleicht soll das Programm ja z.B. für ein Laptop mit SSDs oder so sein wo gerade so Windows drauf passt.

mr_emre_d 6. Apr 2009 21:01

Re: Delphi Programme ~ 1kb
 
[quote="lbccaleb"]
Zitat:

Zitat von himitsu

Danke für den Link. Ich finde solche Sachen einfach Klasse. :thumb:
(bin ja selbst einer, der es zumindest versucht :P)

MfG

Dunkel 6. Apr 2009 21:13

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von himitsu
die bekommen da z.B. sogar rießige 3D-Ego-Shooter mit Sound und allem drum und dran in solche Dateien rein.

http://www.theprodukkt.com/kkrieger

Auch debris von denen ist sehr faszinierend. Aber IMHO sind die Demo-Zeiten vorbei, in denen man versucht hat, so viel multimedialen Schnick-Schnack wie möglich in eine Mini-Echse zu bekommen. Es ist eine feine Spielerei, aber Produktivität ist was anderes. In Zeiten von Gibabyte/Terabyte und DSL lohnt es sich einfach nicht mehr jedes Bit 2 Mal umzudrehen...

himitsu 6. Apr 2009 22:52

Re: Delphi Programme ~ 1kb
 
joar, die Leute würden wohl Unreal Tournament auf 'ne Diskette draufbekommen X'D

Aber man sieht auch, wie schwer es ist etwas so klein hinzubekommen, abgesehn davon daß dann vieles Live berechnet und die Hardware dadurch ganz schön ausgelastet wird.
(im Gegensatz zu den rießigen speilen, wo Vieles irgendwo vorberechnet abgespeichert ist)

Drum sagte ich ja ... klein ist nicht schlecht, solange man es "aufwandsmäßig" nicht übertreibt.
Und wenn man wirklich extrem klein arbeiten möchte, dann kommt man mit anderen Sprachen/Compilern auf Jedenfall besser, als mit Delphi.

Dennoch: Selbst in Zeiten von viel Speicher muß ein Programm ja nicht unbedingt viele GB belegen -.-°


Im Grunde sind es mehr Idealisten, die sowas noch machen ... also mehr aus Spaß und um zu zeigen was möglich wäre.

Reinhard Kern 7. Apr 2009 00:49

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von himitsu
...Und wenn man wirklich extrem klein arbeiten möchte, dann kommt man mit anderen Sprachen/Compilern auf Jedenfall besser, als mit Delphi.
...

Hallo,

das stimmt wohl, aber die Frage ist wieso eigentlich - wenn ich mich noch recht an die graue Vorzeit erinnere, wurde Turbo Pascal zu seligen Zeiten von DOS und Heimsoeth Software auf EINER Diskette geliefert. Daraus wurden dann 2 und das vorläufige Ende der Fahnenstange ist ja bekannt. War wohl eine andere Entwickler-Generation.

Gruss Reinhard

jaenicke 7. Apr 2009 01:36

Re: Delphi Programme ~ 1kb
 
Den Sprachumfang und Leistungsumfang kannst du aber genauso wenig vergleichen wie die Größe. ;-)
Alleine schon die visuellen Formulare brauchen eben einiges. Deshalb ist nonVCL eben deutlich kleiner.

Du kannst mit Delphi eben von Hause aus sehr viel mehr machen als mit Turbo Pascal, und auch mit jeder Version immer mehr. Irgendwoher muss diese Funktionalität schließlich kommen, das kostet Platz.

p80286 7. Apr 2009 15:03

Re: Delphi Programme ~ 1kb
 
Hallo zusammen,

was ist "nonVCL" eigentlich? wenn ich mich richtig erinnere haben "nonVCL"-Programme durchaus auch eine graphische Oberfläche, es muß also nicht Console sein.
Zitat:

Zitat von jaenicke
Den Sprachumfang und Leistungsumfang kannst du aber genauso wenig vergleichen wie die Größe. ;-)
Alleine schon die visuellen Formulare brauchen eben einiges. Deshalb ist nonVCL eben deutlich kleiner.

Du kannst mit Delphi eben von Hause aus sehr viel mehr machen als mit Turbo Pascal, und auch mit jeder Version immer mehr. Irgendwoher muss diese Funktionalität schließlich kommen, das kostet Platz.

Aber ich muß Funktionen/Funktionalitäten die ich nicht benötige ja nicht mit mir herumschleppen. Wenn der Compiler mich freundlich darauf aufmerksam macht, daß eine Variable definiert wurde aber nicht genutzt wird, habe ich nichts dagegen. Warum werden dann Funktionen Proceduren mit gelinkt, die nicht gebraucht werden?

TP hat nur das mitgeschleppt was gebraucht wurde, MS-C war da wesentlich großzügiger, und der MS-Assembler hat auch genommen was er kriegen konnte.

Gruß
K-H

quendolineDD 7. Apr 2009 15:08

Re: Delphi Programme ~ 1kb
 
Non-VCL ist eben die strikte Untersagung der Nutzung der Komponenten aus der Visual Component Library, sowie einiger Units, welche unnötige Sachen kapseln. Somit wird fast ausschließlich auf Windows API-Funktionen zurückgegriffen. Sicher kannst du damit auch graphische Benutzeroberflächen gestalten.

Phoenix 7. Apr 2009 15:13

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von p80286
was ist "nonVCL" eigentlich? wenn ich mich richtig erinnere haben "nonVCL"-Programme durchaus auch eine graphische Oberfläche, es muß also nicht Console sein.

non-VCL verzichtet lediglich, wie es der Name andeutet, auf die VCL. Das bedeutet, die ganzen Delphi-Eigenen Units wie z.B. Forms fehlen. Das heisst im Umkehrschluss: Willst Du ein Fenster, hast Du kein TForm. Du musst das Fenster also selber beim Betriebssystem anfordern, Buttons selber erzeugen und positionieren etc.

Die Programme werden deswegen kleiner, weil Du nur das aus der VCL 'nachprogrammierst', was Du auch wirklich konkret brauchst. Das Erkaufst Du Dir aber durch das Fehlen des 'Alles schon fertig' Baukastens. Also: Viel handarbeit -> kleine Echse. Wenig Handarbeit und die VCL nutzen die alles schon kann -> schneller fertig, aber große Echse :) Man muss halt immer abwägen.

himitsu 7. Apr 2009 15:29

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von p80286
Aber ich muß Funktionen/Funktionalitäten die ich nicht benötige ja nicht mit mir herumschleppen. Wenn der Compiler mich freundlich darauf aufmerksam macht, daß eine Variable definiert wurde aber nicht genutzt wird, habe ich nichts dagegen. Warum werden dann Funktionen Proceduren mit gelinkt, die nicht gebraucht werden?

Es wird nich einfach eine ungenutzte Funktion mitgeschlappt ... der Compiler bindet nur Funktionen/Prozeduren/Typen/Konstanten/Variable mit ein, welche irgendwo in "genutztem" Code verwendet werden.

Und darunter zählen auch Dinge, welche im Initialisations-Abschnitt verwendet/geladen werden.

Allerdings werden Ressourcen ohne Prüfung reingeladen ... z.B. schleppt jede Delphi-App standardmäßig immer ihren eigenen Courorsatz(Mauszeiger) mit sich rum, selbst wenn man nur den von Windows nutzt.

Die VCL ist "nur" eine komfortablere, aber rießige Kapselung der WinAPI und einiger zusätzlicher Komponenten ... das kann man zu großen Teilen auch direkt mit der WinAPI erreichen.

mr_emre_d 7. Apr 2009 15:36

Re: Delphi Programme ~ 1kb
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von p80286
was ist "nonVCL" eigentlich?

> NonVCL Anwendungen sind jene, bei denen alle Windows per winAPI erstellt wurden! (und wo eben die VCL nicht verwendet wird xD; hättest auch googeln können ;))

Zitat:

Zitat von p80286
wenn ich mich richtig erinnere haben "nonVCL"-Programme durchaus auch eine graphische Oberfläche, es muß also nicht Console sein.

> Ja, natürlich haben sie eine Oberfläche :)

Schau dir mal Anhang and an :)
(Echse mit normalem Wnd (3kb))

EDIT:
Ich habe mir die einzelnen Sektions angeschaut und habe folgendes bemerkt:
Code:
Codecaves
-----------------------
CODE   -  139
DATA   -  1F6
BSS   -  000
.idata   -  0B6
.reloc   -  200 ( vollständig leer )
.rsrc   -  11B
--------------
sum   -  700 ( = 1792 bytes )

Ohne caves = 300 ( = 768 bytes )
Wenn ich die Caves noch wegbekomme...

MfG

lbccaleb 7. Apr 2009 17:39

Re: Delphi Programme ~ 1kb
 
Auch noch ne möglichkeit seine Programme ein wenig kleiner zu bekommen, ist möglich durch die Benutzung des Programms "Strip-Reloc"

Strip-Reloc

p80286 7. Apr 2009 17:55

Re: Delphi Programme ~ 1kb
 
Danke für die Nachhilfe, es ist gut aus berufenem Munde die eigenen Schlußfolgerungen bestätigt zu bekommen.

Zitat:

Zitat von himitsu
Die VCL ist "nur" eine komfortablere, aber rießige Kapselung der WinAPI und einiger zusätzlicher Komponenten ... das kann man zu großen Teilen auch direkt mit der WinAPI erreichen.

Wenn ich mal viel Zeit habe bastel ich mir eine "Schmalspur-VCL" (aber die gibt's besimmt auch schon irgendwo).
die restliche Zeit lebe ich weiterhin mit 400Kb-Monstern.

Gruß
K-H

himitsu 7. Apr 2009 18:00

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von p80286
Wenn ich mal viel Zeit habe bastel ich mir eine "Schmalspur-VCL" (aber die gibt's besimmt auch schon irgendwo).
die restliche Zeit lebe ich weiterhin mit 400Kb-Monstern.

so halb fertig ... keine Zeit ... gibt Wichtigeres :oops:

turboPASCAL 9. Apr 2009 13:57

Re: Delphi Programme ~ 1kb
 
So, habe mal ein wenig etwas daran herum gebastelt und ein Statictext sowie einen Button eingebaut.

Netter weise kommt nun mein Virenscanner in fahrt. ;)

Nu ist das Ding doch schon auf 5kb gewachsen...

Was ich eigentlich fragen wollte, wo bekomme ich FillChar (bzw. (Rtl)FillMemory) her ? :gruebel:

Mithrandir 9. Apr 2009 14:03

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von p80286
Wenn ich mal viel Zeit habe bastel ich mir eine "Schmalspur-VCL" (aber die gibt's besimmt auch schon irgendwo).

Key Objects Library

jaenicke 9. Apr 2009 14:10

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von turboPASCAL
Netter weise kommt nun mein Virenscanner in fahrt. ;)

Damit musst du bei so kleinen Exen immer rechnen. So kleine Exen werden heute eben hauptsächlich von Virenautoren geschrieben, weil man sonst normalerweise nicht mehr auf die paar KiB schaut. Und außerdem sind die auch relativ ähnlich vom Aufbau her.

Zitat:

Zitat von turboPASCAL
Was ich eigentlich fragen wollte, wo bekomme ich FillChar (bzw. (Rtl)FillMemory) her ? :gruebel:

Selbst schreiben oder die Ergebnisse der Challenge vom Fastcode Projekt nutzen:
http://www.fastcode.dk/fastcodeproje...project/25.htm
Um genau zu sein findest du den Code hier:
http://www.fastcode.dk/fastcodeproje...llCharUnit.pas

Namenloser 9. Apr 2009 14:21

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von jaenicke
Damit musst du bei so kleinen Exen immer rechnen. So kleine Exen werden heute eben hauptsächlich von Virenautoren geschrieben, weil man sonst normalerweise nicht mehr auf die paar KiB schaut.

Auf die Gefahr hin OT zu werden: Warum eigentlich? Ich meine, früher mag das ja noch was gebracht haben, aber heute? Virenautoren muss doch auch klar sein, dass sie damit höhere Gefahr laufen, entdeckt zu werden.

turboPASCAL 9. Apr 2009 14:26

Re: Delphi Programme ~ 1kb
 
Windows liefert doch schon eine Function mit, warum diese also nicht verwenden:
Code:
void FillMemory([out] PVOID Destination, [in] SIZE_T Length, [in] BYTE Fill);
Delphi-Quellcode:
procedure FillMemory(const x; Length: LongWord; Fill: Byte) stdcall;
  external kernel32 name 'RtlFillMemory';
Ich bin mir allerdings bei der Deklaration nicht 100% sicher.

jaenicke 9. Apr 2009 14:32

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von NamenLozer
Zitat:

Zitat von jaenicke
Damit musst du bei so kleinen Exen immer rechnen. So kleine Exen werden heute eben hauptsächlich von Virenautoren geschrieben, weil man sonst normalerweise nicht mehr auf die paar KiB schaut.

Auf die Gefahr hin OT zu werden: Warum eigentlich? Ich meine, früher mag das ja noch was gebracht haben, aber heute? Virenautoren muss doch auch klar sein, dass sie damit höhere Gefahr laufen, entdeckt zu werden.

Ganz einfach weil es bei so kleinen Progrämmchen normalerweise nie um einen praktischen Nutzen geht, dass die so klein sind, sondern nur darum, dass man es schafft, dass die so klein sind. Das Ergebnis sind ja auch die entsprechenden Wettbewerbe. ;-)

Ausnahmen sind SFX-Module, da habe ich fürs Entzippen auch schon eins mit 31 KiB mit Fortschrittsanzeige und allem geschrieben.

Zitat:

Zitat von turboPASCAL
Windows liefert doch schon eine Function mit, warum diese also nicht verwenden:

Die gibt es aber laut Dokumentation erst ab Windows 2000. Wenn das ok ist, dann kann man die natürlich verweden.

mr_emre_d 9. Apr 2009 15:35

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von jaenicke
So kleine Exen werden heute eben hauptsächlich von Virenautoren geschrieben, weil man sonst normalerweise nicht mehr auf die paar KiB schaut. Und außerdem sind die auch relativ ähnlich vom Aufbau her.

Damit das mal geklärt ist:
Das stimmt nicht ganz -> kleine Echsen werden auch in der Demoszene ( siehe 4..512 kb Demos ) verwendet / geschrieben.

Außerdem finde ich kleinere Dateien viel besser, da ich mir somit Platz spare -> ich weiß, dass es in der heutigen Zeit unnötig ist, "Platz" zu sparen aber weiß nicht .. ich mags eben so :P

MfG

Namenloser 9. Apr 2009 15:39

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von jaenicke
Zitat:

Zitat von NamenLozer
Zitat:

Zitat von jaenicke
Damit musst du bei so kleinen Exen immer rechnen. So kleine Exen werden heute eben hauptsächlich von Virenautoren geschrieben, weil man sonst normalerweise nicht mehr auf die paar KiB schaut.

Auf die Gefahr hin OT zu werden: Warum eigentlich? Ich meine, früher mag das ja noch was gebracht haben, aber heute? Virenautoren muss doch auch klar sein, dass sie damit höhere Gefahr laufen, entdeckt zu werden.

Ganz einfach weil es bei so kleinen Progrämmchen normalerweise nie um einen praktischen Nutzen geht, dass die so klein sind, sondern nur darum, dass man es schafft, dass die so klein sind.

Ich meinte eigentlich, wieso Virenautoren Wert darauf legen, dass ihre Programme so klein sind? Als Viren noch über Disketten verbreitet wurden, war das sicherlich sinnvoll, aber heute ist das doch eher kontraproduktiv, weil man mit höherer Wahrscheinlichkeit der Heuristik zum Opfer fällt.

lbccaleb 9. Apr 2009 15:42

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von mr_emre_d
Damit das mal geklärt ist:
Das stimmt nicht ganz -> kleine Echsen werden auch in der Demoszene ( siehe 4..512 kb Demos ) verwendet / geschrieben.

Richtig, so wie Sie zu finden sind, in den Link von Beitrag 14 von mir!
Ordnet man die Liste nach der größe, dann sieh mal einer schau, was da nicht für kleine Anwendungen zum Vorschein kommen :)

jaenicke 9. Apr 2009 15:44

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von NamenLozer
Ich meinte eigentlich, wieso Virenautoren Wert darauf legen, dass ihre Programme so klein sind?

Da gibt es nicht unbedingt einen Sinn. Der Sinn ist oft der selbe wie bei so kleinen Programmen insgesamt. Die meisten wollen einfach nur sagen: "Schau mal, das alles kann ich mit so einer kleinen Exe machen". ;-)
Und bei Viren spielt zusätzlich die Bandbreite eine Rolle. Ein solcher Virus muss ja x-fach verteilt werden, das geht schlecht, wenn man dafür sehr viel Uploadbandbreite braucht.

Namenloser 9. Apr 2009 15:50

Re: Delphi Programme ~ 1kb
 
Zitat:

Zitat von jaenicke
Da gibt es nicht unbedingt einen Sinn. Der Sinn ist oft der selbe wie bei so kleinen Programmen insgesamt. Die meisten wollen einfach nur sagen: "Schau mal, das alles kann ich mit so einer kleinen Exe machen". ;-)
Und bei Viren spielt zusätzlich die Bandbreite eine Rolle. Ein solcher Virus muss ja x-fach verteilt werden, das geht schlecht, wenn man dafür sehr viel Uploadbandbreite braucht.

Das war früher sicher der Fall, nur bezweifle ich, dass das heute noch so ist. Die wenigsten Viren werden doch heutzutage noch von "Idealisten" geschrieben. Und Bandbreite ist heute ja nun wirklich kein Problem mehr...

lbccaleb 9. Apr 2009 15:53

Re: Delphi Programme ~ 1kb
 
Bei Viren kommt ja dann noch dazu, mit dieser sehr geringen Dateigröße zu vermeiden enttarnt zu werden!
Viele Viren infizieren ja, einfach alle Echsedateien auf der Platte, und kopieren sich in selbige! Jedesmal wenn diese Datei/Programm dann gestartet wird, wird sicher gestellt, dass der Virus auf dem System arbeiten kann!

Ist der Virus nun aber 5mb groß, und infiziert ein Programm was gerade mal 230kb groß ist, so würde logischerweise selbst jeder Leihe sofort mitbekommen, das da was nicht stimmen kann!

Das ist aber nun wirklich OT, und hat wie viele andere Post eigentlich nichts dmait zu tun, mit Delphi die Datei klein zu bekommen :)

Und nur um das geht es ja hier in dem Fred...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz