Dotpeek как редактировать dll
Перейти к содержимому

Dotpeek как редактировать dll

Dotpeek — Изменяют Файлы DLL — Использование, измененное (повторно собранный) в проекте

Я уже сделал процесс — Импортирующий dll файл в Ассамблее Dotpeek и Exporting к Проекту, Теперь я могу изменить dll файл в ПРОТИВ 2015, но как повторно собрать проект, и использование повторно собрало dll файл снова в существующем проекте.. Я попробовал строительным проектом в против 2015, но это показывает много ошибок времени компиляции, Пожалуйста, помогите

Скорее, к сожалению, нет никакого детранслятора, который предоставит код, который собирает для собрания, содержащего больше чем несколько классов.

Таким образом, вы могли бы хотеть попробовать JustDecompile + Reflexil, чтобы сделать ваш редактировать. Преимущество этого подхода состоит в том, что только часть, которую вы редактируете, будет изменена, и остальная часть собрания останется тем же самым как оригинальным.

Скорее, к сожалению, нет никакого детранслятора, который предоставит код, который собирает для собрания, содержащего больше чем несколько классов.

Таким образом, вы могли бы хотеть попробовать JustDecompile + Reflexil, чтобы сделать ваш редактировать. Преимущество этого подхода состоит в том, что только часть, которую вы редактируете, будет изменена, и остальная часть собрания останется тем же самым как оригинальным.

dotPeek — бесплатный декомпилятор от JetBrains

dotPeek - бесплатный декомпилятор от JetBrains

Основные достоинства dotPeek – это качество декомпиляции, а также простота загрузки и управления сборками .NET. Кроме того, dotPeek предлагает многочисленные функции поиска, навигации и работы с кодом, заимствованные у ReSharper.

  • Декомпилировать сборки .Net версий 1–4 в C#
  • Делать навигацию по коду (такую же как и в ReSharper)
  • Делать подсветку синтаксиса, фолдинг, и в целом предоставлять experience, аналогичный Visual Studio
  • Управлять программой с помощью клавиатуры, с шорткатами, аналогичными ReSharper’у

При этом dotPeek  не умеет работать с ресурсными файлами в привычном виде. Т.е. файлы открываются в виде исходного кода и, например, извлечь картинку или иконку из сборки достаточно сложно.

Загрузка и анализ сборок по скорости примерно также как в iLSpy, т.е. намного дольше чем в DnSpy , но при этом качество полученного кода получается практически на уровне первоначального проекта.

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

dotPeek - в процессе редактирования сборки

Если вам нужен доступ к первоисточнику кода на C#, то можно рекомендовать использовать dotPeek .

JustDecompile / dotPeek покажите мне исходный код сборки. Как я могу изменить его?

Я могу видеть исходный код с помощью декомпиляторов, но как мне изменить исходный код и повторно скомпилировать .DLL после этого?

задан 23 июн ’12, 21:06

2 ответы

Во-первых, вы не видите исходный код; вы видите реконструированный исходный код.

Если вы заинтересованы в программном изменении сборки, взгляните на эти проекты: Метаданные общей инфраструктуры компилятора (CCI) и ТПП АСТ проектов на CodePlex. Именно для этого они и нужны.

«[CCI] позволяет приложениям эффективно анализировать или изменять сборки, модули и файлы отладки (PDB) .NET». — с сайта проекта

IIRC, метаданные CCI работают на довольно низком уровне абстракции. Если вы хотите изменить или вставить код с ним, вам придется иметь дело с промежуточным языком (IL). CCI AST обеспечивает абстракции более высокого уровня (абстрактные синтаксические деревья).

(Кстати, я полагаю, что CCI не позволит вам вмешиваться в сборки со строгими именами (подписанные), поскольку это противоречит их назначению.)

Mono.Cecil. Он был разработан для Mono, но работает и на .NET:

«Проще говоря, с помощью Cecil вы можете загружать существующие управляемые сборки, просматривать все содержащиеся в них типы, изменять их на лету и сохранять измененную сборку обратно на диск». — с сайта проекта

Кстати, здесь есть вопрос о переполнении стека, который запрашивает сравнение двух.

Другие связанные библиотеки/фреймворки:

Рослин. Этот проект фокусируется на представлении исходного кода в виде абстрактных деревьев синтаксиса/анализа и позволяет вам, например, выполнять анализ исходного кода и манипулировать им. Также предполагается, что он сможет скомпилировать исходный код для вас. Тем не менее, Рослин не специализируется на сборочных манипуляциях. (Подводя итог, вы можете думать о Roslyn как о смеси System.CodeDom и System.Linq.Expressions, но гораздо более мощной, чем любая из них.)

Кевин Монтроуз написал IL-генерирующую библиотеку под названием Sigil который является «отказоустойчивым вспомогательным средством проверки для DynamicMethod и ILGenerator».

Вы можете использовать ildasm (дизассемблер IL) и ilasm (ассемблер IL), чтобы сделать что-то, называемое «циклическим обходом» (читайте об этом, например, в блоге Майка Столла):

Круговой обмен — это когда вы декомпилируете приложение (возможно, через ILDasm), потенциально редактируете IL, а затем перекомпилируете его (возможно, через ILAsm). Это основа для перезаписи сборки [. ].

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *