Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 24.05.2007, 17:27 Titel: Frage zu Dateien |
|
|
Ist es möglich in Qbasic eine Datei zuerzeugen und diese kann dann nur von einem bestimmten Programm geöffnet werden z.B.: ein selbst geschriebenes ?
MfG
Franz _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.05.2007, 17:43 Titel: |
|
|
Nö. Du kannst A) verschlüsseln (bei XOR o.ä. unknackbar )B) an einem freien Ort auf einem Datenträger (RAMDISK dann rebooten ) speichern (OHNE MFT eintrag, sondern einfach per LBA drauf zugreifen oder (unsicher) C) einen neuen benutzter erstellen (ohne Icon etc.) dein prog. auf diesem benutzterkonto ausfürhren + den zugriff für andere nutzter sperren (unsicher) _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.05.2007, 19:21 Titel: |
|
|
genau genommen nein, im prinzip aber ja (oder andersrum? )
meine variante wäre:
- eigenes dateiformat entwickeln. das kann man, ohne sich näher damit zu beschäftigen, als außenstehender unter Umständen nicht knacken.
- Leichere Variante: Bei bekannten Formaten (BMP, WAV) einfach den header entfernen oder einen eigenen Header erfinden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.05.2007, 21:04 Titel: |
|
|
csderats hat Folgendes geschrieben: | Nö. Du kannst A) verschlüsseln (bei XOR o.ä. unknackbar )B) an einem freien Ort auf einem Datenträger (RAMDISK dann rebooten ) speichern (OHNE MFT eintrag, sondern einfach per LBA drauf zugreifen oder (unsicher) C) einen neuen benutzter erstellen (ohne Icon etc.) dein prog. auf diesem benutzterkonto ausfürhren + den zugriff für andere nutzter sperren (unsicher) |
A)= eine verschlüsselung anwenden Wikipedia 1
Wikipedia 2 (hilfreich)
B)= Kompliziert und Datensicherheit gering => nicht empfohlen
C)= " " " " => genausowenig
Ich denke Vernam oder Autokey verfahren wären für dich das richtige: einfach zu proggen und relativ ( ) sicher
Pseudo-Code für Vernam:
Code: |
'Verschluesseln
dim as string klar
dim as string schluessel * len(klar)
dim verschluesselt as string
dim cache as string * 1
dim n as uinteger 'negative schluessellängen sind nicht sinnvoll :D
for n = 1 to len(klar)
randomize timer
cache = chr(int((rnd * 255) + 1)
schluessel += cache
next n
open "schluessel.txt" for output as #1
print #1, schluessel
close #1
verschluesselt = klar XOR schluessel
|
Code: |
'Entschluesseln
dim as string klar
dim as string schluessel = "hier den schluessel hin"
open "datei.dat" for binary access read as #1
dim as string verschluesselt * lof(1)
get #1,,verschluesselt
close #1
klar = verschluesselt XOR schluessel
open "output.dat" for output as #1
print #1, klar
close #1
|
achja nochwas: mit qb kann so verschluesselt / entschluesselt nur 32 KB groß sein, es sei denn du baust das ganze zu einer Block-Chiffre um (einfach+ bringt viel nutzten) _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 25.05.2007, 08:45 Titel: |
|
|
Ich würde an der Stelle "unknackbar" und "kann ich nur selbst öffnen" ein bisschen auseinanderhalten. Letztes erstrebt eine Abschirmung, aber nicht eine absolute, einbruchsichere.
Im letzteren Fall reicht es oft schon, seine Daten im Binary-Format abzuspeichern. Ohne irgendwelche sonstigen Verrenkungen. Ist bei Spielen für die Config- und Spielstandsdateien nützlich. Eine txt- oder xml-Datei lädt zum Cheaten ein; eine Binary-Datei braucht meist schon mind. zwei Stunden, um dechiffriert zu werden. Und das wendet i.d.R. keiner für ein Privat-Game auf. Da ist es leichter, den Programmierer zu fragen
Grüsse!
Croco |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 25.05.2007, 14:12 Titel: |
|
|
Zitat: | Achja, noch was die Vernam-Verschlüsselung IST unknackbar. |
Zitat: | Und ist damit auch die einzige die man wirklich NUR mit BF knacken kann. |
 _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 25.05.2007, 14:15 Titel: |
|
|
Wikipedia (Polyalphabetische Substitution) hat Folgendes geschrieben: |
Der Spezialfall, dass der Schlüssel genauso lang ist wie der zu verschlüsselnde Text, heißt Vernam-Verschlüsselung, wobei der Schlüssel XOR mit dem Klartext verknüpft wird. Handelt es sich bei dem Schlüssel um eine zufällige Folge von Buchstaben, und wird der Schlüssel nur ein einziges Mal verwendet, nennt man das Verfahren auch One-Time-Pad. Bei diesem ist eine Dechiffrierung ohne Kenntnis des korrekten Schlüssels absolut unmöglich.
|
ich liebe dich, wikipedia. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 25.05.2007, 14:52 Titel: |
|
|
Okay ....
Ich wollte nämlich ein Programm schreiben was eine Datei aufruft die den Code für die Aufgabe enthält (z.B. eine Linie zeichnen). Das Programm soll dann den Code ausführen. _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 25.05.2007, 15:57 Titel: |
|
|
csderats hat Folgendes geschrieben: | Achja, noch was die Vernam-Verschlüsselung IST unknackbar. (Und ist damit auch die einzige die man wirklich NUR mit BF knacken kann.) |
Sagt das der Erfinder des Codes?  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 25.05.2007, 17:42 Titel: |
|
|
OMFG
Also, OTP (oder von mir aus auch einfach nur XOR) ist theoretisch unknackbar, da bei jedem Versuch alles mögliche herauskommen kann. *Allerdings* gibt es die Schwachstelle "Schlüssel".
Und bei einem Computerprogramm wird der zu 'ner hohen Wahrscheinlichkeit im Programm untergebracht sein, was mit einem Disassembler eine Arbeit von ein paar Minuten ist. Das wäre, wenn die Verschlüsselung für den User transparent erfolgt.
Soll der User den Schlüssel eingeben, ist das wieder was anderes.
So, zweitens, irgendwo auf einen "freien" Bereich der Platte zu schreiben, ist eine wirklich schlechte Idee. Zum einen müsstest du dann das komplette Dateisystem quasi "parsen" (bei allen FAT-Systemen möglich, aber wirklich schwer, da du eine Tabelle mitführen musst, was belegt ist - bei NTFS unmöglich) und dann: wer sagt dir, dass das Betriebssystem den Block nicht schon in der nächsten Sekunde mit irgend 'ner anderen Dateien bzw. einem anderen FAT-Eintrag überschreibt?
Du kannst zwar Blöcke als reserviert markieren, allerdings sollte ein gutes Werkzeug aufdecken, wenn Blöcke fehlerhaft sind.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 25.05.2007, 22:24 Titel: |
|
|
csderats hat Folgendes geschrieben: | B) an einem freien Ort auf einem Datenträger (RAMDISK dann rebooten ) speichern (OHNE MFT eintrag, sondern einfach per LBA drauf zugreifen oder (unsicher) |
Unsicher für die Daten habe ich gemeint
so tschuess ich habe hier im Schloss Auel nur 15 Minuten on zeit  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 27.05.2007, 13:43 Titel: |
|
|
So, ich habe mich nochmal drangesetzt, und mal einen kompletten FB-Source dafür geschrieben; allerdings ist das entschluesselte = das doppelte des uprsprünglichen, k.A. warum.
Code: |
dim as string klar, ver
dim cache as string * 1
dim cache2 as integer
dim cache3 as integer
dim n as integer
input "Klartext: ", klar
dim schlu as string * sizeof(klar)
for n = 1 to len(klar)
cache = ""
cache = chr(int(rnd * 255) + 1)
schlu = schlu + cache
next n
open "schluessel.txt" for output as #1
print #1, schlu
close #1
print "Schl?ssel: "; schlu
for n = 1 to sizeof(klar)
cache2 = asc(mid(klar,n,1))
cache3 = asc(mid(schlu, n,1))
ver = ver + chr(cache3 XOR cache2)
next n
print "Verschl?sselt: "; ver
for n = 1 to sizeof(ver)
cache2 = asc(mid(ver,n,1))
cache3 = asc(mid(schlu,n,1))
klar= klar + chr(cache2 xor cache3)
next n
print "Entschluesselt: "; klar
sleep
end |
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 27.05.2007, 14:12 Titel: |
|
|
Hallo
csderats hat Folgendes geschrieben: | So, ich habe mich nochmal drangesetzt, und mal einen kompletten FB-Source dafür geschrieben; allerdings ist das entschluesselte = das doppelte des uprsprünglichen, k.A. warum. |
Vielleicht, weil Du die Variable klar nicht löscht und den entschlüsselten einfach an den ursprünglich eingegebenen Text anhängst?
Aber einerseits sind wir hier bei QBasic, zum Anderen geht es Franz, jedenfalls soweit ich das verstanden habe, um etwas ganz anderes. Natürlich wäre es einfacher, wenn er sich mal etwas ausführlicher äussern würde, aber das:
Franz hat Folgendes geschrieben: | Ich wollte nämlich ein Programm schreiben was eine Datei aufruft die den Code für die Aufgabe enthält (z.B. eine Linie zeichnen). Das Programm soll dann den Code ausführen. |
hört sich eher nach einer Art Interpreter an, als nach Verschlüsselung. Mein Vorschlag dazu wäre, jedem Befehl eine Nummer zu geben. Also z.B. Linie zeichnen = 17. Das ausführende Programm weiss, wieviele und welche Parameter zu erwarten sind. Vielleicht Anfangs-, Endkoordinaten und Farbe. In der "Datendatei" stünde dann ...17,100,100,200,100,8... Mit dieser Zahlenfolge kann kein anderes Programm etwas anfangen, als der selbstgeschriebene Interpreter. Wie gesagt wäre es aber nicht schlecht, wenn Franz mal etwas genauer beschreiben würde, was er machen will.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 27.05.2007, 14:17 Titel: |
|
|
Skilltronic hat Folgendes geschrieben: | Vielleicht, weil Du die Variable klar nicht löscht und den entschlüsselten einfach an den ursprünglich eingegebenen Text anhängst?
Aber einerseits sind wir hier bei QBasic, zum Anderen geht es Franz, jedenfalls soweit ich das verstanden habe, um etwas ganz anderes. |
Ah, danke für den Hinweis
Aber das von FB nach QB zu konvertieren ist nicht sonderlich schwer
Aber ein Interpreter wäre natürlich auch eine gute möglichkeit... ist evtl. nur schwerer zu realisieren _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 28.05.2007, 12:10 Titel: |
|
|
Ein Interpreter muss keine schwer zu realisierende Sache sein.
Schau dir mal die (abgelaufene) Interpreter-Aufgabe beim QB-Wettbewerb an. Da gibt's eine eher einfach gehaltene Scriptsprache mit nur ein bisschen mehr als 100 Zeilen und einen recht umfangreichen Interpreter, der trotzdem noch zu verstehen ist.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Keks
Anmeldungsdatum: 03.11.2007 Beiträge: 156 Wohnort: Dose
|
Verfasst am: 04.11.2007, 15:13 Titel: |
|
|
Eine Frage: Wie baue ich den ersten Code ein? Ich will beim Verschlüsseln eine Variable zum verschlüsseln festlegen und die beim Entschlüsseln entschlüsselt ausgeben.
Danke. |
|
Nach oben |
|
 |
|