BB Exe verkleinern - UPX

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

ozzi789

Betreff: BB Exe verkleinern - UPX

BeitragMi, Jul 22, 2009 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil Blitzbasic so ziemlich alles in die Exe packt, werden sie auch bei nur kleinen Programmen "sehr" gross.
Dies ist so da es einem das Includen jediglicher Funktionen erübrigt...
Zitat:
B+ ~ 740kb
B3D ~ 1.25 mb


Doch zum Glück gibt es UPX
the Ultimate Packer for eXecutables
Es ist ein kleines Programm welches es ermöglicht Exen zu verkleinern ohne die Funktionalität einzuschränken!
nach der Anwendung auf der nomalen Komprimierung sieht es etwa so aus

Zitat:
B+ ~ 315kb
B3D ~ 469kb


(es wurde ohne Debugger kompiliert!)


Nun zum Downloadlink

So nun wollen wir es auch gleich testen
-Entpackt das zip in einen Ordner
-Legt ein File namens Pack.bat an schreibt das rein
Zitat:
upx untitled.exe
pause

-Kopiert die zu verkleinernde exe ins Verzeichnis zur Bat (wobei untitled.exe der name eurer exe ist)
-Führt die Bat aus

Weitere Parameter könnt ihr der upx.doc entnehmen die auch in dem Zip file ist




Dank Xeres, gibt es nun eine tolle konfortable Lösung per Kontextmenü eine EXE zu packen!

Achtung! Ihr solltet wissen was ihr tut, wenn ihr an der Registry herum fummelt.
Geht auf Start -> ausführen und gebt "regedit" ein.

Unter dem Schlüssel
HKEY_CLASSES_ROOT

suchen wir den Unterschlüssel
exefile

der sollte den Unterschlüssel
shell
haben. Erstellt einen neuen Unterschlüssel mit einem passenden Namen für das Kontextmenü, z.B.
Mit UPX packen

Erstellt für diesen nochmal einen Unterschlüssel mit dem Namen
command

Für diesen Schlüssel legt ihr jetzt den Wert fest (im rechten Fenster auf Standard doppelklicken) und zwar im Format
UPX-pfad "%1"

Bei mir wäre das:
E:\Programme\UPX Compressor\upx.exe "%1"

Der Pfad muss zur upx.exe führen, das "%1" übergibt die Datei an das aufgerufene Programm.

Zum Schluss sollte das ganze so aussehen

user posted image


Falls ihr dieses Feature löschen / deinstallieren möchtet, geht erneut ins Regedit, und löscht den Schlüssel (nur den der wir erstellt haben, nicht den ganzen Shell Schlüssel!)
Mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
  • Zuletzt bearbeitet von ozzi789 am Fr, Sep 18, 2009 12:40, insgesamt 3-mal bearbeitet

Starwar

BeitragMi, Jul 22, 2009 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
(es wurde ohne Compiler kompiliert!)

Höh?
MFG

ozzi789

BeitragMi, Jul 22, 2009 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
-compiler +debugger
Tschuldige wurde editiert Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
  • Zuletzt bearbeitet von ozzi789 am Mi, Jul 22, 2009 18:24, insgesamt einmal bearbeitet

Starwar

BeitragMi, Jul 22, 2009 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Problem, kann jedem mal passieren.
Aber trotzdem ne schöne Sache.
MFG

mpmxyz

BeitragMo, Aug 10, 2009 10:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Heute bin ich mal dazu gekommen, dieses Programm zu testen.
Es ist wirklich nicht schlecht.

Ich habe es aber anders gestartet.
Man kann seine zu verkleinernde exe auch einfach auf die "upx.exe" ziehen und muss keine *.bat-Datei erstellen, wenn man nicht gerade weitere Parameter braucht.

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

hazumu-kun

BeitragMo, Aug 10, 2009 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Wer zu faul ist es mit der upx cmd version zu machen googled mal nach UPX Shell.
Ist zwar en inofizielles Frontend aber sehr einfach zu neutzen wegen der Shell-Integration

Rechtsklick auf exe oder dll -> Compress with UPX
=fertig
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
 

Cyderic

BeitragDi, Aug 11, 2009 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werd noch wahnsinnig...ich hab versucht über BlitzBasic die UPX aufzurufen aber es klappt einfach nicht. Das kuriose:

Ich erstelle eine Verknüpfung in Windows und schreibe den Befehl rein und teste es -> es funktioniert.
Nun nehme ich eben diesen Befehl und mache es in BlitzBasic mit ExecFile() -> es funktioniert nicht (das fenster plobbt nur ganz kurz auf)

Ich benutze die obige bat Datei in Windows -> es funktioniert
Ich schreibe mit BlitzBasic die bat Datei und führe sie mit ExecFile() aus -> es funktioniert nicht
Ich gehe in Windows und starte die von BlitzBasic geschriebene bat Datei -> es funktioniert

Mache ich in die Bat Datei den Pause befehl rein und starte es über BB kommt "Der Befehl upx konnte nicht gefunden werden"

WTF? Shocked

Xeres

Moderator

BeitragDi, Aug 11, 2009 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du mit Blitz auch im UPX-Ordner bzw. gibst den richtigen Pfad zu upx.exe an?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Cyderic

BeitragDi, Aug 11, 2009 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach krass, ja der Pfad hat gestimmt, ich hab ihn mit Variablen zusammengesetzt. Das hat aber anscheinend nicht gereicht. Ich hab jetzt mal Changedir() an der Codestelle vor dem ausführen gemacht und das somit als CurrentDir() gesetzt und dann gings. Wieder was gelernt, danke Smile

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group