2015-05-21 2 views
1

Он показывает только защиту функции внутри класса. Для egs. Я открываю функция чтения, но он показывает только определение, какЯ попытался просмотреть библиотеки .NET BCL с отражателем .NET, но он не отображает никаких символов.

public override int Read([In,Out], byte buffer[], int offset,int count) 

Но .Net рефлектор показывает все о моем файле .dll включая логику.

Пожалуйста, помогите я хочу, чтобы скрыть свою логику, как Microsoft .dll файлов

+0

Точное имя функции может помочь ... Или, по крайней мере, атрибуты функции ... –

+0

вы должны написать свой код в C++ –

+0

Это из System.IO имен. BinaryReader Class Функция Read() – newuser

ответ

4

Вы не можете предотвратить управляемую-DLL от открытия в декомпилятор, все, что вы можете сделать, это obfuscate он. Вы можете использовать такие инструменты, как Dotfuscator, чтобы запутать ваш код.

From the official site

Dotfuscator обеспечивает все «нормальные» запутывания методологии в помимо многих уникальных. Технология обфускации не на 100% защищена. Как и в случае других обфускаторов, Dotfuscator делает жизнь более сложной для декомпиляторов и дизассемблеров; он не требует 100 процентов защиты.

Несколько вещей, он выполняет следующие:

  • Идентификатор ереименование
  • Управление потоком запутывания
  • пользователя Строка шифрования
  • Watermarking
  • тампера Уведомление и время выполнения разведки с SO-сигналом
+0

Я использовал Dotfuscator, но это не полное решение для этого. Он просто меняет название функции .. – newuser

+0

@newuser Существует только один реальный способ защитить ваш код. И это не отдать. Обфускация, зашифровка, что бы то ни было или нет, есть инструменты, позволяющие отменить/помочь увидеть ваш код в любом случае. Вам нужно будет пересмотреть свою архитектуру, если вы хотите, чтобы никто ее не видел. – Measuring

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

+0

, если я хочу, чтобы мой код выглядел так. Затем, какую концепцию мне нужно реализовать. – newuser

+0

Какова ваша цель? проверить базу кода? Загрузите источник из предоставленной мной ссылки. Если вы хотите, чтобы ваш дизассемблер работал - убедитесь, что вы загрузили символы отладки. Попробуйте использовать Telerik JustDecompile. Я думаю, что это лучший инструмент, чем Reflector. –