Autor Beitrag
jackle32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Di 12.02.08 15:48 
Hallo,

ich hab mal eine Frage, kann ich mittels Delphi (oder vielleicht auch mit einem anderen Tool) eigene Dateiformate erstellen. Wie aufwändig wäre sowas und vielleicht gibt es ja sogar Tutorials darüber?

Gruß Jack


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 12.02.2008 um 15:52
Moderiert von user profile iconNarses: Titel geändert.

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 12.02.08 15:55 
Gegenfrage : für was sollte das gut sein ?

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
jackle32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Di 12.02.08 16:07 
Suche eine Möglickeit Daten in Dateien aus Delphi heraus manipuliersicher zu speichern.

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Di 12.02.08 16:17 
user profile iconjackle32 hat folgendes geschrieben:
Suche eine Möglickeit Daten in Dateien aus Delphi heraus manipuliersicher zu speichern.

Du gestattest?! Ha! Ha! =)

Das geht nun wirklich nicht. Dateien bzw. Daten, die von irgendwoher kommen, können immer manipuliert sein.

Ich versteh ehrlich gesagt nicht ganz, was du möchtest.
Was stellst du dir unter einem "eigenen Dateiformat" vor?
Du kannst beliebige Daten in beliebiger Bitreihenfolge in beliebige Dateien mit beliebigen Endungen speichern.

LG,
Xong
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 16:20 
user profile iconjackle32 hat folgendes geschrieben:
Suche eine Möglickeit Daten in Dateien aus Delphi heraus manipuliersicher zu speichern.
*laut lachend*
Antwort: siehe mein Vorredner
PS: Wie wichtig sind deine Daten?
PS: Verschlüssele Deine Daten per 256Bit-Schlüssel und benutze sie nie, sonst lese ich sie aus dem RAM doch wieder aus!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 12.02.08 16:30 
Wie meine Vorposter schon schreiben: Das mit der Manipulierbarkeit ist lächerlich. Du kannst Daten immer manipulieren, es sei denn, du hast nicht die nötigen Benutzerrechte. Selbst dann aber kann man mit einer DOS-Bootdiskette oder BartPE immer noch "manipulieren". Verhindern, dass jemand die Daten ansieht, kannst du über Verschlüsselung. Aber selbst da kann man natürlich immer noch in den Dateien rumtippen. Es ergibt bloß keinen Sinn.
Warum willst du die Nutzer deines Programms daran hindern, ihre Daten mit Drittprogrammen zu bearbeiten?

Um aber auf die eigentliche Frage zurückzukommen: In speziellen Formaten wie z.B. DOC sind einfach nur Daten in einer bestimmten Reihenfolge / Struktur gespeichert. Letzten Endes sind da einfach nur Variablen hintereinander gespeichert - wie genau, findet man auf www.wotsit.org.
Je nach Anwendungszweck läuft das ganz unterschiedlich. Was willst du denn abspeichern? Bilder? Text? Formatierten Text? Zahlen?

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell


Zuletzt bearbeitet von Timosch am Di 12.02.08 16:34, insgesamt 1-mal bearbeitet
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Di 12.02.08 16:32 
was er meint, ist sicher nicht die absolute sicherheit, die gibt's eben nicht.
ich tippe mal, er meint mit manipuliersicher, das der (nicht-IT-Profi)-User
die Daten nur mit seiner Anwendung und nicht mit nem Editor einfach so ändern kann.
Helfen könnten ihm aber folgende Stichworte:

typisierte Dateien (für z.b. eigene 'Dateiinhaltformate')

Dateiendungen (um per 'unbekannter Dateiendung' einem Dau den Zugriff zu erschweren)
verschlüsseln (um die Daten wenigstens beim Transport halbwegs sicher zu machen)

ein Weg wäre z.b.
Daten verschlüsseln (XOR, RSA, MD5, etc - wie auch immer),
Datei unter ner relativ unbekannten Endung speichern,
das schließt schon mal die Masse der manipulationsfähigen User aus.

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 12.02.08 17:33 
user profile iconzuma hat folgendes geschrieben:
ein Weg wäre z.b.
Daten verschlüsseln (XOR, RSA, MD5, etc - wie auch immer),
Datei unter ner relativ unbekannten Endung speichern,
das schließt schon mal die Masse der manipulationsfähigen User aus.

