Freies Disassemblier-Framework

Vor einiger Zeit spielte ich mit dem Gedanken einen Disassembler für Mac OS X zu programmieren. Allerdings wollte ich nicht alles neu erfinden und schaute mich deshalb nach einem passenden Framework um. Gefunden habe ich dabei Capstone.

capstone-engine.org

capstone-engine.org

Dabei handelt es sich um ein freies, unter einer BSD-Lizenz lizenziertes, Framework zur Disassemblierung. Über verschiedene Bindings kann das Framework aus den unterschiedlichsten Programmiersprachen angesprochen werden. So gibt es unter anderem Bindings für C#, Java, Ruby und Python. Das Framework selbst ist dabei in C geschrieben. Capstone unterstützt dabei eine Reihe von Prozessorarchitekturen wie X86, Sparc, MIPS und ARM. Bezogen werden kann Capstone unter capstone-engine.org.

AddIn für den Reflector

Möchte man sich den IL-Code eines .NET Assemblies anschauen, so nutzt man dafür Tools wie NET.Reflector oder ILSpy. Für den Reflector gibt es dabei ein nettes AddIn welches auf den Namen “Reflector.FileDisassembler” hört. Mit diesem ist es möglich ganze Assemblies in Visual Studio Projekt zu übersetzen. Zu finden ist das AddIn dabei unter http://www.denisbauer.com/NETTools/FileDisassembler.aspx.