Kostenlose Obfuscatoren für .NET

Obfuscatoren für .NET gibt es einige, die teuersten kosten bis zu 4000 $, die günstigeren so um die 300 – 700 $. Es gibt aber auch die Preisklasse Null. In der Open Source Liga gibt es dabei zwei (soweit ich das entdeckt habe) Anwendungen:

Das Problem an diesen beiden Programmen ist das sie mit meinem .NET 4 Assemblies nicht funktionieren. Also schaute ich mich nach einer Alternative um und bin auf EazFuscator.net gestoßen. Diese Software ist Freeware, einfach zu bedienen, exzellent dokumentiert und sie funktioniert einfach. Zu finden ist die Software dabei unter http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx. Sie lässt sich auch in Visual Studio Projekt integrieren.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Obfuscator
http://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net

.NET Anwendung kann nicht debuggt werden

Ich stelle vor ein paar Tagen ein .NET Projekt von .NET 2 auf .NET 4 um. An dem Projekt hingen einige Bibliotheken welche weiterhin auf .NET 2 basierten (und dies auch weiterhin tun sollen). Nach der Umstellung ergab sich nun das Problem, das ich die Anwendung nicht mehr mit dem Debugger starten konnte.

Das Problem hängt dabei damit zusammen das das Visual Studio für .NET 1 bis .NET 3.5 sowie für .NET 4 jeweils eine eigene Debugengine benutzt. Um das Problem zu umgehen schaltete ich in den Projekteigenschaften unter Debug den Eintrag Enable the Visual Studio hosting process aus. Danach konnte ich auch mit dem gemischten Projekt wieder debuggen.

Weitere Informationen gibt es unter:
http://blogs.msdn.com/b/debugger/archive/2010/04/30/can-t-hit-breakpoints-in-a-plug-in-or-can-t-debug-net-2-0-3-0-3-5-from-a-mixed-mode-exe-project-with-visual-studio-2010.aspx

Große Zahlen unter .NET

Wenn man ein Zahl unter .NET speichern (bzw. mit ihr arbeiten) möchte kann man einen Int benutzen. Sollte die Zahl größer werden könnte man einen Int64 nehmen. Doch was wenn die Zahlen noch größer werden? Für diesen Fall gibt es seid .NET 4 eine Klasse namens BigInteger welche sich im Namespace System.Numerics befindet:

BigInteger bigNumber=BigInteger.Parse("998877665544332211");
bigNumber+=1001;
bigNumber*=2;
MessageBox.Show(bigNumber.ToString());

Damit sind dann auch sehr große Zahlen kein Problem :)

Shortcut keys für das Menü setzen

Für ein Windows Forms Menü wollte ich einen Shortcut key (für die MFC kundigen auch Accelerator genannt) setzen. Das funktioniert im Normalfall auch immer ohne Probleme. Nur bei den Tasten Keys.NumPad0Keys.NumPad9 funktioniert das nicht.

Auch eine manuelle Zuweisung:

topToolStripMenuItem.ShortcutKeys = Keys.NumPad5;

schlägt mit einer Exception fehl. Der Trick hier ist es die nummerischen Tasten des Numpad immer mit Strg oder Alt zu benutzen. So ist es ohne Probleme möglich dem Menüpunkt den Shortcut key Alt + Numpad 5 zuzuweisen. Ich tippe mal das hängt bei diesen Tasten mit der Doppelbelegung (Num aus/an) zusammen.

KeePass in neuer Version erschienen

Der freie Passwortmanager KeePass ist vor kurzem in der neuen Version 2.16 erschienen. Im Gegensatz zu 1er Serie ist die 2er Serie komplett neugeschrieben worden und basiert auf .NET bzw. Mono. Sie läuft somit ohne Probleme auch unter Linux. Damit kann der Manager auch plattformübergreifend eingesetzt werden. Die Software steht dabei unter GPLv2 und kann unter http://keepass.info/download.html bezogen werden.