Naja, lassen wir das MD5 mal raus, sont könnte der Ladevorgang ein "wenig" länger dauern, wenn man erst nach den richtigen Daten Brute-Forcen muss :mrgreen:

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 12.02.08 18:10 
user profile iconalias5000 hat folgendes geschrieben:
user profile iconzuma hat folgendes geschrieben:
ein Weg wäre z.b.
Daten verschlüsseln (XOR, RSA, MD5, etc - wie auch immer),
Datei unter ner relativ unbekannten Endung speichern,
das schließt schon mal die Masse der manipulationsfähigen User aus.

Naja, lassen wir das MD5 mal raus, sont könnte der Ladevorgang ein "wenig" länger dauern, wenn man erst nach den richtigen Daten Brute-Forcen muss :mrgreen:

Gruß
alias5000

Um das mal dem Rest zu erklären: MD5 ist ein Hash, keine Verschlüsselung, d.h. aus dem Hash lässt sich nur durch Bruteforce der Plain-text entziffern.



user profile iconzuma hat folgendes geschrieben:
was er meint, ist sicher nicht die absolute sicherheit, die gibt's eben nicht.
ich tippe mal, er meint mit manipuliersicher, das der (nicht-IT-Profi)-User
die Daten nur mit seiner Anwendung und nicht mit nem Editor einfach so ändern kann.
Helfen könnten ihm aber folgende Stichworte:

typisierte Dateien (für z.b. eigene 'Dateiinhaltformate')

Dateiendungen (um per 'unbekannter Dateiendung' einem Dau den Zugriff zu erschweren)
verschlüsseln (um die Daten wenigstens beim Transport halbwegs sicher zu machen)

ein Weg wäre z.b.
Daten verschlüsseln (XOR, RSA, MD5, etc - wie auch immer),
Datei unter ner relativ unbekannten Endung speichern,
das schließt schon mal die Masse der manipulationsfähigen User aus.

Ich frage mich ja immer noch, was das soll. Ein Programm, dass verhindert, dass ich andere Programme verwende, würde ich als User ganz schnell aus meinem System schmeißen...

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 12.02.08 18:48 
grundsätzlich würde ich sagen:
Mach ne Textdatei und schreib da fröhlich rein. Die kannst du ja nennen wie du willst. Und den Inhalt verschlüsselst du. Ob die Datei dann .txt .dat oder .ini heißt, letztenendes ist es ja immer eine Textdatei. Du kannst ja selbst exe-files als txt öffnen und manipulieren (z.B. Hardgecodede Backdoor-Passwörter auslesen ;) )

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 12.02.08 18:57 
user profile iconTimosch hat folgendes geschrieben:

Ich frage mich ja immer noch, was das soll. Ein Programm, dass verhindert, dass ich andere Programme verwende, würde ich als User ganz schnell aus meinem System schmeißen...

Hm..., ich wusste noch garnicht das Rechner auch ohne Betriebsystem funktionieren.

Eine weitere Möglichkeit die Daten vor normalen Anwendern zu verstecken, ist einfach, über Dateiattribute.
Unsichtbar (Hidden) macht die datei bei "normaler" Explorer Konfiguration unsichtbar.
Oder einen Schreibschutz (ReadOnly) setzen. Das Rücksetzen davon überfordert regelmäßig Anwender :lol:

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 12.02.08 20:14 
user profile iconSinspin hat folgendes geschrieben:
user profile iconTimosch hat folgendes geschrieben:

Ich frage mich ja immer noch, was das soll. Ein Programm, dass verhindert, dass ich andere Programme verwende, würde ich als User ganz schnell aus meinem System schmeißen...

Hm..., ich wusste noch garnicht das Rechner auch ohne Betriebsystem funktionieren.

Ähm, inwiefern verhindert ein Betriebssystem, dass ich andere Betriebssysteme verwende? Ich habe Windows 2000 und Linux auf meinem Rechner, also wäre das wohl widerlegt... (oder wie war dein Statement gemeint?)

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 12.02.08 21:52 
Jedes Betriebsystem wird, in einem gewissen Umfang, verhindern das bestimmte Dateien geändert werden. Selbst wenn es sich nur um ein Pagefile oder sowas handelt.
Das man da mit einem anderen System dran kommt ist klar.

Aber, da jedes einzelne System sich selber schützt und ein BS auch ein Programm ist, du aber keine Programme duldest die Dateien vorm Zugriff schützen, wirst du wohl ohne BS auskommen müssen. :wink:

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
jackle32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Mi 13.02.08 10:32 
Weil so oft gefragt, hier die Erklärung:

Sinn des ganzen ist es, für ein Spiel, dass ich entwickeln will such ich nach einer Möglichkeit die Leveldaten (größten Teils integer werte) zu schützen. Ich wollte einfach eine Datei erzeugen, die nicht jeder sofort ohne besonderes Wissen oder ohne großen Aufwand ändern kann. Also nicht irgendwelche Hacker, sondern Otte Normalverbraucher. Mir ist schon klar wer es wirkliche will kann alle Dateien verändern.
Den Inhalt wollte ich eigenlich nicht kodieren, da ich dann einen wesentlich größen Aufwand beim auslesen hätte.
Daher bräuchte ich ein Dateiformat, bei dem nicht jedem ins Auge springt wie ich diese ändere.

Gruß Jack

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mi 13.02.08 11:04 
Wie schon angesprochen, verstecken, oder Schreibschutz.
Eine weitere Möglichkeit wäre es, dafür zu sorgen das sich bei Zugriffen das Datum der Datei nicht ändert.
Oder du schreibst nicht nur die Daten sondern, auch noch eine Checksumme in die Datei. Passen die Daten und die Checksumme beim Öffnen der Datei nicht zusammen, wurde manipuliert und du kannst den User ausbuuen.
Ansonsten bleibt nur noch Verschlüsseln.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 13.02.08 11:06 
Wenn du die integer-Werte nicht als String speicherst (Stichwort: typisierte Dateien), dürfte es für den Normal-Anwender schon fast unmöglich sein, die Werte zu erkennen. Für einen passablen Programmierer stellt das aber immer noch keine Hürde dar. Bei Bedarf kannst du die Werte auch noch XOR-verschlüsseln. Wird aber nicht viel mehr bringen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 13.02.08 11:07 
Wenn das alles Integerwerte sind, und du die einfach hintereinander in einen TFileStream schreibst bzw. liest, dann wird es sowieso schwer durchschaubar sein. In einem normalen Editor ohne Hex-Anzeige sieht man dann nicht viel sinnvolles.

Was du mit leicht editierbar meinst, sind vielleicht INI-Dateien oder Textdateien, in der die Integer-Werte als Strings drin stehen... Aber wenn die Integers eben direkt als Zahlenwerte drin stehen, dann ist es für den ganz normalen Benutzer erstmal nicht ganz so einfach, das zu ändern.

Zudem könntest du aus allen Werten einen Wert berechnen und ebenfalls speichern (z.B. alle Zahlen mod 3 nehmen und die Ergebnisse addieren), der dir manipulierte Daten signalisiert, wenn das nicht mehr passt.
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Mi 13.02.08 13:40 
user profile iconTimosch hat folgendes geschrieben:
Um das mal dem Rest zu erklären: MD5 ist ein Hash, keine Verschlüsselung, d.h. aus dem Hash lässt sich nur durch Bruteforce der Plain-text entziffern.

Nö! :)
Es gibt unendlich viele Zeichen- bzw. Bitkombinationen, die auf einen Hash passen!
Warum wird es dann trotzdem zur Passwortverschlüsselung eingesetzt?
Jedes Mal wenn das Passwort abgefragt wird, wird es mit dem vorher (z.B. bei der Registrierung) generierten Hash verglichen. Die Gefahr einer Kollision, also einer Überseinstimmung zweier Hashcodes von unterschiedlichen Zeichenkombinationen, ist aber so gering, dass man sie vernachlässigen kann.
Vorteil der Hashcodebildung ist ja gerade die Unmöglichkeit der Umkehrung. Und selbst wenn man eine Übereinstimmung entdeckt hat, so ist das nur eine von vielen.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 13.02.08 13:56 
oder du machst es ganz lustig und zippst die Datei einfach. So machts OpenOffice. Die Haben einfach das Dokument als mehrere XML-Dateien gespeichert und dann gezippt. Wenn du dann noch ne andere Dateiendung dranmachst dann durchblickts der Otto überhaupt nicht mehr. Und du brauchst auch kein Stück zuviel Programmieren da du einfach diverse Komponenten zur verfügung hast.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 13.02.08 14:45 
user profile iconelundril hat folgendes geschrieben:
oder du machst es ganz lustig und zippst die Datei einfach. So machts OpenOffice.
Wäre mir neu. Du meinst sicher MS-Office.