![]() |
Datei im Ram entschlüsseln
Hallo liebe Delphifreunde,
Ich bin gerade dabei ein Verschlüsslungsprogramm zuschreiben bei welcher der Benutzer die verschlüsselungsart auswählen kann und gleichzeitig mehrere Dateien encrypten kann. Das funktioniert auch prima. Ein freund meinte, es wäre cool wenn man es auch so machen könnte das die verschlüsselte datei in den Ram geladen wird und sich dort selbst entschlüsselt und dann entschlüsselt auf die Festplatte kopiert?!? Also ich weis nichtmal ob das geht :D aber zumindest klingt es gut ^^ Ich bin mir zwar nicht sicher aber ich denke wenn überhaupt geht es so: Verschlüsselte Datei an einen Decrypter anhängen Decrypter in den Ram laden Decrypter entschlüsselt die angehängte Datei im ram Decrypter kopiert die nun entschlüsselte Datei auf die platte nachricht an user |
Re: Datei im Ram entschlüsseln
Sollte mit einem Stream gehen
|
Re: Datei im Ram entschlüsseln
Filestream oder?
|
Re: Datei im Ram entschlüsseln
TMemoryStream
|
Re: Datei im Ram entschlüsseln
Und was ist dazu der Unterschied Zur bisherigen Vorgehensweise ?
|
Re: Datei im Ram entschlüsseln
Das die Datei im Ram gestartet wird. Ich weis auch nicht sogenau für was das nützlich sein soll. Also Entschlüsseln klappt. Ich habe die Datei in einem Stream, wie starte ich die nun im Ram?
|
Re: Datei im Ram entschlüsseln
Ein MemoyrStream liegt im Speicher
|
Re: Datei im Ram entschlüsseln
Ob du nun die Datei einliest und entschlüsselst speicherst, oder einlist, entschlüsselt in den Ram legst und von dort aus speichert ist somit das gleiche.
Was meinst du mit "in den Ram starten" ? |
Re: Datei im Ram entschlüsseln
Er meint einen Crypter / EXE Packer ums mal auf den Punkt zu bringen.
|
Re: Datei im Ram entschlüsseln
Sowas wie UPX bloß halt schneller und mi na GUI das man gleich ein ganzen Ordner verschlüsseln kann und wenn man möchte einzelne Dateien beim starten entschlüsseln. Also das die eigene EXE geschützt ist, das niemand mt Olly so ohne weiteres da ran rumwerken kann
|
Re: Datei im Ram entschlüsseln
:( Also ich habe nun die entschlüsselte Datei als TMemoryStream vorliegen ... und jetzt?
|
Re: Datei im Ram entschlüsseln
Etwas aus dem Speicher ausführen? Nun da gibt es schon gewisse Probleme. Wenn das eine normale .exe sein soll, musst du das tun, was auch ein Starten aus dem System heraus machen würde: einen Prozess erzeugen, Umgebungsvariablen bereitstellen und dann die main() des Programmes ausführen. Man muss also irgendwie den Code direkt im ram vorliegen haben (oder eben nur den Einsprungpunkt für die main() finden). Am einfachsten müsste das mit einem prozeduralen Aufruf funktionieren, dazu erstellst du eine Variable eines prozeduralen Typs, setzt diesem die richtige Adresse ( Stream.Memory + Offset ) und rufst das ganze auf
( oder mit Assembler PUSH EAX MOV EAX, <address> CALL EAX POP EAX ) Bei 64bit-Systemen gibt es meines Wissens nach das NX-Flag "no execute", welches Codeausführung im Variablenspeicher verbietet, da musst du dann wirklich eine dll mitspeichern, aus dem Stream extrahieren, auf die Platte speichern und mit LoadLibrary zugänglich machen. Viel Spaß ;) |
Re: Datei im Ram entschlüsseln
Habe zwar kein Wort verstanden à la :wiejetzt: aber Danke :D
|
Re: Datei im Ram entschlüsseln
Einfach mit CreateProcess (CREATE_SUSPENDED), GetThreadContext arbeiten, dann alle Sections der EXE im RAM auslesen, diese mittels WriteProcessMemory in den Zielprozess bringen und mittels ProtectMemory ausführbar machen. Dann nurnoch mit SetThreadContext den alten Context wieder setzen und den Mainthread des Prozesses mit ResumeThread wieder fortsetzen.
Gruß Zacherl |
Re: Datei im Ram entschlüsseln
@Zacherl du bringst es ja schon wieder auf den Punkt *g*
|
Re: Datei im Ram entschlüsseln
Könnte meinen letzen Beitrag einfach duplizieren und anstelle von diesem hier benutzen :D
Ich suche mich einfach mal durch |
Re: Datei im Ram entschlüsseln
Warum nur lese ich in letzter Zeit immer häufiger Beiträge in denen Anfänger unbedingt Unternehmungen starten wollen, die weit jenseits ihrer Fähigkeiten und Kenntnisse liegen? Ich geh ja auch nicht hin und sag "heute besteig ich den Mount Everest, nächste Woche flieg ich dann auf den Mond". Na gut, sagen könnte ich das schon, aber realistisch wärs halt nicht :)
Wo sind nur meine Pillen... |
Re: Datei im Ram entschlüsseln
Diese Überschätzung wollte ich mit meinem Beitrag andeuten. Nichtsdesto trotz stimmen die Anweisungen, zu denen man auch bei einer Google Suche entsprechenden Code findet ..
|
Re: Datei im Ram entschlüsseln
Anfänger ist relativ.
Es kommt doch immer darauf an mit was man sich schon beschäftigt hat und was nicht. Ich habe mit solchen Dingen noch nie zu tun gehabt, und das will ich ändern. Zudem will ich eigentlich keinen Code sondern es wirklich verstehen. Ich weis nicht für was dieses ganzen Fnktionen sein sollen. Zudem finde ich in der MSDN nur Beschreibungen was die einzelnen Parameter sind, aber irgendwie nicht wozu genau und was genau diese Funktion macht. |
Re: Datei im Ram entschlüsseln
Vielleicht wäre dann ein Beispielcode genau das richtige für dich, um die Funktionsweise zu verstehen. Die Funktionen der einzelnen APIs lassen sich ja eigentlich schon am Namen erkennen.
Such mal nach Nicos InMemExe! Gruß Zacherl |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 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