EXE Packer - sinnvoll und nützlich?!
EXE-Packer werden verwendet, um ausführbare Windows Dateien (EXE-Dateien) zu komprimieren und so die Dateigröße zu reduzieren. Dies kann aus verschiedenen Gründen nützlich sein, wie z.B. zur Reduzierung des Speicherplatzbedarfs.
Diese bleiben im Gegensatz zu den Packern wie ZIP oder WinRAR dann immer noch lauffähig und können direkt gestartet werden.
Einige Packer können den Programmcode so verändern, dass er für einfache Analysewerkzeuge (z.B. Debugger) schwerer verständlich wird. Mit einem Editor z.B. kann man dann keinen Text mehr erkennen und dort irgendwelche einfachen Manipulationen vornehmen.
Kennt man solche EXE-Packer und hat man sie schon mal angewendet?
Hat das denn wirklich Vorteile oder ist es nur für Programmierer interessant?
5 Antworten
Naja, die meisten größeren Anwendungen haben die meisten Dateien eh außerhalb der exe Datei, und die exe Datei ist 100 MB, und wen juckt es 5 MB zu sparen.
Es kommt ganz darauf an, warum man ausführbare Dateien (erneut) packen möchte. Ich denke da unter anderem UPX, Themida oder VMProtect. Deren Verwendung kann Sinn machen, wenn man Programme und Bibliotheken gemeinsam packen will.
Für Obfuskation nimmt man je nach Sprache eher ConfuserEx, Obfuscar (.NET) sowie andere Frameworks. Letztendlich muss jeder selber wissen, wie viel Zeit, Geld und Energie hineingesteckt wird, um die eigene Entwicklung vor Raubkopien zu schützen.
Danke Dir.
Über VMProtect bin ich damals auch schon mal gestolpert, fand aber privat den Preis von fast 270€ doch schon "happig" .
hatte dann den UPX-Scrambler von Dirk Paehl genommen, der zumindest für das schnelle Entpacken einen Schutz eingebaut hatte
Es ist nicht wirklich ein Schutz und lediglich jene etwas beschäftigt, die in punkto IT nicht besonders versiert sind. Code-Hardening umfasst jedoch viel mehr wie bereits erwähnte Obfuskation, Hashing, und weitere Maßnahmen.
Eine Kombination mehrerer Schutzmechanismen, um dann widerstandsfähiger gegen Reverse Engineering und Manipulation zu sein. Besonders spaßig wird es, wenn man dann mal Ghidra über MCP mit unzensierten LLMs freilaufen lässt. Details jedoch weglasse. ;)
Kenn ich nicht, und ich steh dem skeptisch gegenüber. Nur noch eine weitere Problemquelle. Platzmangel wegen EXEs ist doch wirklich kein Problem.
Wenn du Daten mit in die EXE packst, die groß sind und sich leicht packen lassen, Du aber auch nicht immer erst bei Bedarf partiell die Daten entpacken willst, dann kann das eine bequeme Option sein.
Im Grunde machst du die EXE dann klein, kürzeres IO, dafür der Entpackprozess beim Startup.
wie z.B. zur Reduzierung des Speicherplatzbedarfs.
Bei den meisten Installern ist das komplett vernachlässigbar, so klein wie sie in der Regel sind und so günstig, wie Speicherplatz oder Bandbreite ist.
Mit einem Editor z.B. kann man dann keinen Text mehr erkennen und dort irgendwelche einfachen Manipulationen vornehmen.
Eine .exe ist keine einfache Textdatei, die lesbar ist und einfach modifizierbar ist
Kennt man solche EXE-Packer und hat man sie schon mal angewendet?
Kenne selbst keine und habe sie auch nicht angewandt.
Hat das denn wirklich Vorteile oder ist es nur für Programmierer interessant?
Meiner Meinung nach in der Regel nicht wirklich. Und auch als Programmierer finde ich das Konzept nicht unbedingt interessant / nützlich
Ich dachte eher daran, wenn einer mit einem HEX-Editor da rumpatchen will und z.B. Copyright oder Lizenzdaten ändert.
Oder sogar versucht, es zu DE-Compilieren, so das man mit einem Schutz wie z.B. http://www.aspack.com/asprotect64.html da integriert.
JA, aber es schützt Deine Software dann nicht davor oder spätestens, wenn die diese im WWW Anbietest.
So hatte ich damals 2 Programme mal selber in QBasic geschrieben und diese dann über S_A_V_E (https://de.wikipedia.org/wiki/Shareware-Autoren-Vereinigung) angeboten.
Da war so ein Schutz" schon interessant.
Bin sowieso eher Vertreter von Open Source, da wäre mir der "Schutz" egal
Ja, aber auch dort kann man EXE Daten scrambeln.
aber auch dort kann man EXE Daten scrambeln.
Nur weil man etwas könnte, muss es nicht unbedingt Sinnvoll sein
Ja richtig, Du meinst die DLL Dateien, die dann nachgeladen werden.