private byte[] EncapsulateReferences(byte[] code) {
if (eacEnabled)
return code;
var asm = AssemblyDefinition.ReadAssembly(new MemoryStream(code));
asm.Name.Name = EncapsulateName(asm.Name.Name);
//randomise the module version id so that the debugger can detect it as a different module (even if it has the same content)
asm.MainModule.Mvid = Guid.NewGuid();
foreach (var mod in asm.Modules)
foreach (var asmRef in mod.AssemblyReferences)
asmRef.Name = EncapsulateName(asmRef.Name);
var ret = new MemoryStream();
asm.Write(ret);
return ret.ToArray();
}