Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Memofeld Inhalt (https://www.delphipraxis.net/190083-memofeld-inhalt.html)

XardasLP 28. Aug 2016 07:20

Memofeld Inhalt
 
Der Inhalt eines Memofeldes wird geändert also beispielsweise:

Delphi-Quellcode:
  var
  Form1: TForm1;
  PW: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
PW := Edit1.Text;
Label1.Caption := PW;
Memo1.Lines.Strings[0] := PW;
end;
Wie kann ich diesen Inhalt, welcher nur zur Laufzeit geändert wird, bei einem Neustart wieder automatisch im Memofeld stehen haben? Ich möchte kein SavetoFile oder LoadFromFile verwenden, da es ja nicht so toll ist wenn jeder die .txt Datei sehen kann ;) ^^

vagtler 28. Aug 2016 08:40

AW: Memofeld Inhalt
 
Welche andere Datenpersistenz als eine irgendwie geartete Form einer Datei (auch z.B. die Registry ist letztendlich nichts anderes) schwebt Dir denn vor, die die Lebenszeit eines Prozesses überdauern könnte?

Oder mit anderen Worten: ich glaube, Dein Problem ist ein anderes.

hoika 28. Aug 2016 08:44

AW: Memofeld Inhalt
 
Hallo,
du könntest die Datei verschlüsseln.
Oder du packst den Inhalt in eine Ressource in die Exe selbst.

XardasLP 28. Aug 2016 09:01

AW: Memofeld Inhalt
 
Ok und wie erstellt man so eine Ressource? :) ^^

Der Memoinhalt soll sich aus dem Editfeld ergeben und wenn man das Projekt dann schließt und wieder startet soll der gleiche Inhalt immer noch drin stehen. Ähnlich als hätte ich ihn selbst bei Lines reingeschrieben, denn da bleibt er ja auch bis ans Ende vorhanden.

vagtler 28. Aug 2016 09:15

AW: Memofeld Inhalt
 
Stichwort: selbstmodifizierende EXE. Das ist böse. Sehr böse.

Ansonsten verweise ich auf meinen obigen Beitrag.

XardasLP 28. Aug 2016 09:23

AW: Memofeld Inhalt
 
Wenn jemand eine Textdatei einfach verwenden und löschen kann ist das nicht ebenso unsicher / sinnfrei?

Benedikt Magnus 28. Aug 2016 09:35

AW: Memofeld Inhalt
 
Ich würde davon abraten, solche Sachen in die Exe zu schreiben.
Wenn es dir wirklich wichtig ist, dass man den Inhalt des Memos nicht außerhalb deines Programms ändern kann (warum auch immer), so würde ich ebenfalls zum verschlüsselten Abspeichern raten.
Wenn es dir missfällt, dass die Datei neben der Exe landet, dann nimm eben (ist sowieso besser) stattdessen %AppData%/"Programmname"/Dateiname als Speicherpfad.
Wenn es dir nur darum geht, den Inhalt zu verschleiern, damit nicht jeder X-Beliebige darin rumfuschen kann, reicht schon eine einfache Caesarverschlüsselung oder du speicherst den Text binär ab.
Höhere Sicherheit bekommst du mit bspw. AES. Aber wenn du das Passwort fest in die Exe verbaust, bietet das wieder einen Angriffspunkt (und ist unpraktisch hinsichtlich der Passwortänderung über Versionen hinweg).
Du könntest das Passwort natürlich über Algorithmen berechnen lassen, aus sonstwelchen Informationen, aber auch das ließe sich theoretisch brechen...
Von daher stellen sich zwei Fragen: Vor wem willst du die Datei schützen und wie stark soll dieser Schutz sein? Wenn du vor hast, diese Informationen vor dem Anwender selbst unangreifbar zu verbergen, sage ich dir gleich: Vergiss es.
Hinreichende Sicherheit bekommst du nur, wenn entweder a) der Anwender beteiligt ist (ein Passwort festlegen kann) oder b) du ein niedriges Sicherheitsniveau als hinreichend betrachtest.

XardasLP 28. Aug 2016 09:52

AW: Memofeld Inhalt
 
Ich will das meine schon verschlüsselten Informationen, welche in einer Textdatei stehen dauerhaft im Memofeld sind. Um diese zu entschlüsseln benötigt man das Passwort (String) sowie den Schlüssel (Integer) welcher in einem ASCII Verfahren addiert oder subtrahiert mit dem Schlüssel das Passwort ergibt.

Danach werden erst die anderen Sachen wie das Memofeld mit dem selben Schlüssel entschlüsselt.

Sinn ist einfach, dass wenn man das Programm öffnet die benötigten Textdateien kurz entstehen (zur Umwandlung) und diese danach wieder gelöscht werden. Bei einer Eingabe des Passwortes <15 Sekunden wird das Programm geschlossen.

Gibt man das Passwort 2x falsch ein wird eine .bat Datei erstellt welche zu mindestens Windows selbst zwingt sich bedingungslos herunterzufahren.

Um das ganze nun sicher zu gestalten soll sich das Programm noch merken wie oft es geöffnet wurde, da bei jedem Neuöffnen 2 Versuche zur Verfügung stehen. Das Neuöffnen soll nur maximal 2x funktionieren, danach ändert sich der Inhalt des Memofeldes oder löscht sich sogar, sodass man niemals an die so schon verschlüsselten Daten herankommt.


Hoffe du verstehst es ? :-D

p80286 28. Aug 2016 10:08

AW: Memofeld Inhalt
 
Zitat:

Zitat von XardasLP (Beitrag 1345924)
Wenn jemand eine Textdatei einfach verwenden und löschen kann ist das nicht ebenso unsicher / sinnfrei?

Ja!

Übrigens kann man auch Dein Programm einfach löschen!

Gruß
K-H

XardasLP 28. Aug 2016 10:23

AW: Memofeld Inhalt
 
Wenn man das Programm löscht kommt man auch nie an die Informationen??? Hast dir grade selber eine Falle gestellt :P :twisted:

DeddyH 28. Aug 2016 10:29

AW: Memofeld Inhalt
 
Und wenn man die Textdatei löscht, sind die Infos auch weg. Das ganze Vorhaben klingt in meinen Ohren ein wenig sinnbefreit :gruebel:

XardasLP 28. Aug 2016 10:47

AW: Memofeld Inhalt
 
Geht halt darum das 3 Textdateien verwirren und man das somit umgehen könnte.

Und das Programm könnte Änderungen an der Textdatei ausfindig machen ^^

DeddyH 28. Aug 2016 11:01

AW: Memofeld Inhalt
 
Was genau willst Du eigentlich bezwecken? Ich bin aus der bisherigen Beschreibung noch nicht ganz schlau geworden.

XardasLP 28. Aug 2016 11:06

AW: Memofeld Inhalt
 
Naja bis jetzt sind es 3 Textdateien und die Anwendung also 4 Dateien, obwohl nur eine nötig ist.

Geht am Ende darum das man nur auf eine Anwendung aufpassen muss und die anderen nicht so verschwinden. Es ist einfach unabhängiger ^^

Genauso wie Bilder in der .exe selbst integriert schöner sind. Stell dir ein Spiel vor bei dem die Bilder und Texturen einfach in einem Ordner sind. Ändert man die Bilder verändern sich auch die Texturen im Spiel grob gesagt. Das sollte ja nicht so sein :) ^^

Noch dazu ist es übersichtlicher. Denken wir an ein Programm das 50 Verschlüsselungen hat sind es 50 Textdateien. Klar kann man diese in einen extra Ordner tun und sie nehmen 0 Speicherplatz weg, aber es mal auf eine andere Art und Weise zu machen als immer nur das selbe ist doch auch mal was ^^

vagtler 28. Aug 2016 11:14

AW: Memofeld Inhalt
 
Ich bleibe dabei: Du hast ein anderes Problem als das der (Text-)Dateien.

Beschreibe es bitte einmal so, dass es auch unbeteiligte (also die, die nicht in Deinen Kopf reinschauen können) verstehen.

DeddyH 28. Aug 2016 11:40

AW: Memofeld Inhalt
 
Bitte zuerst durchlesen: http://www.delphipraxis.net/125006-w...n-richtig.html, das erscheint mir hier angebracht.

XardasLP 28. Aug 2016 11:52

AW: Memofeld Inhalt
 
Habe kein Problem mit Textdateien, mein Programm ist funktionsfähig mit ihnen.

Ich möchte lediglich das ich den Inhalt der Textdateien in einem Memofeld habe, sodass das Programm primär auch "ohne"Textdateien auskommt.

DERZEIT:
Programm mit Login Form
Form auf der das Passwort steht (nach Login)
benötigt 3 Textdateien zum Entschlüsseln

ZUKUNFT:
Programm mit Login Form
Memofelder welche die geheimen Daten bereits verschlüsselt enthalten und dann mit Hilfe von Erstellen und Löschen von Textdateien das Programm entschlüsseln
Form auf der das Passwort steht (nach Login)
somit werden beim Öffnen 3 Textdateien erstellt und beim schließen wieder gelöscht

Frage:
Wie kann ich ein Memofeld mit einem Text beschreiben und dieser bleibt nach einem Close und erneutem öffnen des Programms erhalten?
Momentan ist es so wenn ich Memo.Lines.Add(Edit1.Text) mache steht der Text zwar im Memo Feld drin, ist nach einem Neustart des Programms aber wieder gelöscht (Urzustand)

Frage 2:
Wie kann ich diesen Urzustand umgehen?

DeddyH 28. Aug 2016 11:58

AW: Memofeld Inhalt
 
Der Inhalt des Memos, der zur Entwurfszeit eingegeben wurde, ist in den Ressourcen des Programms enthalten. Du hast also nur die Möglichkeit, geänderte Daten irgendwo extern abzulegen und wieder auszulesen, oder nachträglich die Ressourcen Deines Programms zu verändern. Abgesehen davon, dass Letzteres nicht ganz so trivial ist, prophezeie ich Dir Probleme mit div. Antiviren-Software, da dies ein verdächtiges Verhalten ist, das wurde auch schon angedeutet. Vielleicht solltest Du Dein Konzept noch einmal grundlegend überdenken.

XardasLP 28. Aug 2016 12:08

AW: Memofeld Inhalt
 
Hmm aha interessant.

Kann man mit Delphi 10 mittlerweile wenigstens mal ein Bild mit in die Anwendung reinmachen oder geht das immer noch nur mit bitmap?

DeddyH 28. Aug 2016 12:12

AW: Memofeld Inhalt
 
Entweder nimmst Du ein TImage, oder Du erstellst Dir ein Ressourcen-Script(*.rc), kompilierst es und bindest die entstandene Ressource (*.res) mit in Dein Projekt ein.

vagtler 28. Aug 2016 12:19

AW: Memofeld Inhalt
 
Zitat:

Zitat von XardasLP (Beitrag 1345941)
[...] DERZEIT:
Programm mit Login Form
Form auf der das Passwort steht (nach Login)
benötigt 3 Textdateien zum Entschlüsseln [...]

Wozu benötigst Du drei Textdateien zum Entschlüsseln von was?

Ich mutmaße weiterhin, dass Deine Herangehensweise falsch ist und das eigentliche Problem nicht korrekt beschrieben ist.

XardasLP 28. Aug 2016 12:31

AW: Memofeld Inhalt
 
Es sind Logindaten von einem Onlinespiel. Mein Passwort dort ist so über 50 Zeichen lang. Dieses kopiere ich aus dem Programm.

PW.txt regelt den Login mit Benutzername und Schlüssel.
PW1.txt ist das Passwort verschlüsselt.
PW2.txt ist der Loginname verschlüsselt.

Noch Fragen?

DeddyH 28. Aug 2016 12:35

AW: Memofeld Inhalt
 
Ja, wieso nicht alles in einer Datei (Ini, XML oder wie auch immer) und diese dann im Benutzerdaten-Verzeichnis abgelegt?

vagtler 28. Aug 2016 12:36

AW: Memofeld Inhalt
 
Keine Fragen. Ich mutmaße weiterhin, dass Deine Herangehensweise falsch ist und das eigentliche Problem nicht korrekt beschrieben ist.

Oh, sagte ich das bereits?

dGeek 28. Aug 2016 12:41

AW: Memofeld Inhalt
 
Zitat:

Zitat von XardasLP (Beitrag 1345941)
Ich möchte lediglich das ich den Inhalt der Textdateien in einem Memofeld habe, sodass das Programm primär auch "ohne"Textdateien auskommt.

Ist das programm nur für dich gedacht oder auch für andere? Wenn es nur für dich gedacht ist, funktioniert das ohne Textdatien. Ansonsten musst du Textdateien verwenden, um Informationen extern zu speichern.

Zitat:

Zitat von XardasLP (Beitrag 1345941)
Wie kann ich ein Memofeld mit einem Text beschreiben und dieser bleibt nach einem Close und erneutem öffnen des Programms erhalten?

Siehe oben.

Zitat:

Zitat von XardasLP (Beitrag 1345941)
Kann man mit Delphi 10 mittlerweile wenigstens mal ein Bild mit in die Anwendung reinmachen oder geht das immer noch nur mit bitmap?

Was ist das bitte für eine Frage? Ich lese hier unterschwellig diesen weit verbreiteten Hass gegen Delphi heraus der komischerweise immer nur von Leuten kommt, die mit Delphi noch nie zu tun hatten.

A propos: ein Programm einer Privatperson, was meinen PC automatisiert herunterfährt, würde bei mir gar nicht erst auf den PC kommen.

vagtler 28. Aug 2016 12:48

AW: Memofeld Inhalt
 
Zitat:

Zitat von XardasLP (Beitrag 1345943)
[...] Kann man mit Delphi 10 mittlerweile wenigstens mal ein Bild mit in die Anwendung reinmachen oder geht das immer noch nur mit bitmap?

Hier muss ich @dGeek zustimmen. Diese Frage stellt unterschwellig eine Behauptung auf ("mittlerweile wenigstens"), die alles andere als korrekt ist. Das geht seit Delphi 1.

XardasLP 28. Aug 2016 12:50

AW: Memofeld Inhalt
 
Ok und wie macht man diese XML?

Naja vagtler bis jetzt bist du der einzige der die Herangehensweise nicht versteht.

Ich wollte für ein Memory Spiel Bilddateien in das Programm direkt hinein packen mit der "tollen" Imagelist. Nur leider ist Delphi an der Größe der Bilder gescheitert sowie der veralteten bitmap Datei. Wahrscheinlich muss man Bilder nehmen die 1 px groß sind....

Ne hatte Delphi nur im Abi und naja die 10. Variante schafft es mal mit Apps klar zu kommen wow. Das machen andere Programmiersprachen ja schon unweit länger. Das ist einfach der knackige Punkt an der Sache :-)

DeddyH 28. Aug 2016 12:52

AW: Memofeld Inhalt
 
Das stimmt nicht, ich verstehe sie auch nicht. Du hast übrigens das finale Ziel immer noch nicht genannt, sondern nur Deine Herangehensweise.

XardasLP 28. Aug 2016 12:57

AW: Memofeld Inhalt
 
Eine STRG+Z Funktion auf der Form gibt es auch noch nicht in der 10. Variante. Wie oft hatte ich etwas verschoben, was ich danach mühselig wieder grade rücken musst -.-

Naja Müsste jetzt mal wissen wie das mit den Bildern in dieses .rc Format geht und ansonsten passt das eigentlich.

3 Textdateien in ein XML? Wie läuft das ab? ^^

DeddyH 28. Aug 2016 13:02

AW: Memofeld Inhalt
 
Bilder in Ressourcen ablegen. Und XML war ja nur ein Beispiel, es geht ja darum, verschiedene Werte in einer einzigen Datei zu speichern statt in 3 davon. Dafür brauchst Du nur ein geeignetes Format, prinzipiell genügt ja schon eine Schlüssel-Wert-Zuweisung, das kann bereits die TStringlist, etwas strukturierter wird es mit T(Mem)IniFile.

XardasLP 28. Aug 2016 13:04

AW: Memofeld Inhalt
 
Ok danke erstmal ^^

dGeek 28. Aug 2016 13:36

AW: Memofeld Inhalt
 
Zitat:

Naja vagtler bis jetzt bist du der einzige der die Herangehensweise nicht versteht.

Ich wollte für ein Memory Spiel Bilddateien in das Programm direkt hinein packen mit der "tollen" Imagelist. Nur leider ist Delphi an der Größe der Bilder gescheitert sowie der veralteten bitmap Datei. Wahrscheinlich muss man Bilder nehmen die 1 px groß sind....
Zitat:

Gibt man das Passwort 2x falsch ein wird eine .bat Datei erstellt welche zu mindestens Windows selbst zwingt sich bedingungslos herunterzufahren.
Warum muss ein Memory-Spiel den PC herunterfahren, wenn man zweimal das Passwort falsch eingibt?

Zitat:

Eine STRG+Z Funktion auf der Form gibt es auch noch nicht in der 10. Variante. Wie oft hatte ich etwas verschoben, was ich danach mühselig wieder grade rücken musst -.-
Du hast Delphi 10 GESCHENKT bekommen (nehme ich an) und wagst es noch dich auf diese dumme Art und Weise zu beschweren? Das ist wirklich armselig!

DeddyH 28. Aug 2016 13:41

AW: Memofeld Inhalt
 
Noch dazu ein Online-Memory mit Passwort-Eingabe :stupid:

XardasLP 28. Aug 2016 14:17

AW: Memofeld Inhalt
 
Nein das Memory war ja mein Abschlussprojekt im Abi ^^

Das Passwortprogramm und das Memory sind zwei verschiedene Sachen. Nur dort hatte ich zuletzt versucht ein Bild reinzuladen und mit in die .exe zu kompilieren.

Ne habe die Testversion von RAD Studio 10.1 Berlin. Und gerade so einfache Sachen wie "rückgängig", was es schon ewig in Programmen gibt hätte ich auch mal auf der Form erwartet...

dGeek 28. Aug 2016 15:09

AW: Memofeld Inhalt
 
Erklär doch mal dein Vorhaben.
- warum willst du keine externen Dateien?
- warum muss der PC herunterfahren?

XardasLP 28. Aug 2016 15:25

AW: Memofeld Inhalt
 
Wenn jemand ein Hackprogramm einsetzt kann er dies, falls es die Anwendung im laufenden Zustand benötigt nur 15 Sekunden lang tun. Und wenn er es so versucht dann fährt der PC sowieso bedingungslos runter. Ob es seiner ist oder meiner das ist egal.

PC heruntergefahren = Trennung vom Internet = sicher ^^
Und dadurch das sich die Textdateien selbst löschen kann er eh nix mehr machen.

dGeek 28. Aug 2016 15:39

AW: Memofeld Inhalt
 
Ich weiß nicht warum. Ich möchte dich auch nicht angreifen aber...
mir kommt es so vor, als ob du an Selbstüberschätzung und Wahnsinn leidest.

Benedikt Magnus 28. Aug 2016 15:43

AW: Memofeld Inhalt
 
Wenn sich das Passwort in der Exe befindet, dann braucht man sie nicht zu starten, um daran zu kommen. Man braucht sich nur den Binärcode anzusehen und findet es im Klartext vor.

Aber kann es sein, dass du dir (auch was das 50-stellige Passwort angeht) da zu viel Sorgen um Sicherheit machst? Was versuchst du damit zu schützen, dass du solch einen Aufwand betreibst?

Falls du nur durch die Eingabe eines kurzen Passwortes ein langes erhalten möchtest (ich habe deine Intention leider nicht genau verstehen können...), dann wäre es am sinnvollsten, Name und Passwort zusammen mit AES zu verschlüsseln, dieses verschlüsselte Passwort als Konstante in dein Programm zu setzen und bei Eingabe eines Passwortes dieses damit zu entschlüsseln versuchen. Gibt man das falsche Passwort ein, erhält man auch nur Unsinn, ganz einfach.

XardasLP 28. Aug 2016 15:45

AW: Memofeld Inhalt
 
Wieso Selbstüberschätzung?

eine .bat Datei ist doch das billigste Mittel um sowas zu machen :) ^^

Naja mein Spieleaccount wurde schon mal gehackt von daher :p ^^

DeddyH 28. Aug 2016 15:47

AW: Memofeld Inhalt
 
Und der Account liegt auf Deinem Rechner? Oder willst Du Deine Exe auf einem Server starten und den ggf. herunterfahren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz