Definición
¿Qué es invalid metadata?
Todo assembly de .NET lleva metadata: información estructurada que describe sus tipos, métodos y miembros. El runtime la usa para ejecutar la aplicación, y los decompiladores la usan para reconstruir código fuente legible.
Invalid metadata es una técnica de ofuscación que añade metadata que el runtime tolera pero que los decompiladores no pueden procesar. Ataca las suposiciones que hacen los decompiladores sobre cómo está estructurada la metadata.
La aplicación se comporta exactamente como se espera, porque el runtime trata la metadata correctamente. Los decompiladores, que esperan metadata bien formada, fallan: se caen, saltan tipos o producen una salida que no se puede reconstruir.
