Komprimierungsprogramm für EXE-Dateien (Projektname: Catjia)

Anwendungen, Tools, Userlibs und anderes nützliches.
Little John

Beitrag von Little John »

ts-soft hat geschrieben:Es geht auch um die Ladezeit, nicht nur um die Größe. [...]
Verstehe. Danke für die Richtigstellung!

Gruß, Little John
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

@ Little John
Das Icon des Programms ist nach dem Komprimieren nicht mehr sichtbar (auf dem Desktop).
Bin ich schon dran. Wird in einer der nächsten Version verfügbar sein.
Die Versionsinformationen sind nicht mehr sichtbar (rechter Mausklick).
Hab ich mir notiert. Werde ich übernehmen. Danke für den Hinweis!
Das Programm erkennt Kommandozeilenparameter nicht mehr oder nicht mehr richtig!!
Werd ich mir ebenfalls anschauen! Man, das Projekt bringt doch mehr Arbeit mit sich als gedacht /:-> :mrgreen:

@ All

Anbei eine neue Version, die jetzt auch eventuell vorhandene Manifest-Daten (XP Skin) übernimmt:

http://cnesm.de.vu/Catjia.zip
Zuletzt geändert von CNESM am 18.07.2008 13:10, insgesamt 1-mal geändert.
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Update:

- Übernahme der Dateiattribute + aller Datumstypen der Originaldatei (Erstellungsdatum etc.)
- Komandozeilenparameter werden nun korrekt übergeben (Ich hab das mit einfachen Beispielen über RunProgram() getestet. Läuft dabei problemlos)

http://cnesm.de.vu/Catjia.zip
Little John

Beitrag von Little John »

Hallo,

leider gibt's hier weiterhin Probleme nach der Kompression:
- kein Icon sichtbar
- keine Versionsinformationen bei Rechtsklick > Eigenschaften
- Das mit den Kommandozeilenparametern kann ich jetzt nicht testen, weil sich das Programm gar nicht starten lässt.
Fehlermeldung:
------------------------------------------------------------------------------------
<Programmbeschreibung> hat ein Problem festgestellt und muss beendet werden.
blah .... blah
Dieses Problem bitte auch an Microsoft berichten.
[ Problembericht senden ] [ Nicht senden]
------------------------------------------------------------------------------------

Ich denke, viele von uns kennen diese Fehlermeldung. :-/

Gruß, Little John
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Das erste Icon, sowie die VersionsInfo sollte nie komprimiert werden. Macht
UPX per default auch nicht. Der Komprimierer sollte also vor der
Komprimierung alle Resourcen extrahieren und entfernen, dann packen und
Resourcen mit Resource-Compiler oder eigenem Code wieder anfügen.

Da die Resourcen immer am Ende der Exe sitzen, sollte es nicht so schwer
sein, diese erstmal abzuschneiden (fängt IMHO immer mit einer bestimmten
Bytefolge an).

Ich denke mal das sollte auch noch zu schaffen sein :wink:

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

so wie ich das ganze sehe,
wird nicht wie von upx bekannt einzelne sections etc.
gepackt und geadded,
sondern es wird nur mittels entweder dem hier:
http://www.purebasic.fr/english/viewtopic.php?t=22382

oder dem hier
http://www.purebasic.fr/german/viewtopic.php?t=9172

die exe als data im memory entpackt und dann im memory
ausgeführt.
Also nix schon die sections auswerten......
aber ich könnt mich auch irren.....
Rings hat geschrieben:ziert sich nich beim zitieren
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Das Icon und die Versioninfos hab ich noch net umgesetzt. Hatte da bisher nicht die Zeit mich ranzusetzen. Hab erstmal die Sachen gemacht, die schnell gingen.

Die zwei von Rings gezeigten Beispiele sind glaube ich jedem bekannt, der schon mal nach dem Thema "Exe" und "Ram" gesucht hat. Leider läuft das Beispiel aus dem englischen Forum bei mir garnicht:

