The Microsoft Bytecode Engineering Library (MBEL)
is a tool for parsing, creating, editing, and
rewriting .NET executables and libraries. It is
implemented completely in the Java programming
language, which facilitates portability across
different systems. The objects defined closely
resemble the metadata structures defined in the
ECMA-335 specification. Among the many uses of
MBEL are code analysis, optimization, obfuscation,
and watermarking.