MIDI Bibliothek für .NET/Mono

Für ein kleines Experiment war ich auf der Suche nach einer .NET Bibliothek mit welcher sich MIDI Dateien schreiben lassen. Auf den ersten Blick findet man dabei nur Bibliotheken welche das MIDI Interface ansprechen, aber solche welche Midi Dateien schreiben können sind eher selten. Abhilfe schuf hier die Bibliothek NAudio, welche unter http://naudio.codeplex.com/ zu finden ist. Das Problem an der Bibliothek ist ihre schiere Größe und die fehlende Plattformunabhägigkeit, da für einige Stellen P-Invokes in native DLLs benötigt werden. Daneben bietet NAudio wesentlich mehr als nur MIDI-Support, so das die Bibliothek für meinen Zweck nicht zum tragen kam.

Dank der freien Lizenz (unter der Ms-Pl) stellte dies kein Problem da und so wurde libmidi.net aus der Taufe gehoben. Die Bibliothek bestand am Anfang aus dem Midi Teil von NAudio. Im Laufe der Entwicklung wurde alle Möglichkeiten für den Zugriff auf MIDI-Geräte entfernt. Die Bibliothek ist damit zu einer kleinen Bibliothek zum Lesen und Schreiben von MIDI-Dateien geworden. Dazu wurden auch einige Dinge wie die „MidiNote“-Enumeration hinzugefügt, anhand deren man die Noten als Noten anstatt als Nummern angeben kann. Im Gegensatz zum Original, welches hauptsächlich auf die Bearbeitung bereits existierender MIDIs abziehlt, soll die Bibliothek so gestaltet werden, das auch das Erzeugen neuer MIDIs leicht von der Hand geht. Zu finden ist das Projekt unter https://github.com/seeseekey/libmidi.net.

Anonym im Web mittels Firefox und Tor

Anonym im Web surfen klingt nach einer wünschenswerten Angelegenheit. Trotzdem scheuen viele den Weg der zu diesem Ziel führt. Das liegt natürlich daran das es etwas Aufwand bedeutet. Möchte man den Aufwand so gering wie möglich halten kann man sich einfach das Tor Browser Bundle herunterladen. Dabei handelt es sich um einen vorkonfektionierten Mozilla Firefox Browser, mit welchem es möglich ist, seinen Datenverkehr über Tor zu leiten.

Das Tor Browser Bundle

Das Tor Browser Bundle

Bei Tor handelt es sich um eine Software welche die Verbindungsdaten anonymisiert. Das bedeutet ein Nutzer welcher Tor benutzt kann nicht ohne weiteres identifiziert werden. Das „Tor Browser Bundle“ nutzt dazu einen Portable Firefox, einige Firefox AddOns, Vidalia und Tor selbst. Allerdings ist die Anonymität nicht absolut. Wenn man sich an einem Account anmeldet und dieser Account mit einem in Verbindung gebracht werden kann, nützt auch die beste Anonymisierung nichts.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Tor_%28Netzwerk%29

Verschlüsselte Mails mittels Thunderbird

Die letzten Tage und Wochen haben gezeigt wie wichtig es ist verschlüsselt zu kommunizieren. Mit der freien Software Thunderbird ist dies ohne größere Probleme möglich. Nach der Installation von Thunderbird muss noch GPG installiert werden. Dabei handelt es sich um ein freies Kryptografiesystem mit dem vollen Namen „GNU Privacy Guard“. Diese kann unter http://www.gnupg.org/download/ heruntergeladen werden.

Der AddOn Manager im Thunderbird

Der AddOn Manager im Thunderbird

Nach der Installation von „GNU Privacy Guard“ für das jeweilige Betriebssystem kann Thunderbird gestartet werden. Dort wird über den AddOn Manager das AddOn „EnigMail“ installiert. Anschließend muss Thunderbird neugestartet werden. Danach befindet sich im Thunderbird ein neuer Menüpunkt mit dem Namen „OpenPGP“. Dort wird der Untermenüpunkt „OpenPGP-Assistent“ ausgewählt.

Der OpenPGP Assistent

Der OpenPGP Assistent

Die vorgeschlagenen Einstellungen können so akzeptiert werden, bis man zu dem Punkt kommt, an welchem man vom Assistenten darauf hingewiesen wird, das der GnuPG Pfad eingestellt werden muss. Unter Windows 7 befindet ist der Pfad der folgende:

C:\Program Files (x86)\GNU\GnuPG\gpg2.exe

Nachdem der Pfad angegeben wurde, muss ein Schlüsselpaar erzeugt werden. Dazu wird auch ein Passwort vergeben. Anschließend startet die Erzeugung des Schlüsselpaars. Nach der Erzeugung kann ein sogenanntes Widerrufszertifikat erzeugt werden. Dieses dient dazu einen gestohlenen oder verlorenen privaten Schlüssel für ungültig zu erklären. Danach ist der Assistent mit seiner Aufgabe fertig.

Nun werden beim Senden die Mails signiert und beim Empfangen die Mails auf ihren korrekten Empfänger überprüft. Damit sind die Mails allerdings noch nicht verschlüsselt. Beim Verfassen einer Mail findet man oben einen „OpenPGP“ Button, mit welchem auch die Verschlüsselung aktiviert werden kann. Um dem Empfänger eine verschlüsselte Mail zukommen zu lassen benötigt man dessen öffentlichen Schlüssel.

Damit andere verschlüsselte Mails senden können sollte der öffentliche Schlüssel auf einen Schlüsselserver hochgeladen werden. Dazu wählt man im OpenPGP Menü den Punkt „Schlüssel verwalten“ aus. Nun klickt man mit der rechten Maustaste auf seine Mailadresse und wählt dort den Punkt „Auf Schlüssel-Server hochladen…“ aus. Nach der Bestätigung des entsprechenden Schlüsselservers befindet sich der eigene öffentliche Schlüssel auf diesem Server.

Wenn man nun eine Mail an jemanden sendet, dessen Schlüssel lokal nicht verfügbar ist, so fordert OpenPGP den Nutzer auf einen Schlüssel auszuwählen. In diesem Fenster kann klickt man auf den Button „Fehlende Schlüssel herunterladen“. Damit wird versucht den Schlüssel von einem Schlüsselserver zu bekommen. Natürlich ist es auch möglich manuell Schlüssel hinzuzufügen. Ist man im Besitz des öffenlichen Empfängerschlüssels kann die Mail verschlüsselt versendet werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Mozilla_Thunderbird
http://de.wikipedia.org/wiki/GNU_Privacy_Guard

Ironbane

3D im Browser war bis vor einigen Jahren noch eine undenkbare Sache. Das höchste der Gefühle war zu dieser Zeit eine Lösung welche auf Flash oder Java basierte. Mittlerweile ist das mit APIs wie WebGL besser geworden. Was mit WebGL alles möglich ist zeigt unter anderem das 3D-MMO Ironbane.

Das Tutorial von Ironbane

Das Tutorial von Ironbane

Dort bewegt man sich mit einer zweidimensionalen Figur in eine dreidimensionalen Welt. Wie MMO schon dezent andeutet, spielt man mit anderen Spielern zusammen. Das ganze ist dabei freie Software und auf GitHub zu finden. Technisch basiert es dabei auf Node.js. Zu finden ist das Spiel unter http://www.ironbane.com/.

de4dot

Ein Programm welches in C# geschrieben wird, wird beim kompilieren in ein Intermediate-Assembly umgewandelt. Das bedeutet das der Code in einer Zwischensprache darauf wartet auf seinem Zielsystem in nativen Code umgewandelt zu werden. Der Vor- und auch Nachteil dieser Vorgehensweise ist, das sich der Quellcode sehr einfach aus dem IL-Code zurückwandeln lässt. Im Idealfall verliert man bloß einige Variablennamen.

Um das zu verhindern gibt es sogenannte Obfuscatoren, welche versuchen den entsprechenden Quelltext zu verschleiern, so das er nicht mehr einfach zurückgewandelt werden kann. Aber wie so oft im Leben gibt es auch hier einen Wettlauf mit der Zeit. So gibt es einige Tools welche den obfuskierten Quelltext wieder deobfuskieren. Eines dieser Projekte ist „de4dot“ welches unter https://bitbucket.org/0xd4d/de4dot/ zu finden ist. Das unter der GPL stehende Projekte, erkennt dabei den verwendeten Obfuscator und versucht seine Änderungen soweit wie möglich rückgängig zu machen. Dabei werden eine stattliche Anzahl von Obfuscatoren, wie der Dotfuscator, Goliath.NET und Skater.NET unterstützt.