它只显示了类中函数的定义。对于egs。我打开读取功能,但它只显示像
这样的定义public override int Read([In,Out], byte buffer[], int offset,int count)
但.Net反射器显示了我的.dll文件的所有内容,包括逻辑。
请帮助我隐藏我的逻辑,如microsoft .dll文件
答案 0 :(得分:4)
您无法阻止在反编译器中打开托管DLL,您可以做的就是obfuscate它。 您可以使用Dotfuscator之类的工具来混淆代码。
Dotfuscator提供所有“正常”混淆方法 除了许多独特的。没有混淆技术是百分之百 安全。与其他混淆器一样,Dotfuscator让生活更加美好 反编译器和反汇编者很难;它不要求100 保护百分比。
它完成的一些事情是:
答案 1 :(得分:0)
这就是BCL的源代码对于该方法的看法:
public virtual int Read(byte[] buffer, int index, int count) {
if (buffer==null)
throw new ArgumentNullException("buffer", Environment.GetResourceString("ArgumentNull_Buffer"));
if (index < 0)
throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
if (count < 0)
throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
if (buffer.Length - index < count)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
if (m_stream==null) __Error.FileNotOpen();
return m_stream.Read(buffer, index, count);
}
我认为您需要深入挖掘源代码以找到您正在寻找的内容。
快乐狩猎!
BCL源代码:https://www.microsoft.com/en-us/download/details.aspx?id=4917