One can disassemble the code of an assembly (in say Visual C# language)
complied by using Visual Studio .NET even if it is a Release build. This can
be done by using the disassembler "ILDASM.EXE" provided with the VS .NET . It
shows all details of the code giving vivid details of all methods,
properties, fields, classes, structs, etc. What then is the security of a
complied assembly which is in the MSIL version? Tomorrow, anybody can copy
your idea and may be even replace some portions of the compiled file, such as
the code security portions. Can anyone explain as to whether there is some
way out to ensure that a particular assembly could not be disassembled using
the aforesaid disassembler or some other similar utility. (here I may point
out that an assembly converted to native code by using ngen.exe is only a
partial solution in as much as the resultant file cannot be stored in the
application directory but is stored in the protected catche). Even if one
were to use a signed shared assembly, will it not be possible for someone
else to at least copy the idea if not to patch up the secured code? Any
solutions or comments?