| |
|
|
- Seite 1 - |
|
Georg Teles | Guten Abend,
als UPX-Poweruser wollte ich mein allererstes Programm in X3 erstellen und bin vielleicht auf einen möglichen BUG gestoßen.
Dazu habe ich eine Runtime wie üblich mit Ressourcen gefüttert und mit UPX komprimiert. Wenn ein Programmcode nun kompiliert & und zu einem Programm gelinkt wird, will dieses Programm eine PRC Datei haben obwohl diese ja bereits hineingelinkt ist !
Mit der originalen Runtime PrfRun32.exe (XProfan X3) passiert nach dem Komprimieren mit UPX das selbe. Allerdings funktionieren die Runtimes von XProfan 10.0 und X2 nach der UPX Komprimierung tadellos !
Ist es möglich, dass der Pointer in PrfRun32.exe der X3 auf die PRC darin etwas damit zutun hat ?
Denn... ich habe mit Kompiler & Linker der X2 eine Runtime der X3 (mit UPX komprimiert) kompiliert & gelinkt, selbes Phänomen.
Was aber funktioniert: Kompiler + Linker von X3 und Runtime von X2 (mit UPX komprimiert)
UPX Version: 3.91w |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
RGH | Bislang wurde der Beginn des Kompilates als fixer Wert angegeben, der aus der Größe der Runtime berechnet wurde. Daher klappte es auch mit vorher komprimierten Runtimes. Da nun aber beim und auch nach dem Linken noch Ressourcen hinzugefügt werden können, wird der Beginn des Kompilates beim Start des Programmes gesucht. Allerdings fange ich da bei der Größe der Runtime (ohne Ressourcen) an, damit es möglichst schnell geht. Bei einer komprimierten Runtime schlägt das nun fehl. Bei aktuellen Datenträgergrößen macht Komprimieren nicht wirklich Sinn. Was aber nun gehen sollte: Das fertige gelinkte Programm komprimieren. Es besteht also kene Notwendigkeit mehr, die Ressourcen vor dem Linken der Runtime hinzuzufügen und diese vorher zu komprimieren!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 03.01.2016 ▲ |
|
|
|
|
Georg Teles | Nabend Roland,
RGH (03.01.2016)
Was aber nun gehen sollte: Das fertige gelinkte Programm komprimieren.
leider fragt das komprimierte Programm doch nach einer PRC-Datei
RGH (03.01.2016)
Es besteht also kene Notwendigkeit mehr, die Ressourcen vor dem Linken der Runtime hinzuzufügen und diese vorher zu komprimieren!
getestet |
|
|
| |
|
|
|
Jörg Sellmeyer | Hast du mal probiert, eine prc-Datei mit der komprimierten Runtime zu starten? Also draufziehen oder als Parameter übergeben? |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Jörg Sellmeyer | zuviel Text... |
|
|
| |
|
|
|
Matthias Arlt | Ich bin nunmehr auch auf das Problem mit komprimierter Runtime unter FreeProfan32 gestoßen. (Gleiches Verhalten, wie in den vorherigen Beiträgen schon beschrieben).
Rolands Anmerkung, die fertig gelinkte EXE zu komprimieren, führt zum gleichen negativen Ergebnis. Deshalb erschließt sich mir noch nicht so recht, ob das nun ein noch zu behebender Bug oder doch ein künftig hinzunehmendes Verhalten ist...?
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.02.2016 ▲ |
|
|
|
|
RGH | Zunächst: Wieso sollte man bei heutigen Datenträgergrößen und Internetgeschwindigkeiten noch die XProfan-Rutime komprimieren?
Schon oft wurden in der Vergangenheit UPX-komprimierte Programme von manchem Virenprogramm eher argwöhnisch betrachtet.
Da ich UPX zur Zeit nicht installiert habe: Wie groß ist den eine UPX-komprimierte Runtime von XProfan X3? (Vielleicht kann ich ja die Suche nach dem Beginn des Kompilates etwas früher anfangen lassen.)
Gruß Roland |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.02.2016 ▲ |
|
|
|
|
| FreeProfan-Runtime upx mit best und brute ca. 700KB - also ca 1/4:
C:\>upx prfrun32.exe --best --brute
Ultimate Packer for eXecutables Copyright (C) 1996 - 2008 UPX 3.03w Markus Oberhumer, Laszlo Molnar & John Reiser Apr 27th 2008
File size Ratio Format Name -------------------- ------ ----------- ----------- 2861744 -> 725504 25.35% win32/pe prfrun32.exe
Packed 1 file.
|
|
|
| |
|
|
|
| RGH (20.02.2016)
Wieso sollte man bei heutigen Datenträgergrößen und Internetgeschwindigkeiten noch die XProfan-Rutime komprimieren?
Weil auch heute noch die Datenträgergrößen² und Internetgeschwindigkeiten³ zu sehr begrenzt sind, als dass sie nicht mehr wesentlich ins Gewicht fielen.
² Zunahme der Nutzung von Kleincomputern/ Miniservern mit geringer Speicherkapazität (Toaster, HDMI-Sticks, Windows-Armbanduhren, ...)
³ "teures" Funk-Internet, 2,7MB-Datei stundenlang über eine 2G-Leitung herunterladen weil Quota mal wieder erschöpft
Die CPU-Leistungen sind gemeinsam mit Datenträgergrößen und Internetgeschwindigkeiten gewachsen, unkomprimierte Exen danach grundsätzlich erstmal unnötig groß. |
|
|
| |
|
|
|
Georg Teles | UPX-Version: upx391w
Originale Runtime: 444 KB (455.168 Bytes) Ohne jegliche Ressourcen: 364 KB (372.736 Bytes)
Servus |
|
|
| |
|
|
|
Matthias Arlt | RGH (20.02.2016)
Zunächst: Wieso sollte man bei heutigen Datenträgergrößen...
IF hat's ja schon vorweg ausführlich beantwortet. Es ist nicht allein der Platz auf Datenträgern das entscheidende Kriterium. Für die Datenübertragung kann eine Verschlankung immer noch essentiell sein. Geht es dabei noch um Programme, die aus mehreren Komponenten bestehen, kommt da schnell Einiges zusammen.
Und der Verweis auf die Komprimierung der fertigen Datei trug bei mir da doch eher zur Verwirrung als zur Erhellung bei. Deshalb meine Nachfrage.
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.02.2016 ▲ |
|
|
|
|
RGH | Da die Start-Verzögerung beim früheren Suchbeginn nicht messbar ist, beginne ich jetzt (ab der kommenden Version X3.1) ab Position 110 kB zu suchen. Das sollte auch für das stärkste Kompressionsprogramm reichen. In FreeProfan wird das dann auch so umgesetzt.
Gruß Roland |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.02.2016 ▲ |
|
|
|