![]() |
Memofeld Inhalt
Der Inhalt eines Memofeldes wird geändert also beispielsweise:
Delphi-Quellcode:
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 ;) ^^
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; |
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. |
AW: Memofeld Inhalt
Hallo,
du könntest die Datei verschlüsseln. Oder du packst den Inhalt in eine Ressource in die Exe selbst. |
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. |
AW: Memofeld Inhalt
Stichwort: selbstmodifizierende EXE. Das ist böse. Sehr böse.
Ansonsten verweise ich auf meinen obigen Beitrag. |
AW: Memofeld Inhalt
Wenn jemand eine Textdatei einfach verwenden und löschen kann ist das nicht ebenso unsicher / sinnfrei?
|
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. |
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 |
AW: Memofeld Inhalt
Zitat:
Übrigens kann man auch Dein Programm einfach löschen! Gruß K-H |
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:
|
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:
|
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 ^^ |
AW: Memofeld Inhalt
Was genau willst Du eigentlich bezwecken? Ich bin aus der bisherigen Beschreibung noch nicht ganz schlau geworden.
|
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 ^^ |
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. |
AW: Memofeld Inhalt
Bitte zuerst durchlesen:
![]() |
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? |
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.
|
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? |
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.
|
AW: Memofeld Inhalt
Zitat:
Ich mutmaße weiterhin, dass Deine Herangehensweise falsch ist und das eigentliche Problem nicht korrekt beschrieben ist. |
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? |
AW: Memofeld Inhalt
Ja, wieso nicht alles in einer Datei (Ini, XML oder wie auch immer) und diese dann im Benutzerdaten-Verzeichnis abgelegt?
|
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? |
AW: Memofeld Inhalt
Zitat:
Zitat:
Zitat:
A propos: ein Programm einer Privatperson, was meinen PC automatisiert herunterfährt, würde bei mir gar nicht erst auf den PC kommen. |
AW: Memofeld Inhalt
Zitat:
|
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 :-) |
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.
|
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? ^^ |
AW: Memofeld Inhalt
![]() |
AW: Memofeld Inhalt
Ok danke erstmal ^^
|
AW: Memofeld Inhalt
Zitat:
Zitat:
Zitat:
|
AW: Memofeld Inhalt
Noch dazu ein Online-Memory mit Passwort-Eingabe :stupid:
|
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... |
AW: Memofeld Inhalt
Erklär doch mal dein Vorhaben.
- warum willst du keine externen Dateien? - warum muss der PC herunterfahren? |
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. |
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. |
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. |
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 ^^ |
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. |
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