.exe Dateien in PB einbetten und ausführen

Anfängerfragen zum Programmieren mit PureBasic.
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

.exe Dateien in PB einbetten und ausführen

Beitrag von northstarex »

mal doof gefragt:

gibt es eine Möglichkeit Aufführbare Dateien (.exe) in eine PB Programm einzubetten und dann davon aus auszuführen, also ohne diese exe erst wieder auf die Platte zu kopieren?
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von Sicro »

Ja, es ist (oder war) möglich und erfordert einige komplizierte WinAPI-Funktionsaufrufe, daher eher weniger was für Anfänger-Fragen. Neuere Windows-Versionen haben vermutlich etwas dagegen und erlauben so etwas aus Sicherheitsgründen nicht mehr. Zumindest kann ich mir gut vorstellen, dass die Virenscanner Alarm schlagen werden.

Was spricht dagegen, die EXE-Datei neben dem Hauptprogramm mitzuliefern?
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von northstarex »

war nur so ein Gedankengang im Bezug zur Demo-Scene, die haben auch alles in einer Datei. Hätte die Sache vereinfacht. Bis jetzt ging es ja auch so. Alles wieder raus aus dem PRG und ab auf das Arbeitsverzeichnis und auf Verzeichnisebene alles abrufen.

Wie lauten die so komplizierten WinAPI-Funktionsaufrufe.... zeig doch mal :)
Bild
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von Mijikai »

northstarex hat geschrieben: 17.07.2021 20:20 ...
Wie lauten die so komplizierten WinAPI-Funktionsaufrufe.... zeig doch mal :)
Die sind immer gleich ob PB, ASM, C oder C++ einfach mal "RunPE" (als Startpunkt) in die Suchmaschine eingeben da gibt es sehr viele Beispiele und Variationen.
Sowas kommt fast ausschließlich in Malware, Hacks oder fragwürdigen Sicherheitsprogrammen zum Einsatz.
Die Demoscene ist hier eher eine Ausnahme (Packer).
Viele werden einen Vorbehalt haben hier weiterzuhelfen.

Viel Glück
H.Brill
Beiträge: 356
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von H.Brill »

Es müßte was geben, wie damals das MemoryModule von TS-Soft.
Mit der konnte man DLLs, die in einem Speicherbereich vorlagen,
laden, ohne sie vorher auf Platte zu schreiben.

Wenn du hier im Forum nach MemoryModule suchst, findest du
auch etwas.
PB 5.60
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von northstarex »

aber PRGS in den PB Code einbetten und dann zum starten auf die Platte kopieren geht aber noch, oder?
Bild
Benutzeravatar
jacdelad
Beiträge: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von jacdelad »

Natürlich. Du kannst z.B. jede beliebige Art von Datei in die DataSection (oder auch anders) einbinden und durch das Programm auf die Platte schreiben. Anschließend kannst du es ganz normal mit RunProgram starten...wo die Datei herkommt ist dem Befehl wurscht.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Axolotl
Beiträge: 146
Registriert: 31.12.2008 16:34

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von Axolotl »

und so ähnlich könnte das dann aussehen...

Code: Alles auswählen

;' example program as suggestion 
;' not compiled or tested 

#EmbbedExecutable$ = "EmbeddedExecutable.exe"    ;' this line is to be adapted to your needs 


Procedure StartEmbeddedExecutable()
  Protected FID, file$, params$ 
 
  file$   = GetTemporaryDirectory() + #EmbbedExecutable$  ;' this line is to be adapted to your needs 
  params$ = ""                                            ;' this line is to be adapted to your needs 

  FID = CreateFile(#PB_Any, file$)  
  If FID 
    WriteData(FID, ?EmbbedExecStart, ?EmbbedExecEnd - ?EmbbedExecStart)
    CloseFile(FID) 

    RunProgram(file$, params$, GetPathPart(ProgramFilename()))
  EndIf
EndProcedure 


DataSection
  EmbbedExecStart: 
    IncludeBinary #EmbbedExecutable$ ;' "EmbeddedExecutable.exe"    ;' this line is to be adapted to your needs 
  EmbbedExecEnd:
EndDataSection
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von GPI »

Muss man halt bedenken, das man hier halt Speicher verschwendet. Zudem kann ich mir vorstellen, das ein paar Virenscanner so ein verhalten nicht lustig finden.
Ich seh auch nicht so einen großen Vorteil, außer das man unbedingt eine einzige Datei haben will.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: .exe Dateien in PB einbetten und ausführen

Beitrag von juergenkulow »

Ist die DataSection PAGE_EXECUTE_READWRITE ?
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Antworten