Config oa. Daten in Exe speichern

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Kiffi hat geschrieben:
cxAlex hat geschrieben:- Wahlweise Beenden oder Neustarten der EXE bei SelfConfig.
für mein Verständnis: Die EXE wird auf jeden Fall beendet (und dann
gegebenenfalls neu gestartet), damit die Daten dort hineingeschrieben
werden?

Grüße ... Kiffi
Jo, ist leider anders nicht möglich, bzw. hab noch keinen anderen Weg gefunden. Das ganze geht den Umweg über eine Temp - Executable, wie ich schon weiter oben geschrieben habe. Aber wenn du deine Einstellungen am Ende speicherst und während der Laufzeit nur im Speicher änderst sollte das kein Problem sein.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

cxAlex hat geschrieben:Aber wenn du deine Einstellungen am Ende speicherst und während der Laufzeit nur im Speicher änderst sollte das kein Problem sein.
jau, das ist eine gute Idee. Da habe ich zu kompliziert gedacht.

Danke & Grüße ... Kiffi
a²+b²=mc²
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Hallo,

ich bin ein Anfänger in PureBasic wäre allerdings auch daran interessiert EXE Dateien zu erzeigen... Ich hätte erstmal folgende Frage:

Wie krieg ich das hin 5 Variablen anzuhängen?

Gruß

JENS
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Code: Alles auswählen

XIncludeFile "EC_Include.pbi"

EC_Builder_SelfConfigHead()

Structure Config
  Var1.i
  Var2.i
  Var3.i
  Var4.i
  Var5.i
EndStructure

Global *Config.Config

Procedure SaveConfig()
  EC_Builder_SelfConfig(*Config, SizeOf(Config), #True, #False)
EndProcedure

Procedure LoadConfig()
  Protected Loader = EC_Load_All()
  If Loader
    *Config = EC_Loader_GetMem(Loader)
  Else
    *Config = AllocateMemory(SizeOf(Config))
  EndIf
EndProcedure

LoadConfig() ; Läd/Initialisiert Config
With *Config
  If Not \Var1
    \Var1 = 1
    \Var2 = 3
    \Var3 = 6
    \Var4 = 12
    \Var5 = 24
  EndIf
  \Var1*2
  \Var2*2
  \Var3*2
  \Var4*2
  \Var5*2
  ; Code
  ; Code
  ; .....
  ; .....
  MessageRequester("Test", Str(\Var1) + #LFCR$ + Str(\Var2) + #LFCR$ + Str(\Var3) + #LFCR$ + Str(\Var4) + #LFCR$ + Str(\Var5))
  SaveConfig()
EndWith
So. Einfach Exe erstellen und Testen. Ich verdopple die Werte jetzt einfach mal nur als Beispiel, du kannst da eigentlich reinschreiben was du willst.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Kann man damit auch Dateien EXE Dateien Passwortschützen (notepad.exe) also Dateien auf die ich keinen Einfluss habe?

Gruß

JENS
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Also direkt die notepad.exe schützen wird nicht gehen, da der Loader Code im Programm stehen muss.

Du könntest aber in Kombination mit http://www.purebasic.fr/german/viewtopic.php?t=19082 bzw. http://www.purebasic.fr/german/viewtopic.php?t=19101 den angehängten Speicher in 2 Teile spalten, eben 1. Sektion wo du das PW speicherst und 2. Sektion wo du die Notepad.exe speicherst, bei Eingabe des richtigen PW in den Loader temporär entpackst und startest.

Ich glaub ich hab auf purearea.net mal ne Lib gesehen die EXE direkt aus dem Speicher starten konnte ohne Temp - File, vlt hilft das was.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
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

Beitrag von ts-soft »

notepad.exe ist (c) by microsoft und darf weder in eine Exe includiert
werden, noch in irgendeiner Form weitergegeben.

Das Exe aus speicher starten funktioniert nur durch Injection in einen
anderen Process, ist somit sowieso unsicher. Die Lib im engl. Forum z.B.
erzeugt oder nutzt cmd.exe hierfür. Solches vorgehen ruft nur Antivir u. ä.
auf und hat keinerlei nutzen, zumal man der Exe noch nicht mal parameter
mitgeben kann.

Gruß

JENS
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
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

notepad.exe war nur ein Beispiel!
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten