Как вы извлекаете исходный код классов из DLL-файла? - PullRequest
20 голосов
/ 16 января 2011

Есть ли программное обеспечение для этого?Я не нашел полезной информации в интернете, поэтому спрашиваю здесь.

Ответы [ 10 ]

23 голосов
/ 16 января 2011

Вы не можете получить точный код, но вы можете получить его декомпилированную версию.

Самым популярным (и лучшим) инструментом является Reflector , но есть и другие .Net-декомпиляторы (например, Dis # ). Вы также можете декомпилировать IL, используя ILDASM , который поставляется в комплекте с .Net Framework SDK Tools.

15 голосов
/ 06 декабря 2012

Только управляемые языки, такие как c# и Java, могут быть полностью декомпилированы. Вы можете просмотреть полный исходный код. Для Win32 dll вы не можете получить исходный код.

Для CSharp dll Используйте DotPeek , потому что он бесплатный и работает так же, как ReDgate .Net Compiler

Веселитесь.

5 голосов
/ 16 января 2011

Использовать .NET отражатель .

3 голосов
/ 30 августа 2016

Использование dotPeek

enter image description here

Выберите .dll для декомпиляции

enter image description here

Вот и все

2 голосов
/ 16 января 2011

Вы можете использовать Reflector , а также использовать Надстройку FileGenerator для извлечения исходного кода в проект.

1 голос
/ 20 мая 2019

Используйте рефрактор. Скачать с здесь .

  1. Откройте программу после установки.
  2. Нажмите Ctrl + O и выберите файл DLL.
  3. Dll будет отображаться на левой панели.
  4. Щелкните правой кнопкой мыши на Dll и выберите Экспорт исходного кода.
  5. Выберите папку, в которую вы хотите экспортировать ваши файлы
  6. Подождите, это может занять 2-3 минуты

enter image description here

0 голосов
/ 05 апреля 2019
 var destinationfilename = "";
        if (System.IO.File.Exists("nameoffile.dll"))
        {
          destinationfilename = (@helperRoot + System.IO.Path.GetFileName(medRuleBook.Schemapath)).ToLower();
          if (System.IO.File.Exists(destinationfilename)) System.IO.File.Delete(destinationfilename);
          System.IO.File.Copy(@'nameoffile.dll", @destinationfilename);
        }
        // use dll-> XSD
        var returnVal =
          await DoProcess(
            @helperRoot + "xsd.exe", "\"" + @destinationfilename + "\"");
        destinationfilename = destinationfilename.Replace(".dll", ".xsd");
        if (System.IO.File.Exists(@destinationfilename))
        {
          // now use XSD
          returnVal =
            await DoProcess(
              @helperRoot + "xsd.exe", "/c /namespace:RuleBook /language:CS " + "\"" + @destinationfilename + "\"");
          if (System.IO.File.Exists(@destinationfilename.Replace(".xsd", ".cs")))
          {
            var getXSD = System.IO.File.ReadAllText(@destinationfilename.Replace(".xsd", ".cs"));

          }
        }
0 голосов
/ 24 января 2019

Вы можете использовать dotPeek Единственное, что я должен сказать, это то, что при его использовании щелкните правой кнопкой мыши класс, чтобы выбрать Decompiled Source вместо двойного щелчка, иначе dotpeek будет отображать только содержимое локального файла cs, а не декомпилированное содержимое. Экземпляр опции

0 голосов
/ 11 декабря 2018

Я использовал Refractor , чтобы восстановить мой скрипт / код из файла dll.

0 голосов
/ 23 января 2017

Если вы хотите знать только некоторые основы внутри сборки dll, например, Классы, метод и т. Д., Чтобы загрузить их dyanamically

Вы можете использовать инструмент IL Disassembler, предоставленный Microsoft.

Обычно находится по адресу: "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin"

...