Seite 1 von 2
EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 19:26
von R3booz
Funktioniert so etwas?
Ich hab es so probiert aber es hat nicht geklappt:
Code: Alles auswählen
OpenFile(0,OpenFileRequester("EXE","","*.exe",0))
*exemem = AllocateMemory(Lof(0))
ReadData(0,*exemem,Lof(0))
CloseFile(0)
RunProgram(@exemem)
mfg R3booz
EDIT:
Oder kennt ihr eine andere Methode wie eine ausführbare Datei ohne sie temporär erstellen zu lassen ausführen/öffnen kann?
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 19:32
von ts-soft
R3booz hat geschrieben:Funktioniert so etwas?
Ich hab es so probiert aber es hat nicht geklappt
So auf jeden Fall nicht
Das übergeben einer uninitialisierten Variable (@exemem) ist aber nicht der
einzige Grund und auch nicht die Tatsache, das RunProgram einen String als
ersten Parameter erwartet.
Das einfachste wäre es, die Exe im Tempdir wieder zu erzeugen und dann zu starten.
Gruß
Thomas
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 19:34
von R3booz
ohne temporäre datei

muss doch irgendeinen weg geben
oder anderst:
wie kann ich eine exe aus einer exe sagen wir mal entpacken?
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 20:11
von ts-soft
Exe-Dateien müssen als Datei vorhanden sein, damit man sie starten kann. Es besteht lediglich die Möglichkeit, den
Prozess in einen bereits laufenden Prozess zu injekten, was aber erstens "schmutzig" ist und zweitens auf den meisten
Systemen von diesen Erfolgreich verhindert wird.
Es gibt auch keine sinnvolle Anwendung, abgesehen von Viren und Trojanern, dafür.
Ich hoffe Deine Frage wurde beantwortet und Du läßt von Deiner Idee ab.
Gruß
Thomas
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 21:59
von R3booz
danke
ich will auf jedenfall nichts 'schmutziges' damit anstellen aber ich denke es ist doch einfacher die datei in irgendein archiv mit passwort zu packen oder so
mfg R3booz
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 22:16
von HeX0R
R3booz hat geschrieben:
ich will auf jedenfall nichts 'schmutziges' damit anstellen aber ich denke es ist doch einfacher die datei in irgendein archiv mit passwort zu packen oder so
Nur mal so interessehalber, weil mir ehrlich gesagt ad hoc kein Grund einfällt, wieso ich das so machen sollte:
Was hast Du denn vor?
Brauchst aber auch nicht zu antworten, falls das "nicht Schmutzige" evtl. am Ende doch ein paar Flecken hat

Re: EXE aus einem Speicherbereich ausführen
Verfasst: 01.04.2013 22:59
von Lambda
Du kannst die Datei einbinden und später extrahieren. Es gibt natürlich sinnvolle Anwendungszwecke wie Updater oder andere Schritte die bei aktiver Anwendung nicht möglich sind.
Code: Alles auswählen
DataSection
Exe:
IncludeBinary "Executable.exe"
Exe_End:
EndDataSection
Procedure Extract(Location.s)
Protected f
f=CreateFile(#PB_Any, Location)
WriteData(f, ?Exe, ?Exe_End-?Exe)
CloseFile(f)
EndProcedure
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 03.04.2013 18:32
von R3booz
ich wollte nur eine nachmache von dem batch to exe converter machen dieser speichert die batch datei einfach mit der exe datei extrahiert sie und führt sie dann aus ziemlicher fake aber egal ^^
EDIT:
@cOoki3druqs
Kann ich das auch irgendwie machen das ich schon eine exe erstellt habe die dann eeine exe erstellt wo datei eingebunden wird?
also so etwas wie ein automatischer entpacker den dann eine programm automatisch erstellt und ich nicht programmiere
mfg R3booz
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 03.04.2013 20:01
von Lambda
Klar, du kannst nach WriteData() einfach weitere Blöcke reinschreiben, musst aber immer Informationen über die Größe der Sektion anschließend angeben. Beim sich-selbst-Auslesen fängst du dann am Ende der Datei an, deshalb anschließend.
Re: EXE aus einem Speicherbereich ausführen
Verfasst: 03.04.2013 20:07
von ts-soft
Hier findest Du ein schon etwas älteres Beispiel, sollte aber noch funktionieren:
http://www.purebasic.fr/german/viewtopic.php?p=272874