Högis Dungeon

Und jetzt erst recht!

Entwicklung von TrueMount 3 nun offiziell gestartet

Die Zukunft meines Auto-Mounters für mit TrueCrypt verschlüsselte Medien steht nun fest: es wird eine komplett neue, überarbeitete und besser durchdachte Hauptversion 3 geben. Dazu ein kurzer Rückblick in die Entwicklungsgeschichte des Programms:

Angefangen hat alles mit TrueCrypt selbst natürlich. Dann sind mir mit der Zeit die verschlüsselten Partitionen über den Kopf gewachsen und es wurde mir bei all der gewonnen Sicherheit gegen Diebstal und unerwünschte Manipulation (welche meine Hauptbeweggründe sind, nicht etwa die Angst vor den Behörden oder andere paranoide Gedanken) zusehens lästig, immer verschiedene Passwörter eingeben zu müssen. Als Windows-Nutzer stehen Reboots sowieso an der Tagesordnung, das macht es noch umständlicher. Der erste Lösungsansatz war ein simples Batch-Skript mit hartkodierten Pfaden zu Textdatein, in denen sich die Passwörter befanden und TC beim Launch übergeben wurden. Das hat allerdings auch nur solange gut funktioniert, wie sich in diesem System nichts Gröberes geändert hat. Irgendwann habe ich dann auch (vermutlich mit der Installation des Windows 7 RCs) auf PowerShell-Skripte umgestellt, das war aber mehr eine syntaktische als qualitative Verbesserung.

Schließlich wurde das Web befragt und ich landete relativ schnell bei einem Tool genannt Truemounter. Da bemerkte ich auch das erste mal, wie gut mir die Idee gefällt, einen USB-Stick als “Schlüssel” für den Mount-Prozess zu benutzen. Ich setzte noch eins drauf und habe gleich die Passwörter als Textdatei auf den selben Stick gepackt und ließ sie daraus auslesen – ein sehr bequemer Vorgang, die verschlüsselten Partitionen einzubinden. Man könnte nun natürlich aufschreien und bemerken, dass es etwas leichtsinnig und unsicher ist. Dem habe ich anzumerken, dass es 100mal einfacher ist mit einem Keylogger das Passwort mitzuschneiden als die spezielle Datei zu finden und zu stehlen. Wird der Stick gestohlen/verloren kann ich außerdem sofort reagieren und die Passwörter ändern – einen Keylogger finde ich nicht so schnell, da ich schon einige geschrieben gesehen habe weiß ich wie schwierig das Aufspüren dieser netten Dinger sein kann. Doch zurück zum eigentlichen Thema: Truemounter hat sich im Laufe der Zeit leider aus verschiedenen Gründen disqualifiziert. Zumal es nicht mehr weiter entwickelt wird fehlen auch ein paar Features die ich gerne hätte. Ich wollte das Projekt eigentlich sofort forken, leider (oder zum Glück) habe ich mit Delphi nichts am Hut und will daran auch nichts ändern, Hochsprachen FTW :p

Was blieben mir nun noch für Optionen; Alternativen waren/sind praktisch nicht vorhanden und die Möglichkeit es weiter zu führen war auch hinüber. Zum Glück musste ich mich zu diesem Zeitpunkt nach einer neuen Bytecode-orientierten Programmiersprache umsehen (erwähnte ich bereits wie sehr ich Java verachte?) und landete glücklicherweise bei C# aus den dunklen Hallen von Microsoft. Es entstand das Projekt TrueMount (kreativ, nicht wahr?) als persönliches Experiment, welches nur für den Hausgebrauch und nicht als Community-Projekt gedacht war. Entsprechend meinem damaligen Wissensstand war der Code noch recht wackelig zusammengeschustert, verbuggt und umständlich und auch nicht wirklich bereit für eine Veröffentlichung. Die Konfiguration basierte noch auf einem handgeschriebenen XML-File, Fehlerbehandlung war unter aller Sau und auch der Feature-Umfang war extrem minimalistisch – doch soweit ausreichend und stabil, dass mein Interesse an dem Projekt nicht verpufft ist. Nach einigen Tests und durchgespielten Szenarien kam ich zu dem Schluss: es muss eine neue, bessere Version her – TrueMount 2!

Mit TrueMount 2 fing leider der ganze Ärger an, den man bekommt, wenn man ein Community-Projekt aufzieht. Als alleiniger Hauptentwickler, Server-Administrator, Netzwerktechniker, PC-Doktor und Autor von diversem geistigen Müll steigt mir mein “Hobby” machmal (na gut: oft) über den Kopf und es folgen nach Monaten des Leidens große Umstrukturierungen, weil ich mich selbst darüber ärgere, dass ich jetzt gegen die Wand gefahren bin aber das ist ein eigenes Thema. Wie dem auch sei, es fing schon mal damit an, dass ich eine objektbasierte Datenbank als Speichermedium für die Konfiguration gewählt hatte (ja ich hatte keinen Tau von Serialisierung, woher auch) was in totalem Overkill resultierte und wieder mehr Probleme aufwarf, die es zu lösen galt. Ich habe ungeheuer viel Zeit versch… verschleudert, Fehler aus zu bügeln, die nur entstanden sind, weil ich .NET nur zu einem Bruchteil beherrscht habe – wenn überhaupt. Somit war TM 2 eher ein Lehrobjekt für mich um C#, die WMI und später vor allem die WinAPI, API-Hooking und andere interessante Themen zu erlernen. Darunter hat auch der komplette Entwicklungszweig gelitten, ich musste teilweise wirklich grobe Designfehler ausbügeln bzw. irgendwie umgehen, damit meine überraschend dazugewonnene Fangemeinde nicht jedesmal alles über Bord werfen musste. Oh, und das Wiki hat auch gleichzeitig geholfen und behindert, es war furchtbar mühsam, die Seite so zu gestalten wie sie online ging. Dann folgten immer mehr Feature-Requests, ich musste mich in neue Gebiete einlesen, baute ungewollt mehr Bugs ein und das Resultat war das heute bekannte Chaos, welches mir nun immer unheimlicher wird und ich nun nicht mehr anfassen will :$

Doch nun folgt endlich der lange ersehnte (und auch irgendwo ein paar Zeilen weiter oben angekündigte) qualitative Sprung (danke, Thomas…) vom Chaos in die Ordnung. Nach nun fast 9 Monaten in denen ich das Internet durchforstet, tausende Zeilen fremden Quellcode gelesen und auch immer wieder kleinere Projekte angefangen, umgebaut oder fertiggestellt habe bin ich nun (nach eigener Meinung) bereit den nächsten Schritt zu wagen: wirklich alles an Gelerntem in das neue Projekt TrueMount 3 zu stecken und es von Anfang an richtig zu machen und den Gedanken von komfortabler Sicherheit für die Zukunft zu erhalten. Mit diesen Worten entlasse ich euch nun in den Schlaf, es wird noch etwas dauern aber ihr werdet von TM 3 hören, bleibt mir treu ^_^

Nefarius out.


Fatal error: Uncaught exception 'TeamSpeak3_Transport_Exception' with message 'connection to server '127.0.0.1:10011' lost' in /var/www/wordpress/htdocs/wp-content/plugins/teamspeak-3-viewer-plugin-for-wordpress-widget/libraries/TeamSpeak3/Transport/TCP.php:108 Stack trace: #0 /var/www/wordpress/htdocs/wp-content/plugins/teamspeak-3-viewer-plugin-for-wordpress-widget/libraries/TeamSpeak3/Adapter/ServerQuery.php(77): TeamSpeak3_Transport_TCP->readLine() #1 /var/www/wordpress/htdocs/wp-content/plugins/teamspeak-3-viewer-plugin-for-wordpress-widget/libraries/TeamSpeak3/Transport/Abstract.php(102): TeamSpeak3_Adapter_ServerQuery->__destruct() #2 [internal function]: TeamSpeak3_Transport_Abstract->__destruct() #3 {main} thrown in /var/www/wordpress/htdocs/wp-content/plugins/teamspeak-3-viewer-plugin-for-wordpress-widget/libraries/TeamSpeak3/Transport/TCP.php on line 108