EXE aus einem Speicherbereich ausführen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

EXE aus einem Speicherbereich ausführen

Beitrag 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?
Zuletzt geändert von R3booz am 01.04.2013 19:32, insgesamt 1-mal geändert.
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: EXE aus einem Speicherbereich ausführen

Beitrag von ts-soft »

R3booz hat geschrieben:Funktioniert so etwas? :|
Ich hab es so probiert aber es hat nicht geklappt
So auf jeden Fall nicht :wink:
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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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?
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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 :wink:

mfg R3booz
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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 ;)
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: EXE aus einem Speicherbereich ausführen

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: EXE aus einem Speicherbereich ausführen

Beitrag von ts-soft »

Hier findest Du ein schon etwas älteres Beispiel, sollte aber noch funktionieren:
http://www.purebasic.fr/german/viewtopic.php?p=272874
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten