我试图用.NET反射器查看.NET BCL库,但它没有显示任何符号

时间:2015-05-21 04:34:24

标签: c# disassembly .net-reflector

它只显示了类中函数的定义。对于egs。我打开读取功能,但它只显示像

这样的定义
public override int Read([In,Out], byte buffer[], int offset,int count)

但.Net反射器显示了我的.dll文件的所有内容,包括逻辑。

请帮助我隐藏我的逻辑,如microsoft .dll文件

2 个答案:

答案 0 :(得分:4)

您无法阻止在反编译器中打开托管DLL,您可以做的就是obfuscate它。 您可以使用Dotfuscator之类的工具来混淆代码。

From the official site

  

Dotfuscator提供所有“正常”混淆方法   除了许多独特的。没有混淆技术是百分之百   安全。与其他混淆器一样,Dotfuscator让生活更加美好   反编译器和反汇编者很难;它不要求100   保护百分比。

它完成的一些事情是:

  • 标识符重命名
  • 控制流混淆
  • 用户字符串加密
  • 水印
  • 使用SO-signal的篡改通知和运行时智能

答案 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

相关问题