Seite 2 von 5

Verfasst: 18.07.2008 06:42
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

Verfasst: 18.07.2008 08:12
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

Verfasst: 18.07.2008 13:09
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

Verfasst: 18.07.2008 14:32
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

Verfasst: 18.07.2008 14:53
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

Verfasst: 18.07.2008 15:36
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.....

Verfasst: 18.07.2008 16:40
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.

Verfasst: 18.07.2008 16:49
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)

Verfasst: 18.07.2008 17:13
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

Verfasst: 18.07.2008 18:39
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.