![]() |
Exen Crypten/Packen
Hallo Leute!
Weiss jemand wie man eine exe mit delphi ein wenig packen bzw. Crypten kann und was z.B beim crypten an der exe verändert werden muss? ohne externe komponenten oder sonstwas |
Re: Exen Crypten/Packen
Upx wäre ein Exe-Packer. Und es gibt auch nocheinen Exe-Crypter in Delphi gechrieben. Das würde ich allerdings nicht empfehlen, da manche Antivirenprogramme darauf allergisch reagieren. Was willst du denn damit bezwecken?
|
Re: Exen Crypten/Packen
mich intressiert nur die routine wie sowas geht, was genau man an der exe ändern muss etc., wieso spinnen antiviren programme dA?
|
Re: Exen Crypten/Packen
Ich denke mal, dass die das sofort als potentielle Gefahr sehen, weil sich nicht erkennen können, ob die Anwendung was böses machen könnte. Daraus folgt für den Antvirushersteller natürlich erstmal Alarm schlagen.
|
Re: Exen Crypten/Packen
achso hm ja aber das ist mir erstmal egal will mal wissen wie so eine exe gepackt bzw. gecryptet wird
|
Re: Exen Crypten/Packen
![]() ne zip dazu: ![]() entpacken, cmd öffnen, in den ordner der upx.exe wechseln "upx" eingeben und erklärungen druchlesen, sollte keine beschreibung kommen dann "upx /?" oder "upx /help" weiß ich jetzt nicht genau, is schon länger her ^^ |
Re: Exen Crypten/Packen
UPX ist ausserdem OpenSource. ;)
|
Re: Exen Crypten/Packen
Normalerweise wird die .code Section der PE Datei gecryptet und ein decrypter in ASM in die EXE geschrieben. Der EP wird auf das Offset an dem sich der Decrypter befindet festgelegt, welcher die .code Section wieder decryptet und zum OEP springt. Dann wird die EXE ganz normal ausgeführt ..
@Luckie: Der EXE-Crypter .. findet man dazu die Sourcen irgendwo? |
Re: Exen Crypten/Packen
Ich bin zwar nicht Luckie, aufgrund des gleichen Vornamens erlaube ich mir trotzdem den Link zum Sourcecode zu posten:
![]() btw. das Schreiben dieses Posts hat mehr Zeit in Anspruch genommen als die Suche via Google... :roll: |
Re: Exen Crypten/Packen
Zitat:
Aber durchblicken durch den Code ist da ganz schwer (auch wenn ich zum Testen nur mit XOR verschlüsselt habe). |
Re: Exen Crypten/Packen
Würde mich interessieren .. kannst du mir das evtl. per PN zukommen lassen oder hier posten? Wegen durchblicken ist denke ich kein Problem .. hab mich wie gesagt grade erst mit PE Dateien, etc beschäftigt.
|
Re: Exen Crypten/Packen
|
Re: Exen Crypten/Packen
Zitat:
Mach ich, dazu muss ich zu Hause erstmal an meinen Testrechner kommen (und vor allem erstmal nach Hause kommen)! Heute abend vielleicht. |
Re: Exen Crypten/Packen
Cool Vielen Dank schonmal :D
@calculon: Das scheint eher eine Stub zu sein, an die die richtige EXE angehangen wird. Sowas ist verhältnissmäßig einfach finde ich, aber mit richtigem Ändern der PE Datei, etc ist schon komplizierter :P |
Re: Exen Crypten/Packen
*auchinteresseanmeld*
Also poste es bitte hier oder PMs mir auch :) |
Re: Exen Crypten/Packen
![]() Wenn auch nicht wirklich schön strukturiert :) |
Re: Exen Crypten/Packen
darf ich mal fragen, was genau es für einen Sinn macht, die exe zu crypten?
wenn ich das richtig verstanden habe, liegt sie doch dann im RAM sowieso wieder decryptet vor? Welche Vorteile hat also das Verfahren? |
Re: Exen Crypten/Packen
Du kannst zum Beispiel eine Anwendung an eine Smartcard oder irgendein anderes Dongle koppeln und so dessen Ausführung verhindern. Auf der Card befindet sich der Key zum Decrypten. Hast du die Card nicht, ist es unmöglich, die EXE auszuführen.
|
Re: Exen Crypten/Packen
Liste der Anhänge anzeigen (Anzahl: 3)
Zitat:
Zitat:
also brechis Datei sieht deutlich sortierter aus als Meine. Vor allem nutzt er einen ordentlichen Algo zum verschlüsseln. Aber ich wollt ja nur mal testen, ob es generell geht. die Verschlüsselung zu ändern ist ja kein Ding. Units U_TestPE - die, die alles organisiert (inkl. Formular) ReadPEHeader - zum lesen, analysieren und auch gleich verändern der Exe passwordwindow - Record, der in die Exe geschrieben wird Viel Spaß und "Nur Mut!" Edit: Ich wollte noch schreiben, was eigentlich prinzipiell gemacht wird. (so weit ich mich erinnere) Da ich damals keinen Mut hatte eine neue Section einzufügen, habe ich einfach den code ans Ende der Section gehangt, die im Speicher ganz hinten landet (damit ich genügend Platz habe). Da dies (in meinem TestFall) eine Data Section war, kam noch ein bisschen Code in den ungenutzten Teil der itext-Section. Dieser lädt zu Beginn einfach den Code aus der Data-Section in einen anderen Speicherbereich und führt ihn dort aus. Verschlüsselt sind die ursprünglichen text und itext-Sections sowie die jmp-Addresse am "Ende" meines injezierten Codes, damit man den EP nicht sieht. Nachdem das Passwort eingegeben wird, wird es auf zwei Arten verifiziert. zuerst wird an dem so entschlüsselten EP geschaut ob die originalen ersten 4 Bytes auftauchen, erst dann wird versucht den entschlüsselten Code zu starten. Dadurch stürzt das Programm bei einem Tippfehler im Passwort nicht gleich ab und man darf es nochmal versuchen. PS: Das die Unit Windows die ganzen records zum Lesen des PE-Headers schon bereithält ist mir erst hinterher aufgefallen. |
AW: Re: Exen Crypten/Packen
Zitat:
ich hab das mal ausprobiert. Gibts denn nicht eine meinetwegen etwas wenigere Variante, die exe Datei zu verschlüsseln? Um sie wenigstens erstmal vor Hobbyprogrammierern und Disassemblern zu schützen? Weil wenn ich eine Exe damit verschlüssel, kommen angebliche eine Menge Trojaner zum Vorschein :-) ![]() |
AW: Re: Exen Crypten/Packen
Zitat:
Was willst du eigentlich erreichen? Was denkst du das in deiner Exe so geheimnisvoll wichtig wäre das man sie verschlüsseln müsst. Evtl. reichen ja auch bordmittel aus die relevanten teile zu verschleiern. |
AW: Re: Exen Crypten/Packen
Zitat:
Gerade das, was das Verfahren interessant macht, scheinen eben dann wohl genau die Methoden zu sein, die Virenprogramme als unangenehm empfinden .. hmm |
AW: Re: Exen Crypten/Packen
Zitat:
![]() |
AW: Exen Crypten/Packen
Trojaner...
Jupp, ein ordentlicher Virenscanner sucht nicht nur nach Signaturen von Trojanern, Viren usw. Hier wird ja der Programmstart verändert und Daten verschlüsselt. Da isr es ja kein Wunder und vollkommen Zurecht, daß sich die Scanner dann beschweren. Bei bekannten , bzw. weit verbreiteten EXE-Packern wird entpackt und dann der richtige Inhalt geprüft, darum kommt dort auch seltener eine Meldung. Signierte Anwendungen können eventuell schonmal vom Scanner durchgelassen werden, wenn der Scanner sie dennoch für "vertrauenswürdig" hält. PS: Ohne die EXE zu verschlüsseln, könntest du dir selber eine Signatur reinbauen, in welcher z.B. ein Hash der EXE verbaut ist, dann sollten die Scanner ebenfalls nicht meckern. |
AW: Re: Exen Crypten/Packen
Zitat:
Hallo jaenicke, das war nicht ganz das, was ich suchte, das schützt ja die Exe trotzdem nicht davor, dass sie jemand patcht. Himitsu, ja .. einen CRC zur ÜBerprüfung hatte ich auch schon, aber ein "jnz" kann man dann ja trotzdem noch relativ einfach mit Boardmitteln ändern. |
AW: Exen Crypten/Packen
Dann sag uns doch mal, was an deinem Programm so schützens würdig ist? Sollte es Shareware sein, dann ist es einfacher gewisse Features per Compiler Schalter erst gra nicht in die Exe der Demoversion zu kompilieren.
|
AW: Exen Crypten/Packen
Ich denke eine Hash-Überprüfung ist der beste Kompromiss aus Aufwand und Wirkung.
Wenn du es Crackern etwas schwieriger machen willst, pack die Hash-Überprüfung an ungewöhnliche Stellen im Code, und am besten an mehrere Stellen (und zwar möglichst, indem du den Code an diese Stellen kopierst und nicht per Funktionsaufruf - z.B. per Include). Am besten ein paar verschiedene Überprüfungsroutinen verwenden und eventuell ein paar verdächtige Fake-Routinen, die nie aufgerufen werden. Außerdem die Sprungadressen wenn möglich nicht direkt als „Klartext“ in den Code schreiben, sondern irgendwie zur Laufzeit berechnen, sodass man nicht einfach nach ihnen suchen kann und sofort die Überprüfungsroutine findet. Das zusammen sollte hoffentlich aufwändig genug sein, dass der Wald-und-Wiesen-Cracker die Lust verliert. |
AW: Re: Exen Crypten/Packen
Zitat:
|
AW: Exen Crypten/Packen
Zitat:
|
AW: Exen Crypten/Packen
Muss ich Luckie zustimmen. Diese Art des "Schutzes" bringt erstmal relativ wenig bis gar nichts und ist außerdem ein enormer Aufwand für dich. Das Programm zu dumpen und eventuelle CRC Checks zu patchen ist selbst für Leute wie mich, die sich nur mal am Rande mit Cracking beschäftigt haben eine Sache von wenigen Minuten.
Wenn du ein wenig Sicherheit haben willst, musst du schon auf kommerzielle Lösungen wie Themida oder VMProtect zurückgreifen. Da beißen sich selbst Top Cracker die Zähne dran aus. Auch wenn sie es früher oder später schaffen, werden sie es sich gut überlegen, ob sich der Aufwand für ein einfaches, vermutlich eher unbekanntes, Programm lohnt. |
AW: Exen Crypten/Packen
Zitat:
|
AW: Exen Crypten/Packen
Jupp, da diese ja auch in "wichtigeren" Programmen verbaut hat, hat sich auch jemand die Mühe gemacht es zu häcken und es auch regelmäßig erneut zu hacken.
Einmal gehackt, kann man damit natürlich auch weniger wichtige/bekannte Programme knacken. :stupid: Was denkt ihr denn, warum wirklich "bekannte" Programme sowas nicht einsetzen, sondern sich jeweils was Eigenes entwickeln? |
AW: Exen Crypten/Packen
Also ich kenne eine Menge Programme, welche auf Themida / Winlicense zurückgreifen. Einmal geknackt, immer geknackt ist hier nicht richtig. Diese Programme konvertieren die normalen Opcodes in VM Bytecode Instruktionen und führen sie in einer internen VM aus. So einen VM Code erstmal wieder in normale Opcodes zu konvertieren ist eine Heidenarbeit, welche in den meisten Fällen per Hand erledigt werden muss.
Ist auf jeden Fall um den geschätzten Faktor 10000 sicherer, als eine eigene Implementation, wie man sie hier in Ansätzen findet. Ich kenne persönlich einen wirklich versierten Reverser / Cracker. Für den sind die meisten Programme in ein Paar Minuten geknackt. Habe ihm mal per TeamViewer zugeguckt und konnte einfach nicht anders, als mit offenen Mund vorm Bildschirm zu sitzen. :D Aber selbst er sagt, dass Themida beispielsweise, durch die fast ausschließlich dynamischen Komponenten, ein derart hoher Aufwand ist, dass er sich es 3x überlegt, bevor er seine Arbeit darein investiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz