El ensamblador .NET orientado a objetos =)
Este ensamblador esta limpio que prácticamente puedo leerlo en C#, la parte mala es que siendo tan limpio al lenguaje sin requerir de herramientas adicionales se podría reescribir el código C# con solo leer el ensamblador y siendo mas ambiciosos se podría escribir una herramienta que desensamble un EXE y obtenga el código C# con punto y coma de cada parte del código
Código de un MSGBOX
.assembly msgbox
{
}
.namespace msgbox
{
.class public auto ansi beforefieldinit mensaje
extends [mscorlib]System.Object
{
.method public hidebysig specialname rtspecialname
instance default void .ctor () cil managed
{
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::.ctor()
IL_0006: ldstr "Hola programadores de Solo Codigo"
IL_000b: ldstr "Ventana de Mensajes"
IL_0010: ldc.i4.0
IL_0011: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult class
[System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string, string, valuetype
[System.Windows.Forms]System.Windows.Forms.MessageBoxButtons)
IL_0016: pop
IL_0017: ret
}
.method private static hidebysig
default void Main (string[] args) cil managed
{
.entrypoint
.maxstack 8
IL_0000: newobj instance void class msgbox.mensaje::.ctor()
IL_0005: pop
IL_0006: ret
}
}
}
Compilando con MONO en Windows