VPHD - Virtual private hard-disc
Hallöchen alle zusammen!
Habe mich lange Zeit nicht hier im Forum blicken lassen, da ich in letzter Zeit leider zu viel mit Uni (und zocken xD) zu tun hatte. Aber ich dachte mir, dass ich das mal endlich hinter mich bringen sollte. Naja lange Rede kurzer Sinn: Ich möchte euch hier mein neustes (altes) Projekt VPHD vorstellen. Bei diesem Tool handelt es sich wie der Name schon ausdrückt um eine art Archiv für Dateien zur sicheren Aufbewahrung. Der große Unterschied und auch Vorteil dieses Programms im Gegensatz zu normalen verschlüsselten Archiven wie WinRar, 7zip und Co. ist, dass dieses Format auf sehr große Datenmengen und vor allem das häufig Hinzufügen, Löschen und Ändern von Daten ausgelegt ist. Übliche Archive müssen bei jeder Veränderung des Inhaltes neu geschrieben werden, was bei einer Änderung einer kleinen Datei in einem etwa 2 GB dann schon mal so 10 minuten dauern kann. Das Format von VPHD hingegen verhält sich, wie der Name schon sagt, mehr wie ein Dateisystem. Der Vorteil ist, dass das Hinzufügen, Löschen und Ändern von Dateien nur so lange dauert, wie das schreiben eben dieser einen Datei. Beim Löschen wird demnach nicht mehr gemacht als im Dateiindex des Containers der Speicherbereich der Datei als Frei markiert, ähnlich einer normalen Festplatte. Diese Lücken werden dann nach und nach durch Hinzufügen neuer Dateien und eine einfache Optimierung nach und nach wieder gefüllt. Die wichtigste Funktion von VPHD liegt jedoch in der (optionalen) Verschlüsselung von Containern. Damit lassen sich beliebige Dateien in einem passwort-geschütztem Container aufbewahren, welcher sich jedoch ohne großen Aufwand schnell auslesen lässt. Hier eine kleine Zusammenfassung der Features des Programms:
Mit freundliche Grüßen Björn Zeutzheim PS: Hier die direkten Download-Links: VPHD Setup (916 KB) VPHD mit Sourcen (1.454 KB) |
AW: VPHD - Virtual private hard-disc
Nettes Projekt, erinnert mich an EncFS und Truecrypt.
Welche Verschlüsselungsmethoden stehen denn zur Verfügung? EncFS und Truecrypt unterstützen ausschließlich symmetrische, du könntest sie evtl. schlagen, indem du daneben auch asymmetrische (auch wenn das bei diesen Datenmengen sehr unperformant ist) oder Hybridverschlüsselung anbötest. Zitat:
Zitat:
DISCLAIMER: Die Hinweise auf EncFS und Truecrypt sind nicht zum schlechtmachen gemeint, sondern mehr als Tipp zur Orientierung. Weiterhin habe ich dein Programm bisher noch nicht getestet (bin nicht zuhause), sondern dies ist nur, was mir zur Beschreibung einfällt. |
AW: VPHD - Virtual private hard-disc
TrueCrypt kenne ich und mein Programm bessert genau einen Nachteil davon aus:
TrueCrypt benötigt einen Treiber um das Dateisystem als Laufwerk Einzubinden. Daraus folgt aber auch, dass es zum Ausführen (bzw. zur Installation) Administrator-Rechte benötigt. Mein Format ist mehr auf Portabilität ausgelegt, da es sich immer und überall auslesen lässt, ohne dass Administrator-Rechte nötig wären. Zitat:
a) Nicht wirklich einen Sinnvollen Anwendungszweck dafür gäbe (außer der Befriedigung des eigenen Ehrgeizes ^^) b) Viel viel viel zu langsam wäre c) Ein Hybrid-Verfahren wäre nicht mehr wirklich Sicher (es ließen sich über Tricks die Daten des Archives manipulieren) Zitat:
|
AW: VPHD - Virtual private hard-disc
Zitat:
Jedoch ist intern im Format die Möglichkeit vorhanden, andere Verschlüsselungen zu verwenden. Sie müssten lediglich implementiert werden. EDIT: Ich habe gerade die Möglichkeit von Backups mit EncFS gelesen. Das wäre bei meinem Format auch gut Möglich - wenn Interesse besteht, kann ich dies implementieren! |
AW: VPHD - Virtual private hard-disc
Hallo Björn,
mir gefällt die Umsetzung des Konzepts sehr gut, insbesondere was die treiberlose Einbindung angeht. Planst Du eine API (in Form einer DLL) für die Einbindung z.B. in Delphi-Programme, so dass man ggf. mit einem virtuellem Filesystem arbeiten könnte? Mir fällt da spontan BoxedApp ein. Das ist ja ein kommerzielles Angebot, was es z.B. auch ermöglicht, DLL, ActiveX- Komponenten in die Exe einzubinden und zur Laufzeit so zu benutzen, als wären sie im tatsächlichen Filesystem vorhanden. Es geht mir gar nicht um die Exe-Einbindung, sondern um den treiberlosen Container-Zugriff. Ansonsten habe ich noch Kleinigkeiten wie: - Der Graph-Bereich lässt sich nicht mehr per Knopfdruck/F3 einblenden, wenn er zuvor manuell minimiert wurde. - Die Icons sind für das Menü zu groß und kollidieren teilweise mit der Beschriftung. - Es macht mir Mühe mich zu erinnern, wann wir zuletzt Win-Programme mit Strg-Q geschlossen haben ;). Das System-Menü schlägt ja auch Alt+F4 vor. |
AW: VPHD - Virtual private hard-disc
Sehr schönes Programm. Gut geeignet für den USB-Stick. Aber kann man das auch irgendwie automatisieren? Ich habe mit eine Batch-Datei geschrieben, die alle meine Dateien, die ins Backup sollen in ein verschlüsseltes 7-Zip Archiv auf dem USB-Stick legt. So lange sich deine Software nicht so automatisieren lässt, kann ich sie leider nicht gebrauchen.
Warum wird die Archivdatei nicht kleiner, wenn ich eine Datei rauslösche? Das Fenster sollte sich in der Mitte des Monitors öffnen. Und schön wäre es, wenn es nicht gleich so groß wäre. Bzw. sich Größe und Position merken würde. |
AW: VPHD - Virtual private hard-disc
Zitat:
|
AW: VPHD - Virtual private hard-disc
Ja, aber trotzdem wäre es schön, wenn es schon nicht automatisch geht, dass man die Dateigröße der tatsächlichen Größe der enthaltenen Dateien anpassen könnte.
|
AW: VPHD - Virtual private hard-disc
Hey,
Cooles Tool! Wie bereits erwähnt ideal für Dateien auf einem USB-Stick zu hinterlegen. Muss auf dem anderen Rechner (z.b. Arbeitsrechner) dein Tool auch installiert sein um die Archivdatei zu öffnen? Ich schätze mal ja. Das Programm kann ich gut gebrauchen. Top :thumb: |
AW: VPHD - Virtual private hard-disc
Die Datei wird kleiner - aber nicht immer.
Es ist intern ein Defragmentierungsalgorithmus vorhanden, welcher die Datei wieder verkleinert. Dieser wird aber (wenn ich mich recht erinnere) nur zu gegebenem Anlass ausgeführt. Den Ansatz einer Bibliothek habe ich auch im Sinn gehabt, aber der Gedanke ist irgendwie etwas in Vergessenheit geraten... :oops: Ich werde mich demnächst mal darum kümmern. Zitat:
Zitat:
Zitat:
MFG Björn |
AW: VPHD - Virtual private hard-disc
Zitat:
|
AW: VPHD - Virtual private hard-disc
Ich habe gerade nachgekuckt und festgestellt, dass der Algorithmus doch nicht aufgerufen wird :oops:
Ich werde gleich eine Version hochladen wo dies automatisch geschieht. |
AW: VPHD - Virtual private hard-disc
So.
Ich habe in der neuen Version die Defragmentierung wieder aktiviert. Sie wird ausgeführt, sobald das Archiv geschlossen wird. Mit freundlichen Grüßen Björn Zeutzheim |
AW: VPHD - Virtual private hard-disc
So, endlich ist es soweit fertig.
Ich habe nun das Projekt in eine DLL, über welche die VPHD-Bibliothek über ein Interface nutzen lässt, exportiert. Damit sollte sich das Projekt auch in den meisten anderen Sprachen nutzen lassen. Außerdem stellt so auch die Verwendung innerhalb einer Anwendung kein großes Problem mehr dar. Es ist zwar noch nicht alles ganz ausgereift, aber laufen tuts wunderbar. Zur Demonstration habe ich auch die Hauptanwendung (VPHD_Tool.exe) schnell mal auf die Verwendung der Bibliothek umgestellt, was sich ohne großen Aufwand umsetzen ließ. Daher kann ich euch auch nun hier die Source zum Tool rausgeben. (nicht aber die Sourcen der Bibliothek - das werde ich mir nochmal überlegen :-D - bzw auf Nachfrage) Die Downloads sind wie immer im ersten Post verlinkt. Mit freundlichen Grüßen Björn Zeutzheim |
AW: VPHD - Virtual private hard-disc
Ich habe mir Dein Projekt bereits angeschaut und bin sehr beeindruckt, wie schnell Du mit der DLL all die hier geäußerten Wünsche und Anregungen "erschlagen" konntest.
Vielen Dank dafür! |
AW: VPHD - Virtual private hard-disc
Nun ja...
eigentlich war das ganze nicht so schwer wie erwartet ^^ Der Trick war folgender: Das Projekt von VPHD besteht im Grunde aus einer einzigen Hauptklasse. Diese habe ich nun so abgeändert, dass ich dazu ein Interface (IVphd) mit allen public Methoden anlegen konnte. Dazu musste ich im Grunde nur die ganze Klasse kopieren, interface drüber schreiben, alle nicht-public felder rauslöschen und für ein paar public-variablen noch getter und setter anlegen. Damit das ganze nun auch als DLL nutzbar ist habe ich dann noch ein paar kleine Methoden geschrieben, welche exportiert werden. So z.B. zum öffnen / erstellen eines Archives:
Delphi-Quellcode:
Diese Funktion gibt dann am ende der Anwendung ein IVphd-Interface zurück, welches sich im Grunde fast exakt wie die normale Klasse verwänden lässt.
function OpenVphdFile(const FileName, Password: PWideChar; CreateNew: Boolean): IVphd; stdcall;
begin Result := TVPHD.Create(FileName, Password, CreateNew); end; Zuletzt war es noch nötig ale WideStrings in den Methoden des Interfaces durch PWideChar (mit daraus folgenden Code-Anpassungen) zu ersetzen und natürlich an alle Methoden stdcall dranhängen. Das wars dann auch schon im Großen und Ganzen. Hier mal als Beispiel das ganze Interface:
Delphi-Quellcode:
Wenn man sich von der Hauptanwendung (VPHD_Tool.exe) mal die Source anschaut sieht man auch, dass der Unterschied zwischen der Nutzung über das Interface und als normale Klasse wirklich minimal ist (lässt sich nun durch einen kleinen Compilerschalter umstellen).
IVPHD = interface (IInterface)
['{3D6C8AAE-0CED-4D71-A1E2-26D2CCD0E8A5}'] {$REGION 'File management'} procedure BeginUpdate; stdcall; procedure EndUpdate; stdcall; function GetDirectory(APath: PWideChar; DoCreate: Boolean): PDirNode; stdcall; function GetDirectoryFile(APath: PWideChar; var FileID: Integer): PDirNode; stdcall; function GetFile(AFileName: PWideChar): Integer; overload; stdcall; function GetFile(Dir: PDirNode; AName: PWideChar): Integer; overload; stdcall; //============================================================================== procedure AddFile(const AFileName: PWideChar; Data: TStream; FileDate: TDateTime); overload; stdcall; procedure AddFile(ARoot, AFileName: PWideChar); overload; stdcall; //============================================================================== procedure ExtractDir(Dir: PDirNode; DstPath: PWideChar); stdcall; procedure ExtractAll(DstPath: PWideChar); stdcall; procedure ExtractFile(FileID : Integer; const DstFile: PWideChar); overload; stdcall; procedure ExtractFile(FileID : Integer; DstStream: TStream); overload; stdcall; //============================================================================== procedure ExtractFileStart(FileID: Integer); stdcall; function ExtractFilePart(Dst: TStream; Count: Integer): Integer; stdcall; function ExtractFilePartBuff(var Data; Count: Integer): Integer; stdcall; procedure ExtractFileEnd; stdcall; //============================================================================== procedure DeleteFile(FileID: Integer); stdcall; procedure DeleteDir(Dir: PDirNode); stdcall; procedure RenameFile(FileID : Integer; ANewName: PWideChar); stdcall; procedure RenameDir(Dir: PDirNode; ANewName: PWideChar); stdcall; {$ENDREGION} procedure DrawFragmentationBar(DstDC: HDC; Width, Height: Integer; DrawStyle : TFragBarDrawStyle); stdcall; procedure SaveAs(const AFileName: PWideChar); overload; stdcall; procedure SaveAs(AStream: TStream); overload; stdcall; procedure Defragment; stdcall; procedure Finish; stdcall; function GetFileCount: Integer; stdcall; function GetFile(Index: Integer): PVphdFileInfo; overload; stdcall; property FileList[Index: Integer]: PVphdFileInfo read GetFile; function GetUpdating: Boolean; stdcall; function GetProgressFile: PWideChar; stdcall; procedure SetProgressFile(v: PWideChar); stdcall; function GetOwnStream: Boolean; stdcall; procedure SetOwnStream(v: Boolean); stdcall; function GetEOF: Int64; stdcall; function GetDescription: PWideChar; stdcall; procedure SetDescription(v: PWideChar); stdcall; function GetFileName: PWideChar; stdcall; function GetOnProgress: TVphdProgressEvent; stdcall; procedure SetOnProgress(v: TVphdProgressEvent); stdcall; property Updating: Boolean read GetUpdating; property ProgressFile: PWideChar read GetProgressFile write SetProgressFile; property OwnStream: Boolean read GetOwnStream write SetOwnStream; property Description: PWideChar read GetDescription write SetDescription; property FileName: PWideChar read GetFileName; property EOF: Int64 read GetEOF; property OnProgress: TVphdProgressEvent read GetOnProgress write SetOnProgress; end; MFG Björn Zeutzheim |
AW: VPHD - Virtual private hard-disc
Zitat:
|
AW: VPHD - Virtual private hard-disc
Danke ;)
Aber ich muss noch dran arbeiten. Auf meiner TODO-Liste steht vor allem noch ein wichtiger Punkt: Das auslesen von Dateien soll noch besser realisiert werden. Vor allem ist es mein Ziel, eine Funktion zu schreiben, welche einen speziellen Stream zurückgibt, mit welchem man eine Datei Stück für Stück aus dem Archiv auslesen kann. Das ist nicht gerade einfach und bedarf noch einiger Anpassung. Was jedoch bisher möglich ist, ist das Stückweise Auslesen mittels der 3 Funktionen:
Delphi-Quellcode:
PS: Der nächste Punkt auf meiner TODO-Liste ist aktuell aber die Implementation einer Kommandozeile.
procedure ExtractFileStart(FileID: Integer); stdcall;
function ExtractFilePart(Dst: TStream; Count: Integer): Integer; stdcall; function ExtractFilePartBuff(var Data; Count: Integer): Integer; stdcall; procedure ExtractFileEnd; stdcall; Ergebnisse sind in ca. einer Stunde zu erwarten, falls ich nicht ne Runde zocke xD EDIT: Eine kleine Bemerkung am Rande: Ich habe im Laufe der Entwicklung auch eine extra Testanwendung geschrieben, welche die Library einem Stresstest unterzieht. Dabei wurden tausende von Dateien kunterbunt hinzugefügt und gelöscht und dabei immer wieder die Datenintegrität (über Hashes der Zufallsdaten) geprüft. Dadurch wurden alle Fehler beseitigt und die Sicherheit des Formates überprüft (also keine Memory-leaks bzw. Dateninkonsistenzen). Außerdem habe ich dabei den gesamten Code auf höchste Performance optimiert. EDIT #2: Eine weitere Bemerkung: Das ganze Projekt ist durch Nutzung der TNT-Unicode-Controls Unicode-fähig! (Ist zwar ein etwas böser Hack, aber der Nutzen ist enorm ^^) Ich würde die DLL ja gerne ohne diesen Hack kompilieren, doch leider habe ich nur Turbo Delphi. Ich werde aber mal sehen ob ich zumindest für die DLL nicht eine bessere Lösung finde.... Jetzt wo ich so darüber nachdenke, würde es reichen, nur ein paar wenige Klassen und Methoden aus den TNT-units zu nehmen, anstatt gleich alles mit reinzunehmen... |
AW: VPHD - Virtual private hard-disc
So.
Wie versprochen habe ich nun die Konsolenversion implementiert. Der Download befindet sich wie gehabt im ersten Post. Für eine Hilfe zur Verwendung der Konsolenanwendung diese mit dem Parameter "/help" oder "/?" aufrufen. MFG Björn Zeutzheim |
AW: VPHD - Virtual private hard-disc
Muss ich mir mal genauer angucken, ob das reicht. Weil es wäre gut, wenn man noch Dateien (auch mit Wildcards) und Verzeichnisse ausschließen könnte. Und muss man, wenn man ein Verzeichnis hinzufügt auch einen Pfad im Archiv angeben?
|
AW: VPHD - Virtual private hard-disc
Zitat:
Es sollen später viel mehr Optionen zur Verfügung stehen. Ich denke dabei auch an Funktionen, die verschlüsselten Daten mit incrementellen Backups sichern zu können etc. Zitat:
Wenn der Ordner ins Root-Verzeichnis gepackt werden soll, so muss nur ein "\" als Parameter angegeben werden (steht auch in der /help) |
AW: VPHD - Virtual private hard-disc
Na ja, das Programm könnte ja so schlau sein, dass wenn man keinen Pfad angibt, es den Pfad nimmt von dem Verzeichnis, welches man hinzufügen will.
|
AW: VPHD - Virtual private hard-disc
Ich glaube du verstehst da etwas falsch.
Wenn man beispielsweise folgendes ausführt:
Code:
wird im Archiv unter dem Root-Verzeichnis das Verzeichnis MyTestDirectory eingefügt.
vphd_console /edit test.vphd /add "C:\MyTestDirectory" "\"
Der Name des Archives wird verwendet. Was gefragt ist, ist nicht der Name, unter dem das Verzeichnis hinzugefügt werden soll, sondern der des Parent-Verzeichnisses im Archiv!
Code:
Dieser Befehl dagegen würde das gleiche Verzeichnis als ein Unterverzeichnis von dem neuen (bzw. evt. schon existierenden) Ordner namens "MyRootSubDir" hinzufügen.
vphd_console /edit test.vphd /add "C:\MyTestDirectory" "MyRootSubDir\"
|
AW: VPHD - Virtual private hard-disc
Ach so. OK, dann ist das in Ordnung.
|
AW: VPHD - Virtual private hard-disc
Momentan arbeite ich an einer Statistikfunktion für das Archiv, welche unter anderem entscheiden soll, ob eine Defragmentierung nötig ist oder nicht.
Hat vllt. jemand eine Idee, wann man eine Defragmentierung durchführen sollte? Zur Verfügung stehen folgende Daten:
Delphi-Quellcode:
MFG
TVphdStats = record
FragmentedFiles : Integer; FragmentedChunks : Integer; FragmentedFilesSize : Int64; TotalFiles : Integer; TotalChunks : Integer; TotalFilesSize : Int64; FreeSpace : Int64; HeaderSize : Integer; GapCount : Integer; AvgGapSize : Int64; LargestGap : Int64; SmallestGap : Int64; end; Björn |
AW: VPHD - Virtual private hard-disc
Ich habe eine neue Version mit folgenden Verbesserungen hochgeladen:
Wenn man nun ein geöffnetes Archiv schließt, welches größere Lücken enthält oder stark fragmentiert ist, fragt das Programm, ob es das Archiv defragmentieren und optimieren soll, anstatt wie bisher jedes mal. Vorerst verwende ich dabei folgende Kontrolle:
Delphi-Quellcode:
--> Defragmentiere wenn (Freier-Speicher im Archiv > 5%) oder (Anteil an fragmentierten Dateien > 5%)
function TVPHD.RecommendDefrag: Boolean;
var stats : TVphdStats; begin GetStatistic(stats); with stats do Result := ((FreeSpace / TotalSize > 0.05) and (GapCount > 5)) or (FragmentedFiles / TotalFiles > 0.05); end; Denkt ihr, dass ist so gerechtfertigt oder würdet ihr andere Bedingungen bevorzugen? |
AW: VPHD - Virtual private hard-disc
Kann man die Defragmentierung auch manuell auslösen?
|
AW: VPHD - Virtual private hard-disc
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
absolut ein tolles teil! Danke :-D Anmerkungen / Verbesserungsvorschläge 1. Wenn ein falsches Passwort eingegeben wurde, würde ich es vorziehen das sich nicht ein leeres Container Fenster öffnet, sonder nach der Meldung "Falsches Passwort" die möglichkeit besteht dieses erneut einzugeben oder man die Datei erneut öffnen muss um es erneut zu versuchen. 2. Es wäre meiner bescheidenen meinung nach angenemer wenn sich das fenster in der mitte des Bildschirms öffnet. 3. Ich erhalte die Fehlermelddung im Anhang, wenn ich ein neues Archiv anlege (auch mit Admin Rechten). Dieses wird dann aber offenbar fehlerfrei angelegt und kann verwendet werden. 4. Die Defragmentierung / Optimirung wurde bei mir nicht immer (beim löschen von ca. 90% der Daten) beim schließen des Programms vorgeschlagen. Manuell geht es aber einwandfrei. Aber das ist wohl noch in arbeit :wink: (System: Win 7 Pro 64) Nochmal Danke :-D |
AW: VPHD - Virtual private hard-disc
Zitat:
Passwort abfragen, bis es richtig ist oder Cancel gedrückt wurde? Und nachdem Cancel gedrückt wurde, das Programm komplett schließen? Zitat:
a) Hast du die neuste Version verwendet? b) Was GENAU hast du gemacht? Zitat:
Ein Teil der Optimierung geschieht auch schon während Dateien gelöscht / hinzugefügt werden. Es kommt drauf an, wo die Dateien liegen, die gelöscht wurden. Wenn alle davon am Ende des Dateisystems lagen, entstehen überhaupt keine Lücken und damit auch keine Notwendigkeit einer Optimierung. Am besten lässt sich das im Fragmentierungs-Graphen sehen. |
AW: VPHD - Virtual private hard-disc
Was imho (insbesondere für Backups) ganz interessant wäre (falls dir mal langweilig wird):
Die Verschlüsselung würde ich nicht als Alternative zu TrueCrypt und Co. "bewerben", bei Kryptografie kann man so viele Fehler machen ... Außerdem wäre es interessant zu wissen, wie sich dein Dateiformat verhält, wenn das Programm während eines Schreibvorgangs abstürzt (muss ja nicht deine Schuld sein). Wird dann die Datei korrumpiert? Cool wäre natürlich, wenn es einen Crash-Save-Modus geben würde, in dem höchsten die zuletzt geschrieben Datei unbrauchbar wird (Anwendungsfall: Backup, das sollte besser nicht korrupiert werden.). EDIT: Zitat:
EDIT2:
Code:
Was soll ich da antworten? Wenn ich [Ja] klicke gibt es eine Division durch Null.
---------------------------
Öffnen? --------------------------- Diese Datei ist ein Archiv. Möchten Sie dieses öffnen, oder dem aktuellen Archiv anfügen? --------------------------- Ja Nein --------------------------- Bei der ganzen "Meckerei" nicht zu vergessen zu erwähnen: Schön das wieder einmal so ein größeres, durchdachtes Projekt gepostet wird :thumb: |
AW: VPHD - Virtual private hard-disc
Zitat:
Jedoch habe ich schon vor, das noch als Feature zu implementieren (Kompression mit ZLib). Das Problem ist jedoch, dass vor dem Verarbeiten der Daten noch unbekannt ist, wie viel davon nach der Komprimierung noch übrig bleibt. Wobei... das ist kein Problem, sondern nur ein Hindernis :wink: Zitat:
Wäre möglich, aber ich denke dass das nicht wirklich nötig ist. Außerdem würden Leute, die ein solches Feature brauchen, sowieso auf andere Lösungen zurückgreifen. (In dem Fall würde man am ehesten ein verschlüsseltes Laufwerk nutzen). Zitat:
Man müsste dann schon beim öffnen des Archives.... Moment mal das IST möglich ^^ Gerade kam mir eine Idee. Man kann ein Archiv mittels eines Streams öffnen. D.h. falls der Bedarf besteht, ist nur eine von TStream abgeleitete Klasse nötig, welche mehrere Dateien in einem zusammenhängenden Stream kombiniert(sowas lässt sich ja recht einfach schreiben). Ich werde mich mal darum kümmern, falls ich Lust drauf hab :) Zitat:
Ich würde ohne zu zögern meine Kontodaten mit Pin und Co. darin verpacken und weitergeben. Das Format ist so sicher, wie das Verschlüsselungsverfahren es zulässt. Und RC4 welches ich verwende ist da ja wohl ausreichend, um bestimmt 99,9999% der Welt davon abzuhalten, den Inhalt zu entschlüsseln. Zitat:
Es ist absolut konsistent und es können höchstens die Dateien beschädigt werden, welche gerade in Verarbeitung sind (zur Zeit eines Absturzes). Da die Dateien, welche hinzugefügt werden, sowieso in eben diesem Moment in einem anderem Medium (im Normalfall die Festplatte) vorhanden sind, ist das Format damit absolut sicher. Einzige schwachstelle ist bisher die Defragmentierung, da dort erst fertig defragmentiert und optimiert wird und anschließend erst das Dateisystem geschrieben wird. Nur allein während dieses Vorgangs besteht die Gefahr eines Datenverlustes. Dieses Problem ließe sich nur dadurch lösen, indem nach jedem einzelnen Schritt in der Defragmentierung das Dateisystem neu geschrieben wird (was a) Die Dauer der Defragmentierung erheblich steigern würde und b) eine Qual für die Festplatte wäre) |
AW: VPHD - Virtual private hard-disc
Zitat:
(Passwort abfragen, bis es richtig ist oder Cancel gedrückt wurde und wenn Cancel gedruckt wird schließt sich das Programm) Zitat:
Mir ist noch aufgefallen, dass wenn ich kein Passwort für ein neues Archiv vergebe, dann Dateien in dieses Archiv lege und anschließend das Programm beende ich eine Division durch 0 Meldung bekomme. Bei Archiven mit PW kommt diese Fehlermeldung nicht. MfG |
AW: VPHD - Virtual private hard-disc
So ich habe eine neue Version hochgeladen.
Folgende Verbesserungen wurden durchgeführt:
@doctor-x: Funktioniert es mit der neusten Version? MFG |
AW: VPHD - Virtual private hard-disc
Hallo,
Habe mich lange nicht gemeldet, aber jetzt endlich mal wieder ein kleines Update bereit. Habe nur ein paar kleine Bugs (Neues-Archiv-erstellen Bug und ein paar andere) behoben und die neue Version hochgeladen. MFG |
AW: VPHD - Virtual private hard-disc
Also das Programm hört sich für mich super an, da ich sowieso ein Tool gesuchthabe, womit ich auch von anderen Rechner auf die Daten zugreifen kann, und alles nur in einer Datei steckt.
So nun bekomm ich leider beim Erstellen schon einen Fehler :( Nachdem ich beim Passwort-Dialog (egal ob etwas eingegeben oder nicht), auch egal was ich klicke, geschieht nichts. Wenn ich danach die Anwendung beende, bekomm ich diesen Fehler. EDIT: Nach dem Dialog kommt die Meldung, dass ein andere Prozzes darauf zugreift. Er erstellt mir die Datei mit 512 Bytes. Komisch, nach dem Neustart des Programmes, kann ich normal auf die Datei zugreifen? Hä? Caption der Meldung: Unexpected Memory Leak Text der Meldung : An unexpected memory leak has occurred. The unexpected small black leaks are : 1 - 12 bytes : TFileStream x1 Ich hoffe du kannst etwas damit anfangen. Würde mich auf das Tool freuen und gerne testen. Habe Win7 32bit. Egal ob mit Adminrechten ausgeführt oder ohne der gleiche Fehler. Liegt auch nicht am Standort. EDIT2: P.S. : Ich werde mir mal die Tage das Programm weiter anschauen und poste es dann, falls noch mehr Fehler sind. Wenns nur bei dem bleibt ist das okay xD |
AW: VPHD - Virtual private hard-disc
Oh tatsächlich!
Da habe ich beim Ändern einen Fehler gemacht. Gefixte Version in ca. 5-10 min da! |
AW: VPHD - Virtual private hard-disc
Neue Version wurde hochgeladen!
Danke für den Hinweis! |
AW: VPHD - Virtual private hard-disc
- Neues Archiv
- 2 Dateien hinzugefügt (kleines JPeg + 422 MB-Video) - Programm reagiert lange nicht und lastet einen CPU-Kern voll aus ( keine Prozessanzeige? ) - Dateien gelöscht = "Ungültige Gleitkommaoperation." beim Anzeigen der Statistik [add] Die Konsole ohne Parameter einfach so gestartet, macht sie so durchschnittlich geschätzte 10-30 Sekunden nix und raucht dann einfach ab. Zitat:
[edit] Krass ... es wird ja doch verwendet :shock: |
AW: VPHD - Virtual private hard-disc
Leider konnte ich den Fehler nicht reproduzieren, aber ich hatte an der Version, mit der ich es versucht habe, ein paar kleine Änderungen gemacht.
Könntest du es mit der neusten Version noch einmal versuchen bitte? Außerdem ist das mit der Prozessauslastung etwas merkwürdig, da eigentlich fast alle Operationen fast ausschließlich I/O lastig sind, und die CPU fast icht benötigt wird, es sei denn, es kommt verschlüsselung ins Spiel. MFG |
AW: VPHD - Virtual private hard-disc
Bei dem Fehler mit der Gleitkommawert muss ich himitsu zustimmen.
Er entsteht, wenn keine Dateien im Container sind. Wenn eine drin ist kommt er nicht mehr. Bei der Konsole meldet Windows7 nach dem Start, dass die Anwendung nicht mehr funktioniert. Dass mit der CPU-Auslastung liegt an dem Problem, dass ich dir per PN schon geschrieben habe. Gruß NickelM |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz