Entwickler-Ecke
Sonstiges (Delphi) - EXE, .exe verkleinen
NeMeZ - Fr 01.04.11 21:35
Titel: EXE, .exe verkleinen
Hallo Leute.... brauche einen Tipp, bin Anfänger, in DX und API null Ahnung, aber Spile knacke ich gern, und schreibe Trainers für mich, mit Grafik und alles drum und dran :). Das Problemm ist- .exe Datei, die kann bis 2-3 MB sein, obwohl ich das hier nutze:
{$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
und danach UPX, habt ihr was vielleicht, was exe datei kleiner macht?! :)
spawn89 - Fr 01.04.11 21:46
Viel wichtiger wäre zu wissen, wie du überhaupt auf die 2-3 MB kommst.
jaenicke - Fr 01.04.11 21:47
Gibt es auch einen Grund dafür, dass die Exe klein sein muss? Das Packen mit UPX oder anderen Packern hat mehr oder weniger gravierende Nachteile, je nachdem was für eine Software man schreibt.
Jedenfalls liest sich das so als hättest du schlicht sehr große Bilder eingebunden. Wenn du die optimierst, sparst du vermutlich auch viel Speicherplatz.
Um welche Delphiversion geht es eigentlich? Im Profil steht Delphi 6, aber der Quelltext sieht eher nach Delphi 2010 oder XE aus. :gruebel:
Dort sind die Programme derzeit leider relativ groß, da helfen auch die Optionen nicht so viel. Eine Option zum Entfernen von mehr RTTI-Informationen usw. wird es wohl in XE 2 oder XE 3 geben.
Wenn du unbedingt sehr kleine Exe-Dateien willst, rate ich eher C# oder Delphi Prism zu nutzen. ;-)
NeMeZ - Fr 01.04.11 21:49
hier ist ein kleiner Muster
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94:
| unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, GIFImg, ExtCtrls, ComCtrls, mmsystem, StdCtrls, Comobj, jpeg; {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Label1: TLabel; Image3: TImage; Label2: TLabel; procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormShow(Sender: TObject);
procedure Label1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Label2Click(Sender: TObject); private procedure WMHotKey(var Message: TMessage); message WM_HOTKEY; public end; var Form1: TForm1; WindowName:Integer; implementation {$R *sound.res} {$R *.dfm} procedure Tform1.WMHotKey(var Message: TMessage); begin If WindowName = 0 then begin PlaySound(nil, 0, SND_PURGE) ; showmessage('Bitte starten Sie zuerst das Spiel' + #13 + 'bevor Sie den Trainer aktivieren!');
end; end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); end;
procedure TForm1.Image2Click(Sender: TObject); begin close; end;
procedure TForm1.Image3Click(Sender: TObject); begin
MessageDlg('blabla.' + #13#10 + 'blubblubblub.', mtINFORMATION, [mbok], 0); end;
procedure TForm1.Label1Click(Sender: TObject); begin close end;
procedure TForm1.Label2Click(Sender: TObject); begin MessageDlg('blabla.' + #13#10 + 'blubblubblub.', mtINFORMATION, [mbok], 0); end;
procedure TForm1.FormShow(Sender: TObject); var bild : TGIFImage; ResStream : TResourceStream; begin PlaySound('klip', 0, SND_RESOURCE or SND_ASYNC or SND_LOOP); GIFImageDefaultAnimate := True; RegisterHotKey(form1.Handle,123,mod_control,vk_f1); try bild := TGIFImage.Create; resstream := TResourceStream.Create(hInstance, 'gifimage_1', RT_RCDATA); bild.LoadFromStream(ResStream); Image1.Picture.Assign(bild); finally bild.free; ResStream.free;
end; end; end. |
Moderiert von
Martok: Delphi-Tags hinzugefügt
jaenicke - Fr 01.04.11 21:52
Schau einfach nach wie groß die eingebundenen Bilder sind. Wenn du Delphi 6 nutzt, werden die vermutlich den größten Teil ausmachen.
NeMeZ - Fr 01.04.11 21:56
'jaenicke'
danke für hilfe.... C# habe ich angefangen, aber keine zeit..... Delphi kann ich nicht mal zu ende lernen.... keine zeit . das ganze ist nicht beruflich, sondern hobby... deswegen habe ich die frage gestellt.... hier gibt es auch profi.... paar tipps würde ich gebrauchen.....
jaenicke - Fr 01.04.11 21:57
Naja, wie groß sind denn nun die eingebundenen Bilder und Sounds?
NeMeZ - Fr 01.04.11 22:06
'jaenicke'
Das Bild etwa 500kb(gif), Sound etwa 500kb(wav), das macht 1 MB, aber gif und wav kann bis zu 70% 'gedrückt' komprimiert werden..... frage wie?!
es wäre wunderbar wenn das so ausgesehen 'application.ressource.comprimieren' :)
jaenicke - Fr 01.04.11 22:14
Also die Units führen selbst bei XE zu einer nur etwas über ein 1 MiB großen Anwendung. Dazu noch ein MiB durch die beiden genannten Dateien, da hast du schon etwas mehr als zwei MiB.
Wenn es also so wichtig ist, dass die Datei kleiner wird, dann bleibt dir wohl nichts anderes übrig als ohne VCL-Formulare zu arbeiten, mit der reinen Windows API. Das ist natürlich ein erheblicher Aufwand und alles andere als angenehm, bringt aber auch etwas.
Den Sound, naja, den könntest du als MP3 einbinden oder komprimiert einbinden und zur Laufzeit entpacken.
NeMeZ - Fr 01.04.11 22:35
'jaenicke'
"Den Sound, naja, den könntest du als MP3 einbinden oder komprimiert einbinden und zur Laufzeit entpacken."
seit Tagen hier gesucht mp3 als ressource.... nichts gefunden. wenn du was auf lager hast, sag doch, bitte bitte :)
von der frage oben: ist eigentlich egal ob das 2 oder 10 MB ist.... mit meinem i5 Processor das ist wurst, bloß ... ich bin ein 'Berliner', sorry 'Programierer' :), das ist nicht notwendig, aber für mich wichtig....
jaenicke - Fr 01.04.11 22:58
Naja, die MP3-Ressource musst du dann zum Abspielen temporär auspacken.
NeMeZ - Fr 01.04.11 23:25
'jaenicke'
"Naja, die MP3-Ressource musst du dann zum Abspielen temporär auspacken."
nö, das wird installer, und für Windows kake
jaenicke Danke, wenn du fragen hast bin gerne zu verfügung, bin aber nur zum knacken, spiele meine ich ........
obwohl.......... wenn ich noch schreiben könnte......
jaenicke - Fr 01.04.11 23:27
NeMeZ hat folgendes geschrieben : |
nö, das wird installer, und für Windows kake |
Wie meinen? Kannst du vielleicht ganze Sätze formulieren? :roll:
Was hat das jetzt mit einem Installer zu tun?
Don Krawallo - Fr 01.04.11 23:28
Tagchen zusammen...
Ich hänge mich mal hier mit rein und hoffe mir sei die Frage gestattet... Worin besteht denn da der Unterschied zwichen den herkömmlichen Delphi (z.b. 2010, oder XE) und Delphi Prism? Was ich bisher so mitgekriegt hab ist wohl das man hiermit .Net Anwendungen entwickeln kann?! Seh ich das richtig? Wenn dem so ist wirds wohl sicher auch ne andere Programmiersprache sein, also nicht die Delphi typische Schreibweise.
MFG D.Krawallo
jaenicke - Fr 01.04.11 23:55
Don Krawallo hat folgendes geschrieben : |
Worin besteht denn da der Unterschied zwichen den herkömmlichen Delphi (z.b. 2010, oder XE) und Delphi Prism? Was ich bisher so mitgekriegt hab ist wohl das man hiermit .Net Anwendungen entwickeln kann?! Seh ich das richtig? |
Genau, Delphi-ähnliche Syntax, aber für .NET.
Don Krawallo hat folgendes geschrieben : |
Wenn dem so ist wirds wohl sicher auch ne andere Programmiersprache sein, also nicht die Delphi typische Schreibweise. |
Ja, andere Programmiersprache, nein, es ist die typische Schreibweise, wenn auch natürlich etwas anders.
Don Krawallo - Fr 01.04.11 23:57
Ich danke für die kurze und knappe Aufklärung.
Goodn8
FrEaKY - Sa 02.04.11 13:07
NeMeZ hat folgendes geschrieben : |
'jaenicke'
danke für hilfe.... C# habe ich angefangen, aber keine zeit..... Delphi kann ich nicht mal zu ende lernen.... keine zeit . das ganze ist nicht beruflich, sondern hobby... deswegen habe ich die frage gestellt.... hier gibt es auch profi.... paar tipps würde ich gebrauchen..... |
Ich glaube, für sehr viele von den hier angemeldeten Usern ist Delphi ein Hobby. Aber für ein Hobby muss man sich auch Zeit nehmen.
Don Krawallo - Sa 02.04.11 18:29
Man muss sich natürlich immer vor Augen halten das es auf die verwendete Programmiersprache ankommt. Man nehme zum Vergleich mal Visual Studio... Mit VB eine einfach Form dazu noch ein Button hat man eine Größe von ca. 100 bis 150 KB. Bei Delphi XE mit den Standard-Einstellungen, ne simple Form + Button, kommt man auf ca. 900 KB.
Da sieht man z.b. schon das es wie gesagt auch stark Programmiersprachenabhänhig ist, wie @jaenicke auch bereits schrieb. Delphi finde ich aber nachwievor faszinierend. Wenn ich auch Anfänger bin... Da lieber nehm ich Delphi anstatt VB, C etc. In Verbindung mit einem gescheiten Packer/Protector scheint mir das immer noch die bessere Lösung. Hab mit Delphi eigentlich nur angefangen um selbst flexibler zu sein was das Trainer coden angeht.
Hab letztens erst ein neues Trainer Design samt *.nfo entworfen. Wen es interessiert... Download gibbet weiter unten.
Zum Thema *.nfo - Sowas z.b. mit Visual Studio zu lösen scheint mehr als schwierig. Visual Studio scheint nur True Type Schriften zu unterstützen. Somit würde die Terminal Schrift schonmal wegfallen. Bleiben also nur noch Courier New und Lucida Console die alle entsprechenden Zeichen unterstützen. Allerdings sieht damit eine *.nfo, programmiert in VB, mehr als schlecht aus.
MFG sILeNt heLLsCrEAm
Delete - Sa 02.04.11 18:36
Nein ist es nicht. Wenn du bei VB die Runtimes miteinkompilierst, weil sie bei Windows teilweise mitgeliefert werden, wie es bei Delphi der Fall ist, dann hast du auch deine 500KB Exe. Und wenn du bei Delphi die BPLs nicht mit einkompilierts, hast du auch eine kleine Exe, musst aber die BPLs mitliefern.
Don Krawallo - Sa 02.04.11 18:44
Das stimmt schon... Aber wie ich schon schrieb - "Standardeinstellungen"!!! Also Visual Studio oder auch Delphi mit den Standardeinstellungen installiert und bei Delphi z.b. die "Build-Konfigurationen" unangetastet lassen. ;-)
Delete - Sa 02.04.11 19:18
also das Argument ist ja jetzt etwas banane. Die Größe der Exe von den (zufällig) gewählten Voreinstellung des Compilers abhängig machen.
jaenicke - Sa 02.04.11 20:07
Luckie hat folgendes geschrieben : |
Die Größe der Exe von den (zufällig) gewählten Voreinstellung des Compilers abhängig machen. |
Zufällig ist es ja noch nicht einmal. Microsoft hat seinerzeit einfach entschieden, dass es sinnvoller ist, wenn die Runtime für jede VB Version einmal installiert werden muss als für jedes Programm den Speicherplatz zu belegen. Zur Zeit von VB war Speicherplatz aber auch noch teurer als heute.
Jetzt bei VB.NET gilt das gleiche. Einmal .NET installieren und das wars.
Der Unterschied zu Delphi ist schlicht die Verbreitung und die Marktmacht. Microsoft kann das machen, Embarcadero nicht. Denn in VB seinerzeit und jetzt in .NET sind enorm viele Programme geschrieben, so dass man das Framework in der Regel ohnehin auf dem PC hat.
Bei Delphi hingegen sieht das anders aus. Insbesondere weil ja jede Delphiversion wiederum eigene Bibliotheken benötigt. Noch dazu gibt es diese nicht einfach als separates Downloadpaket wie die VB Runtimes und .NET. Deshalb konnte die Standardeinstellung nur sein, dass keine Bibliotheken benötigt werden. Denn erstens ist genau das ja ein wichtiges Argument für den Endnutzer für Delphi und zweitens müsste sich jeder Entwickler sonst darum kümmern wie er die Runtimebibliotheken mitliefert...
Insofern liegen die Gründe für diese unterschiedlichen Einstellungen nicht bei den Sprachen / Compilern an sich.
Don Krawallo hat folgendes geschrieben : |
In Verbindung mit einem gescheiten Packer |
Den zeig mir einmal... ich kenne keinen. Nur son Zeug wie AsPack oder Upx.
HenryHux - Sa 02.04.11 20:21
Hey, was mich hier mal bei Gelegenheit interessiert...
Was macht soviele Cracks,Trainer etc. suspicious gegenüber Virenscannern?
Zb. Don Krawallos Trainer (oder was es auch war) hat bei einem Viertel aller Virenscanner angeschlagen. (Nicht dass ich dir unterstelle es wäre ein Virus :zwinker: )
Also welches Verhalten macht Virenscanner in der Hinsicht aufmerksam?
lg
spawn89 - Sa 02.04.11 20:25
@jaenicke: Das reicht mir nicht als Rechtfertigung für M$ OS-großes Bindungsframework. Ich vermisse keine Programme.
@HenryHux: Meist statisches einbinden von DLLs
Delete - Sa 02.04.11 20:51
Seit wann schlagen Virenscanner an, wenn DLLs statisch eingebunden werden? Das ist bei jedem Delphi Propgramm standard, dass die benötigten DLLs statisch eingebunden werden. Guck dir mal die Windows.pas an.
jaenicke - Sa 02.04.11 21:04
HenryHux hat folgendes geschrieben : |
Was macht soviele Cracks,Trainer etc. suspicious gegenüber Virenscannern? |
Dass deren Autoren oft irgendwelche Exe-Packer benutzen... Dass solche gepackten Programme oft als Virus erkannt werden, ist nur eines der Probleme solcher Packer. :roll:
Dazu kommt noch, dass diese auf den Speicher anderer Programme zugreifen. Beides ist auch bei Viren oft der Fall.
spawn89 - Sa 02.04.11 21:33
Ist mir zumindest meist so aufgefallen.
Aufgrund vom standard UPX-Packer treten afaik keine Virenfunde auf, da die meisten das entpacken.
Bei Cryptern schlägt dagegen fast alles an.
Don Krawallo - So 03.04.11 00:28
HenryHux hat folgendes geschrieben : |
Zb. Don Krawallos Trainer (oder was es auch war) hat bei einem Viertel aller Virenscanner angeschlagen. (Nicht dass ich dir unterstelle es wäre ein Virus :zwinker: ) |
In erster Linie ist hier der Packer/Encryptor der Auslöser des Übels. Gepackt und encrypted ist die EXE mit RLPack.
Aber selbst wenn einer Trainer nicht gepackt ist kann er von Antivierenprogrammen als schädlich eingestuft werden, da Trainer meistens per Hotkeys arbeiten. Trojaner oder Keylogger nutzen das auch. Der 2. Punkt ist die Antivierenlösung an sich. Ich selber nutze Kaspersky Internet Security und bin damit bisher sehr gut bedient. Hingegen mit Avira, Symantec oder Nod32 hab ich nur schlechte Eindrücke gesammelt.
Es gibt Antivirenlösungen die auch solcher Packer/Protectoren erkennen und daraus schließen das die Datei eben zwar gepackt und geschützt ist aber als nicht gefährlich eingestuft wird. Dieser Schuß kann aber allerdings nach hinten losgehen ;-) Denn es gibt wiederum Programme um sogenannte Fake Signaturen in eine Datei einzufügen.
Delete - So 03.04.11 00:41
Hotkeys sind auch Blödsinn. Ich habe schon dutzende Programme mit Hotkeys geschrieben und noch nie Probleme gehabt.
Don Krawallo - So 03.04.11 00:56
Das erzähl nicht mir sondern den Antivierensofterherstellen...
FrEaKY - So 03.04.11 04:50
Don Krawallo hat folgendes geschrieben : |
Man muss sich natürlich immer vor Augen halten das es auf die verwendete Programmiersprache ankommt. Man nehme zum Vergleich mal Visual Studio... Mit VB eine einfach Form dazu noch ein Button hat man eine Größe von ca. 100 bis 150 KB. Bei Delphi XE mit den Standard-Einstellungen, ne simple Form + Button, kommt man auf ca. 900 KB. |
:lol:
Ernsthaft 900 KB? Wow. Und ich hab schon gedacht, Delphi 7 wäre "groß" (360 KB bei leerer Form).
Naja, das Heilmittel nennt sich WinApi. Und bevor wieder jemand sagt, da kann man ja gleich zu C wechseln....Nö.
Aber ich frage mich dann doch, wo das Ganze hinführen word. Ist in 30 Jahren dann jede einfache "leere" Anwendung 1 GB groß, nur weil man sich den Speicher leisten kann und das Internet schnell genug sein wird? Lächerlicher Gedanke bei dem ich meinen Kopf schüttele. :roll:
jaenicke - So 03.04.11 05:55
FrEaKY hat folgendes geschrieben : |
Ernsthaft 900 KB? Wow. Und ich hab schon gedacht, Delphi 7 wäre "groß" (360 KB bei leerer Form).
Naja, das Heilmittel nennt sich WinApi. |
Dafür hast du mit der API eben keinen Komfort. Die Größe rührt ja daher, dass seit z.B. Delphi 7 enorm viel Funktionalität hinzugekommen ist. Irgendwo muss der Code dazu eben liegen...
Ein weiterer Punkt sind z.B. die RTTI-Informationen. Wenn man diese nicht braucht, könnte man den Platz natürlich sparen, aber diese Option wird erst noch kommen (wahrscheinlich).
Die Priorität liegt aber natürlich bei einer immer besseren Funktionalität, nicht beim Sparen von ein paar Kibibyte. Und das finde ich auch gut so, da es sehr viel Zeit bei der Entwicklung spart, wenn man auf diese verbesserten Funktionen zurückgreifen kann.
FrEaKY - So 03.04.11 06:11
Ich benutze die VCL natürlich auch gern. Aber es wäre doch viel besser,wenn der Compiler alles rausschmeißen würde, was nicht verwendet wird.
Delete - So 03.04.11 07:51
Tut er ja auch - zumindest zum Teil. Alle nicht benutzen Routinen landen nicht im Compilat. Aber einige Units initialisieren Dinge, die dann doch nicht gebraucht werden. Und es landen noch viele Ressourcen im Compilat, die meistens nicht benötigt werden. Guck dir das mal an und öffne eine VCL-Anwendung mit einem Ressourceneditor.
jaenicke - So 03.04.11 08:06
Luckie hat folgendes geschrieben : |
Und es landen noch viele Ressourcen im Compilat, die meistens nicht benötigt werden. |
Genau, meistens. Und da liegt auch schon das Problem:
Die Ressourcen werden per Compilerdirektive in Units eingebunden. Der Compiler kann schlicht nicht wissen welche davon zur Laufzeit angesprochen werden. Also
muss er alle drin lassen, die in eingebundenen Units liegen.
Diese Sachen werden sich auch nicht ändern, da es beim Kompilieren eben noch nicht feststeht welche dieser Daten benötigt werden.
Man sieht jedenfalls immer wieder beim Debuggen wie viel der Compiler eigentlich rauswirft. Denn wenn man zur Laufzeit Routinen im Debugger nutzen will, die man im Programm nicht verwendet hat (z.B. Getter von Eigenschaften, die man im Code nur über das private Feld setzt), dann geht das eben nicht.
Don Krawallo - So 03.04.11 16:01
Luckie hat folgendes geschrieben : |
...Guck dir das mal an und öffne eine VCL-Anwendung mit einem Ressourceneditor. |
Sicherlich nichts weltbewegendes was letztenendes die Größe der Datei ausmacht... Aber genau das ist ein Punkt wo ich mich immer frage warum die ganzen Cursor mit in der EXE landen wenn sowieso der Standardcursor auf ner Form genutzt wird?!
Delphi-Laie - So 03.04.11 18:01
jaenicke hat folgendes geschrieben : |
Deshalb konnte die Standardeinstellung nur sein, dass keine Bibliotheken benötigt werden. |
Nunja, in Borlands C++-Builder sind die Standardeinstellungen aber (leider?!) genau so (siehe
http://www.delphi-forum.de/posting.php?mode=quote&p=603891), daß man zur Benutzbarkeit der Compilate entweder dieses Softwarepaket oder wenigstens irgendwelche Bibliotheken auf dem Computer installiert haben muß - insoferst stimmt diese Aussage, daß die Standardeinstellung „nur so sein konnten“, eben nicht. Ich möchte allerdings nicht wissen, wieviel Verwirrung und gar Frustration bei unzähligen Empfängern der Compilate das schon auslöste, weil die eben unbenutzbar waren. Gerade, wenn man nicht werweißwie gierig nach einem Programm ist, ist es schneller wieder gelöscht, als es auf den Computer kam („Mist, Schrott, taugt nichts, funktioniert nicht...“). Zunächst war ich von den kleinen Exe-Dateien des C++-Builders auch begeistert, jedoch folgte recht bald die Ernüchterung.
Stellt man die betreffenden Optionen entsprechend so ein, daß die Exe-Dateien universell einsetzbar sind, werden die C++-Compilate leider größer als ihre Delphi-Pendants.
Sehr kleine Exe-Dateien, die anscheinend keine externen Bibliotheken benötigen, sind allerdings bei Nir Sofer (Nirsoft) verfügbar. Ich fragte ihn, womit er sie erstellt, und er antwortete mir „I use C/C++ in Microsoft Visual Studio.“
jaenicke - Mo 04.04.11 08:16
Don Krawallo hat folgendes geschrieben : |
Aber genau das ist ein Punkt wo ich mich immer frage warum die ganzen Cursor mit in der EXE landen wenn sowieso der Standardcursor auf ner Form genutzt wird?! |
Woher soll denn der Compiler wissen, dass du das nicht im Code irgendwo umschaltest? Zudem ändert sich der schon auf einem Editfeld.
Delphi-Laie hat folgendes geschrieben : |
Sehr kleine Exe-Dateien, die anscheinend keine externen Bibliotheken benötigen, sind allerdings bei Nir Sofer (Nirsoft) verfügbar. Ich fragte ihn, womit er sie erstellt, und er antwortete mir „I use C/C++ in Microsoft Visual Studio.“ |
Nur weil diese Bibliotheken auf deinem PC schon drauf sind, heißt das nicht, dass keine benötigt werden.
jaenicke - Mo 04.04.11 11:31
Das kann sein, weil manche Windows selbst ja auch braucht. Wie das bei 9x war... keine Ahnung. Ich habe seit Jahren keins mehr gestartet gehabt. ;-)
Aber du kannst ja selbst einmal im System-Verzeichnis schauen, ob du msvc*-Dateien findest.
Delphi-Laie - Mo 04.04.11 11:43
jaenicke hat folgendes geschrieben : |
Das kann sein, weil manche Windows selbst ja auch braucht. Wie das bei 9x war... keine Ahnung. Ich habe seit Jahren keins mehr gestartet gehabt. ;-)
Aber du kannst ja selbst einmal im System-Verzeichnis schauen, ob du msvc*-Dateien findest. |
Ich vermutete das deshalb, weil einige der Programme (alle durchweg mit kleinen Exe-Dateien) von Nir Sofer (Nirsoft) auch noch für 9.x tauglich sind.
Don Krawallo - Mo 04.04.11 15:02
jaenicke hat folgendes geschrieben : |
Don Krawallo hat folgendes geschrieben : | Aber genau das ist ein Punkt wo ich mich immer frage warum die ganzen Cursor mit in der EXE landen wenn sowieso der Standardcursor auf ner Form genutzt wird?! | Woher soll denn der Compiler wissen, dass du das nicht im Code irgendwo umschaltest? Zudem ändert sich der schon auf einem Editfeld... |
Ja das stimmt schon. Das leuchtet mir ja ein ;-) Vielleicht war das auch unglücklich ausgedrückt. Die Aussage bezog sich lediglich wieder auf die klassische Ausgangslage... Nur eine simple Form mit z.b. nen Button drauf. Kein Editfeld, Memobox etc. was einen anderen Cursor bedürfe. Und dennoch sind "jede Menge Cursor" mit enthalten.
Was mir letzens mal mit aufgefallen ist... In der fertigen EXE (bei Delphi 2010 und XE) gibts eine TLS (Thread Local Storage) Section. Da bin ich grade noch am probieren was diese hier (einfache Form + Button) für eine Rolle spielen. Zum Teil spielt diese eine Rolle beim Debuggerschutz. Ich hatte da mal ne gepackte EXE mit Olly geöffnet, aber Olly breakte garnicht erst am EP sondern das Programm lief sofort an. Insofern gab es früher diverse Packer da hat es gereicht die TLS Section aus dem Image zu löschen um zumindest den Debuggerschutz zu entfernen. Bei manchen Delphiprogrammen funktioniert das auch wenn man diese Section entfernt das man etwas Speicherplatz spart, allerdings ist das nur ein geringfüger Anteil.
MFG Don Krawallo
jaenicke - Mo 04.04.11 15:19
Don Krawallo hat folgendes geschrieben : |
Die Aussage bezog sich lediglich wieder auf die klassische Ausgangslage... |
Trotzdem weiß der Compiler nicht welche davon im Code (auch dem der delphieigenen Units) vielleicht benutzt werden.
Delete - Mo 04.04.11 15:25
Man könnte noch den Reloacation Table entfernen,. aber das sollte man nur bei Exe Dateien machen und tunlichst nicht bei DLLs.
jaevencooler - Mo 04.04.11 15:28
Moin Moin,
ich bin ja ungern der Zerberus hier, aber wenn ich sowas lese :
NeMeZ hat folgendes geschrieben : |
Hallo Leute.... brauche einen Tipp, bin Anfänger, in DX und API null Ahnung, aber Spile knacke ich gern, und schreibe Trainers für mich, mit Grafik und alles drum und dran :). Das Problemm ist- .exe Datei, die kann bis 2-3 MB sein, obwohl ich das hier nutze: |
frage ich mich doch, was meinst Du mit "knacken" ?
Ich kann nur hoffen das Du keinerlei illegale Tätigkeiten damit beschreiben wolltest, den soweit ich informiert bin, wird das in diesem Forum nicht gerne gesehen, und schon gar nicht aktiv unterstützt :?:
Es wäre schön wenn Du meine Vermutungen entkräften könntest.
Beste Grüße
Michael
HenryHux - Mo 04.04.11 15:53
Naja, das knacken von einem Kopierschutz muss afaik nicht unbedingt illegal sein, solange er die Software gekauft hat und den "Crack" nur für sich nutzt.
Lg
Don Krawallo - Di 05.04.11 02:31
jaenicke hat folgendes geschrieben : |
Trotzdem weiß der Compiler nicht welche davon im Code (auch dem der delphieigenen Units) vielleicht benutzt werden. |
So ein dummes Ding der Compiler, häh?!
HenryHux hat folgendes geschrieben : |
Naja, das knacken von einem Kopierschutz muss afaik nicht unbedingt illegal sein, solange er die Software gekauft hat und den "Crack" nur für sich nutzt... |
Nach aktueller deutscher Rechtssprechung, soweit ich informiert bin, ist das knacken eines Kopierschutzes sehr wohl illegal bzw. stellt das korrekt bezeichnet eine Straftat dar. Ob nun Kommerziell oder nur für private Zwecke spielt dabei keine Rolle.
Auch gibt es den Trugschluß das man angeblich zwar berechtigt ist eine Kopie eines Mediums anzufertigen unter der Auflage das der Kopierschutz nicht umgangen oder geknackt wird. Das heißt du müsstest eine 100%ige 1:1 Kopie eines Mediums anfertigen, mit dem
Original-Kopierschutz, die Seriennummer des Original-Mediums etc. Also mit allem drum und dran. Aber schon alleine den Kopierschutz 1:1 zu übernehmen dürfte z.b. ab Securom Version 4.8 recht schwierig werden da ab diesem Versionsdatum die RMPS-Daten eine entscheidende Rolle spielen.
Mit anderen Worten... Es ist und bleibt nachwievor illegal. Ich will mal so sagen... Für den ausschließlichen Privatgebrauch gilt wohl eher das Sprichwort: "Was man nicht weiß, macht einen nicht heiß."
Im eigentlichen Sinne bist Du ja noch nichtmal dazu berechtigt einen Trainer zu programmieren. Also das programmieren vielleicht schon, aber nicht das Spiel zu "hacken". In vielen EULA's von diversen Spieleherstellern steht z.b. das es dir nicht erlaubt ist ein Spiel zu decompilieren oder zu dissassemblieren oder in sonst einer Weise zu verändern so das es nicht mehr dem Auslieferungszustand entspricht.
Ich denke mal eher das Trainer, wohlgemerkt ausschließlich für Single-Player, mehr oder weniger geduldet werden da diese nicht dazu genutzt werden einen Kopierschutz zu umgehen. Wie gesagt rede ich hier nur von Single-Player, bei Multiplayer denke ich sollte jedem klar sein warum das auch mit aller Härte strafrechtlich verfolgt wird, bzw. werden kann.
FrEaKY - Di 05.04.11 03:19
Don Krawallo hat folgendes geschrieben : |
Nach aktueller deutscher Rechtssprechung, soweit ich informiert bin, ist das knacken eines Kopierschutzes sehr wohl illegal bzw. stellt das korrekt bezeichnet eine Straftat dar. Ob nun Kommerziell oder nur für private Zwecke spielt dabei keine Rolle. |
Und diese Rechtssprechung gibt es wahrscheinlich in 10 Jahren nicht mehr, weil sie einfach total unlogisch und bescheuert ist. Was kaufe ich denn eigentlich, wenn ich Software kaufe? Ich erwerbe doch das Recht, das Programm zu nutzen oder? Tja, das Programm ist nur Binärcode und unter nutzen verstehe ich auch verändern...
Don Krawallo - Di 05.04.11 13:02
Halli Hallo... Verstehst keinen Spaß, oder?
jaenicke - Di 05.04.11 13:04
Doch, aber die Ironie-Tags fehlten und der Ironie-Detektor hat noch geschlafen. :mrgreen: :P
Delphi-Laie - Di 05.04.11 13:51
Es ist immer wieder erstaunlich, wie die Leute sich von der von außen aufgezwängten Sprache letzlich in ihrem Denken (Orwell!) manipulieren lassen und das - logischwerweise, denn das liegt ja in der Natur der Manipulation - nicht einmal bemerken.
„Kopierschutz“ - wen oder was „schützt“ denn dieser Schutz?! Die Software bzw. die Programme oder, weiter betrachtet, ihre Hersteller mit deren kommerziellen Interessen. Aus
unserer Sicht der Anwender und/bzw. Verbraucher ist es hingegen eine Kopier
sperre! Leute, laßt Euer Denken doch nicht vom ideologischen Kampfvokabular profitgieriger Kapitalisten vernebeln!
Don Krawallo hat folgendes geschrieben : |
HenryHux hat folgendes geschrieben : | Naja, das knacken von einem Kopierschutz muss afaik nicht unbedingt illegal sein, solange er die Software gekauft hat und den "Crack" nur für sich nutzt... | Nach aktueller deutscher Rechtssprechung, soweit ich informiert bin, ist das knacken eines Kopierschutzes sehr wohl illegal bzw. stellt das korrekt bezeichnet eine Straftat dar. Ob nun Kommerziell oder nur für private Zwecke spielt dabei keine Rolle.
Auch gibt es den Trugschluß das man angeblich zwar berechtigt ist eine Kopie eines Mediums anzufertigen unter der Auflage das der Kopierschutz nicht umgangen oder geknackt wird. |
An einer Kopiersperre gibt es nicht zu „umgehen“ oder zu knacken: Ist sie wirksam, dann verhindert sie das Kopieren (logisch), und juristisch ist alles im Lot, kann man dennoch Kopieren, dann ist sie ihre Bezeichnung nicht wert und ist eben keine Kopiersperre. Eine Kopie „unter Umgehen der Kopiersperre“ ist also schon (sprach)logisch Unfug.
Kopien für den Privatgebrauch werden, egal, ob nun rechtmäßig oder nicht, nie zu verhindern sein, weil sich dafür mangels Nachweisbarkeit kein Kläger finden kann.
Das Verändern originaler Software verstößt allerdings gegen das Urheberrecht.
Delete - Di 05.04.11 16:33
Delphi-Laie hat folgendes geschrieben : |
Das Verändern originaler Software verstößt allerdings gegen das Urheberrecht. |
Aber auch nur dann wenn ich die veränderte Software in Umlauf bringe.
Martok - Di 05.04.11 17:27
Und was ihr alle vergesst: wenn die Software bei mir nicht funktioniert, darf ich jede Maßnahme ergreifen die nötig ist, damit ich sie nutzen kann. Wenn der Kopierschutz sich nicht mit meinem DVD-Laufwerk verträgt, darf ich z.B. einen NoCD nutzen. Gut, da den eigentlich keiner in Umlauf bringen darf müsste ich mir den selber schreiben, aber geht ja ums Prinzip.
Wie auch immer: das ist hier eigentlich gar nicht das Thema. Das ist nämlich "EXE, .exe verkleinen", nur um das mal erwähnt zu haben. Da sehe ich auch kein Regelproblem drin :nixweiss: Wenn ihr euch weiter über die rechtliche Seite unterhalten wollt: Bescheid sagen, dann kann das jemand hier rausoperieren.
Delphi-Laie - Di 05.04.11 22:12
Martok hat folgendes geschrieben : |
Und was ihr alle vergesst: wenn die Software bei mir nicht funktioniert, darf ich jede Maßnahme ergreifen die nötig ist, damit ich sie nutzen kann. Wenn der Kopierschutz sich nicht mit meinem DVD-Laufwerk verträgt, darf ich z.B. einen NoCD nutzen. Gut, da den eigentlich keiner in Umlauf bringen darf müsste ich mir den selber schreiben, aber geht ja ums Prinzip. |
Nicht ganz: Wenn die Software nicht funktioniert, steht der Produzent in der Gewährleistungspflicht und hat vor allen anderen Lösungen eine Nachbesserungspflicht. Schlägt diese fehl, kann man den Kaufvertrag Zug um Zug rückabwickeln und/oder selbst Hand anlegen.
Wir alle aber wissen, welch ein Pfusch käufliche Software oft, ja fast im Regelfalle ist und wie lausig Softwarproduzenten ihrer gesetzlichen Pflicht nachkommen (nämlich so gut wie nie). Anstatt sich um die Erfüllung seiner Pflichten zu kümmern, werden sich irgendwelche unwirksamen, weil erst nach dem Kaufe bekanntgewordene "Vereinbarungen" ausgedacht und tatsächlich vorausgesetzt, daß es sich um wirksame Verträge handelt - welch ein Hirngespinst!
HenryHux - Di 05.04.11 22:30
Angenommen der Fall du lädst dir mehrere Tausend Musiktitel, Softwares und Spiele aus dem Internet und irgendwann steht die nette Staatsanwaltschaft vor deiner Tür, nimmt dir schön alle Speichermedien und ähnliches mit und kann dir genau nachweisen was du wann gedownloadet hast.
Wenn du dann den Beweis vorbringen kannst, dass du zum Zeit des Downloads alle Titel etc. legal besessen hast, dann denke ich werden bestehende Anklagen fallen gelassen, egal wieviele Kopierschutze (hmm kennt wer den Plural von Schutz? Wollte nicht auf Kopiersperren ausweichen :D ) du umgangen hast, solange du die Sachen nicht noch irgendwo verbreitet und multipliziert hast.
Ich kenne die genaue Rechtslage nicht, aber ich kann es mir auf keinen Fall anders vorstellen, denn du hast die Gegenstände ja schließlich legal erworben und dürftest ja dann auch privat damit machen was du willst, schließlich ist es dein Besitz nach dem Kauf und du schadest keiner von den Herstellerfirmen, wenn du Veränderungen nur für dich vornimmst, die dir den Umgang erleichtern.
Bitte berichtigt mich, wenn ich falsch liege.
Lg
jaenicke - Di 05.04.11 22:32
Selbst der Besitz eines Tools, das einen Kopierschutz knackt, ist in Deutschland nach aktueller Rechtslage bereits strafbar.
Aber wie
Martok bereits sagte ist das hier nicht das Thema des Threads.
Delphi-Laie - Di 05.04.11 22:55
HenryHux hat folgendes geschrieben : |
Angenommen der Fall du lädst dir mehrere Tausend Musiktitel, Softwares und Spiele aus dem Internet und irgendwann steht die nette Staatsanwaltschaft vor deiner Tür, nimmt dir schön alle Speichermedien und ähnliches mit und kann dir genau nachweisen was du wann gedownloadet hast.
Wenn du dann den Beweis vorbringen kannst, dass du zum Zeit des Downloads alle Titel etc. legal besessen hast, dann denke ich werden bestehende Anklagen fallen gelassen, egal wieviele Kopierschutze (hmm kennt wer den Plural von Schutz? Wollte nicht auf Kopiersperren ausweichen :D ) du umgangen hast, solange du die Sachen nicht noch irgendwo verbreitet und multipliziert hast. |
´
Seit wann muß man in Teutonia seine Unschuld beweisen? :?:
Edit: Dieser Gegenbeweis wird auch gar nicht vonnöten sein, weil der Download nicht dadurch legal wird, daß man die Originale schon besitzt. Außerdem inkludieren diese Downloads auch die "Uploadbarkeit", was eine Veröffentlichung und mithin ein illegales Vervielfältigungsangebot darstellt.
Außerdem hast Du nebenbei noch einen Vorteil der Sperren gegenüber den "Schutzen" bekanntgegeben. :D
Gerd Kayser - Di 05.04.11 23:06
jaenicke hat folgendes geschrieben : |
Selbst der Besitz eines Tools, das einen Kopierschutz knackt, ist in Deutschland nach aktueller Rechtslage bereits strafbar. |
Es gibt aber Ausnahmen: Die Deutsche Bibliothek darf kopiergeschützte Medien u. a. zum Zwecke der Langzeitarchivierung knacken. ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!