http://www.purebasic.fr/english/viewtopic.php?t=22382

und das Beispiel aus dem deutschen Forum leider nur bedingt. Hatte mir das anfangs auch angeschaut, nur leider lief das auf unseren IPK Servern so schlecht und verursachte teilweise extrem unschöne Abstürzte. Auch UPX sorgt bei mir regelmäßig zu Abstürzen der gepackten Dateien, was für mich auch der Grund ist, das Programm nicht mehr zu benutzen und von dieser Sectionen-Splitterei weg zu kommen. Hab mich daher für eine etwas andere Art entschieden.

Mich würds nur mal interessieren, wie du auf deine Programmiertheorie gekommen bist, Rings.
kein Icon sichtbar
keine Versionsinformationen bei Rechtsklick > Eigenschaften
Ich hatte im Update ja auch nix davon geschrieben, das diese Dinge umgesetzt wurden ... Finde, das das Dinge sind, die erstmal nach hinten geschoben werden können.

Code: Alles auswählen

Das mit den Kommandozeilenparametern kann ich jetzt nicht testen, weil sich das Programm gar nicht starten lässt. 
Fehlermeldung: 
Ist das nur bei einem bestimmten Programm oder bei allen? Wäre toll, wenn du mir das Programm mal irgendwie zur Verfügung stellen könntest.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

CNESM hat geschrieben:Mich würds nur mal interessieren, wie du auf deine Programmierertheorie gekommen bist, Rings.
1. in deinem Tool ist eine Exe integriert, das ist wohl der STUB.
2.Dein Stub selbst ist nicht gepackt, hat also viele 0'en drinne
3.Die verwendeten API-Aufrufe ähneln denen aus den 2 genannten Bsp.
(einfach einmal die Imports anschauen)
Rings hat geschrieben:ziert sich nich beim zitieren
Little John

Beitrag von Little John »

CNESM hat geschrieben:Ich hatte im Update ja auch nix davon geschrieben, das diese Dinge umgesetzt wurden ...
Stimmt. Das hatte ich als selbstverständlich angenommen. :D
CNESM hat geschrieben:Finde, das das Dinge sind, die erstmal nach hinten geschoben werden können.
OK, aber ich habe zum Testen von Programmen im pre-pre-alpha-Stadium oder so nicht die Lust und Zeit. Dann warte ich mit neuen Tests, bis das Programm weiter entwickelt ist.
CNESM hat geschrieben:

Code: Alles auswählen

Das mit den Kommandozeilenparametern kann ich jetzt nicht testen, weil sich das Programm gar nicht starten lässt. 
Fehlermeldung: 
Ist das nur bei einem bestimmten Programm oder bei allen? Wäre toll, wenn du mir das Programm mal irgendwie zur Verfügung stellen könntest.
Ich hatte es zunächst nur mit einem Programm getestet, was dann eben nicht funktionierte. Es handelt sich dabei um die EXE in diesem ZIP-Archiv. Es ist ein C-Programm, compiliert mit dem Borland C++ 5.5.1 Command-line Compiler.

Jetzt habe ich auch mal PureBasic.exe und Totalcmd.exe (Total Commander) mit Catjia komprimiert, das funktioniert auf den ersten Blick ohne Probleme.

Gruß, Little John
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

ts-soft hat geschrieben: Da die Resourcen immer am Ende der Exe sitzen, sollte es nicht so schwer
sein, diese erstmal abzuschneiden (fängt IMHO immer mit einer bestimmten
Bytefolge an).
Man kann nicht darauf vertrauen das die Section, welche die Resourcen beherbergt wirklich immer am Ende sitzt, auch wenn das meistens der Fall ist, ist das keine festgelegte Konvention. Macht aber nix. Alle nötigen Infos lassen sich aus dem Optional Header bzw. dem Data Directory auslesen.

Wenn dich das PE-Format interessiert, kannst dir mal diesen Artikel zu Gemühte führen, ist sehr interessant.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten