Элементы управления экспортом .NET Reflector
У меня есть сборка, сделанная мной, но я потерял исходник. В тот раз я запутал его, но де-запутал. Но теперь это полная чушь. XD Reflector вылетает, когда я пытаюсь просмотреть некоторые части кода. Я попытался экспортировать всю сборку в проект, но получаю ошибку / исключения.
Мне пришла в голову новая идея. Я хотел бы получить все формы, так что только элементы управления и т.д. Поэтому мне нужна точная (почти точная) копия формы из моей сборки. Обычно это находится в файле FormName.Designer.cs, но я не могу до него добраться. Не могу найти .
Потому что моя идея заключалась в следующем: воссоздать форму, а затем загрузить старую сборку и использовать ее в качестве ссылки и связать все вместе.
РЕДАКТИРОВАТЬ: Извините, мой вопрос в конце: как мне просто экспортировать элементы управления, графический интерфейс, как мне декомпилировать только это?
Здесь где-то есть вопрос? — antlersoft
Сможете ли вы отобразить форму, если свяжете эту dll в проект? В этом случае может быть быстрее (поскольку все, что вам нужно, это макет и элементы управления) просто отобразить его в одном окне, а затем повторно свернуть пользовательский интерфейс в своей любимой среде IDE. — pstrjds
Я могу это сделать. Я просто использовал exe как ссылку, а затем открыл диалоговое окно. Но я этого не хочу. Графический интерфейс пользователя необходимо серьезно переработать. Код хороший, но графический интерфейс уродливый и плохой. — Kirk
2 ответы
Когда вы запутываете код, вы в значительной степени решаете, что не хотите, чтобы кто-то мог получить от него что-нибудь. Я предполагаю, что все, что вы использовали для обфускации, также запутало классы конструктора и т. Д. Ваше время будет лучше потратить на запуск программы и попытки воссоздать формы вручную, чем на попытки извлечь данные из запутанного исполняемого файла.
На будущее можно многое сказать об управлении версиями. Даже просто настроить репозиторий Mercurial в папке Dropbox достаточно, чтобы избавить вас от многих душевных страданий.
ответ дан 02 авг.
Думаю, я должен был написать свой комментарий в качестве ответа 🙂 — pstrjds
Я написал это около 2 лет назад, тогда я не использовал систему управления версиями. Уже несколько месяцев, как я это делаю, и идея, что есть небольшой шанс потерять код, прекрасна 🙂 Я обнаружил, что все дизайнерские вещи находятся в классе формы. Тем не менее, это запуталось из-за исключений в декомпиляторе. Я собираюсь попробовать ссылку для скачивания, предоставленную hibacity. — Кирк
@StriplingWarrior, я никого не обижаю. Но я это изменил. — Кирк
@ Кирк: Я так понимаю, ты не хотел обидеть. Оскорбительно само слово. Спасибо, что изменили. — СтриптизВоин
@StriplingWarrior, без проблем. Я не хотел начинать войну 🙂 — Кирк
Я предполагаю, что некоторые части выходят из строя из-за того, что ваш обфускатор поместил недопустимые коды операций в недоступные ветви CIL (то есть байтовый код). Результатом этого является то, что JITer проигнорирует их (потому что они находятся в недоступном коде), но инструменты декомпиляции взорвутся, поскольку они попытаются декомпилировать все, включая недопустимые коды операций. По сути, это мина-ловушка для декомпиляторов.
Возможно, стоит попытаться найти инструмент, который может удалить недопустимые коды операций.
Вот один, который я нашел после небольшого поиска, но никогда не использовал его — удачи!
Обновить
Из ваших комментариев видно, что мои подозрения верны, у вас плохие коды операций в вашей сборке.
Я не могу дать совет по поводу конкретных инструментов, но есть ряд инструментов на выбор для удаления плохих кодов операций. Поиск в Google нашел альтернативный инструмент:
Русские Блоги
Рефлекторная декомпиляция winform experience (перевод)
Введение в соответствующую ситуацию:
Следующий текст взят из
Reflactor не будет представлен, это бесплатный инструмент декомпиляции под .net. Reflactor необходим в некоторых случаях.При обнаружении ошибки вы можете посмотреть на ее внутренний механизм реализации с помощью Reflactor, чтобы найти настоящую ошибку. Или вы можете просмотреть частную генерацию через отражатель, а затем использовать отражение для его вызова.
Все вышеперечисленное является законными целями, и иногда их можно использовать для декомпиляции программного обеспечения других людей. Меня не волнует запутанное программное обеспечение. Я хочу здесь поговорить о декомпиляции программного обеспечения без путаницы и шифрования. Экспорт в контекстном меню рефлектора можно декомпилировать, как показано на рисунке ниже.
Декомпилированные файлы по умолчанию сохраняются в папке My Documents \ Reflector \ Disassembler, но с этой декомпиляцией возникают некоторые проблемы, и файлы ресурсов winform не могут быть декомпилированы. Это требует от нас поиска другого пути.
После моих неустанных усилий я нашел плагин File dessassemble, который может реализовать такую функцию.
После декомпиляции его можно отредактировать, открыв с помощью visual sutio, но иногда возникают проблемы. Резюмируйте ниже.
1. Нет проблем с компиляцией, и при запуске появляется сообщение «элемент установки начального значения типа вызывает исключение».
Это происходит главным образом потому, что в классе используются две статические переменные, а инициализация одной из статических переменных зависит от статической переменной, а зависимая статическая переменная помещается перед зависимой переменной. Например, следующий код будет иметь такая проблема.
Проблему очень легко решить, и ее можно решить, отбросив один.
2. Невозможно найти файлы ресурсов, например изображения и т. Д.
Эта ситуация обычно связана с именованием файла ресурсов. Следите за тем, чтобы имя файла ресурсов соответствовало классу. Повторная компиляция решит проблему. Обратите внимание, что его необходимо регенерировать, иначе он может работать некорректно.
3. Произошла ошибка при открытии формы.
Решил эту проблему поиском.В огороде есть статья, перевернул.
Перепечатанные статьи
<!—<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />—> Используйте Reflector и FileDisassembler для декомпиляции программ .netWindows
URL:http: // www.cnblogs.com/verygis/archive/2008/12/02/1346072.html
При декомпиляции WindowsApplication с помощью FileDisassembler возникла проблема. Файл ресурсов resx и файл cs не совпадают, и компиляция проекта завершилась неудачно. После того, как файл resx был изменен и помещен в папку cs, хотя он не запускался
Проблема, но не непосредственно в дизайне формы " Визуально " Изменение элемента управления хлопотно и не интуитивно, поэтому вам следует изменить исходный код, чтобы он соответствовал макету исходного файла VS2008.
Вот краткое изложение измененных шагов:
1 .Поскольку FileDisassembler сгенерирует каталог для каждого пространства имен, сохранит исходный код этого пространства, а для ресурса resx файл будет напрямую добавлен в каталог проекта, поэтому вы должны поместить его обратно в исходный каталог. Например
Для TryAssemb.Form1.resx в папке проекта сначала измените его на Form1.resx, а затем перейдите в каталог TryAssemb.
2 . Затем откройте форму " Посмотреть дизайнера " , Обнаружил, что появится следующая ошибка:
Метод модификации состоит в том, чтобы объявить, что для всех элементов управления в пространстве имен System.Windows.Forms. Требуется полное пространство имен, например base .AutoScaleMode = AutoScaleMode.Font; будет изменен на base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; и TextBoxtextBox1; также измените на privateSystem.Windows.Forms.TextBoxtextBox1; чтобы VS2008 мог распознать, что этот элемент управления должен быть нарисован в форме.
PS Вначале я думал, что Form1 нужно дизассемблировать на Form1.cs и Form1.Designer.cs, как VS. Каждый раз, когда я так усердно работал над его дизассемблированием, я, наконец, понимал, что он вообще не нужен. ^ _ ^ .
Я считаю, что большинство программистов .Net имеют опыт использования Reflactor. Независимо от цели, когда вы используете Reflactor для декомпиляции управляемой программы, вы все равно хотите изменить ее код, поэтому список в этой статье может быть полезным справочником.
После декомпиляции кода с помощью подключаемого модуля Reflactor FileGenerator вы можете получить исходный код, включая файлы проекта, но в коде есть различные проблемы, и, как правило, их нельзя скомпилировать за один раз. Эти проблемы будут подробно рассмотрены ниже:
Чтобы прочитать код, может потребоваться некоторое время, чтобы свериться с метаданными, чтобы изменить значение int обратно на перечислимое значение, особенно если вы хотите использовать конструктор форм, VS2008 может не понять значение int.
Проблемы с недвижимостью
Например, после декомпиляции свойства с именем Names его можно восстановить методами set_Names (names) и get_Names (). Замена одного за другим может быть медленным, а для замены целиком можно использовать регулярные выражения.
Для метода set_Xxx (xxx) вы можете заменить
set_ <[a - z] * >\(
за
\ 1 = (
Для метода get_Xxx () вы можете заменить
get_ <[a - z] * >\(\)
за
\ 1
Затем восстановите отдельные методы, которые были изменены по ошибке.
Проблемы с функцией делегирования и обратного вызова
Обычно будет восстановлен до метода add_Xxx (имя метода), его необходимо изменить на += MethodsName
Net reflector как изменять элементы формы
A .NET application written in C# for viewing and extracting assembly resources.

Simplifying deployment (less files to manage). Simplifying resource consumption (there is no chance that the file will be missing at runtime). You can easily embed an image into an assembly using Visual Studio .NET, by following these steps:
Add an image file to a project. In Solution Explorer, right click on the image file and select Properties from the context menu. In the Properties window, select Embedded Resource for the Build Action property. Compile the project into an assembly. As you might imagine, the .NET framework provides support for programmatic retrieval of embedded resources. We will be examining how that is implemented, later in the article.
Net reflector как изменять элементы формы
Перед вами первая статья из цикла «Реверсинг .Net приложений», в которой мы не будем работать с MSIL, не будем снимать пакеры и протекторы, и не встретимся с обфусцированным кодом. Всем этим мы займемся в будущих статьях, а пока мы пощупаем несколько основных инструментов и по традиции решим несложный крэкми.
Платформа .Net в текущем состоянии крайне уязвима:
1. Программы, написанные для .Net, компилируются не в native, а в байт-код платформы .Net, названный MSIL (MicroSoft Intermediate Language).
IL код компилируется непосредственно перед запуском. Такая технология получила название Just-in-time compilation (JIT, компиляция «на лету»).
2. Все программы содержат метаданные.
«Метаданные (metadata) — это данные, описывающие другие данные. В нашем контексте — это набор программных элементов ЕХЕ-файла, таких как типы и реализации методов.»
Именно благодаря метаданным, а точнее их особым свойствам в среде .Net мы можем с легкостью получить исходники программ.
2.1 Метаданные в .Net обязательны и универсальны.
«Каждая программа в среде .Net, помимо кода на языке MSIL обязательно содержит метаданные, описывающие как её в целом (манифест), так и каждый тип, содержащийся в ней.»
2.2 Метаданные в .Net общедоступны.
«Доступ к метаданным могут получить любые программные компоненты и любые инструменты программирования.»
2.3 Метаданные в .Net исчерпывающи.
«Метаданные содержат подробнейшую информацию о каждом типе: его имя, типы и имена его полей, описание свойств и методов со всеми их параметрами и возвращаемыми значениями. Здесь же хранится информация о доступности (видимости) всех членов класса и об их атрибутах. Метаданные хранят не только информацию о интерфейсе экспортируемых классов. Такие детали реализации, как структура защищённых полей, описания защищённых методов и других компонентов, также могут быть извлечены из метаданных.»
- .Net reflector
- Visual C# Express(или другая удобная для вас IDE)
- Минимальное знание любого ЯП с C-подобным синтаксисом, либо понимание «как оно там происходит»(для анализа и редактирования кода)
- DisSharp Decompiler (http://netdecompiler.com) — платный, в наличии деобфускатор, разработчики заявляют, что работает в несколько раз быстрее аналогов. Лично мне не понравился, хотя и справился с несколькими подопытными программами.
- Salamander .Net decompiler (http://www.remotesoft.com/salamander/) — может когда-то и был конкурентом рефлектору, но сейчас мы его отправим в архив, Change Log обрывается в начале 2008 года. Платный.
- Spices.Net Decompiler (http://www.9rays.net/Downloads.aspx) — единственный из нашего списка, способный потягаться с рефлектором. В наличии неплохой деобфускатор, оптимизатор кода, интеграция с VS и прочие плюшки. Минус — платный.
- Если вы по каким-то причинам не можете воспользоваться рефлектором, в вашем распоряжении несколько подобных программ, но будьте готовы к тому, что результат декомпиляции в каждой из них может отличаться.
Скачиваем архив с crackme. Внутри, помимо нужного нам файла, лежит readme.txt с «брифингом». Запускаем .Net reflector, далее File -> Open -> ReWrit’s Crackme #9 noob challenge.exe, после этого в поле программы появится открытый нами файл.

Далее ПКМ -> Disassemble, и мы почти у цели.

Как и заявлено разработчиком, reflector может с одинаковым успехом декомпилировать .net приложения на разные ЯП. Чтобы убедиться в этом, выделите любой метод, и в выпадающем списке смените C#, к примеру, на Delphi. Также reflector может быть использован для эффективной конвертации кода между C# и VB.Net.
Вернемся к нашему crackme, для достижения цели остался всего один шаг. ПКМ на ReWrits cm9 Noob Challenge -> Export…

Проект экспортирован без ошибок, но так бывает не всегда, в некоторых случаях рефлектор может потребовать недостающие файлы или библиотеки. В таком случае придется указать к ним путь вручную. Теперь запускаем IDE, в моем случае это Visual C# Express 2010, открываем экспортированный из рефлектора проект, студия предлагает преобразовать проект под текущую версию среды, соглашаемся. С ходу нажимаем F5 и вуаля, программа работает. В «боевых» условиях так бывает не всегда, то рефлектор неправильно экспортирует, то проект криво преобразуется в студии, то и вовсе в системе не хватает какого-то компонента. Но все это не имеет значения, если мы получили львиную долю исходного кода.
Итак, на этом основная часть статьи завершатся. Мы узнали, почему же так уязвима платформа .Net, познакомились с одним из множества способов получить исходный код программ, написанных для .Net, а также получили навыки работы с очень мощной утилитой .Net Reflector. Дальше идет необязательная часть, в которой будет решение трех уровней crackme, а оставшиеся два вам предстоит решить самостоятельно.
Теперь мы можем закрыть запущенный из студии крекми и вернуться к коду программы. Двойной щелчок по Form1.cs и неожиданно видим ошибку:

но нас это не пугает, нажимаем «Перейти к коду». Заостряем свое внимание на обработчиках нажатия кнопок, в них происходит все самое интересное. Обусловимся, что button’ы будем называть кнопками, textbox’ы — ТБ, а messagebox’ы так и оставим в покое. Запускаем оригинальный crackme, в нем мы будем проверять полученные решения, пока его свернем и вернемся к коду программы. Обработчик нажатия первой кнопки выглядит следующим образом:
private void button1_Click(object sender, EventArgs e)
0)
if (this.textBox1.Text == str2)
else
>
Тут введенная нами строка после преобразования и некоторых операций сравнивается с изначально заданной строкой, которая также терпит преобразования. В случае их равенства стартует таймер нага и снимается атрибут readonly со следующего ТБ, во всех остальных — выскакивает messagebox с уведомлением о неправильном пароле. Заменяем MessageBox.Show(«Wrong Password!», «Error»); на MessageBox.Show(str2, «Error»); нажимаем F5, вводим что-нибудь в первый ТБ, нажимаем «Ок» и получаем messagebox с правильным паролем. Вводим его в ТБ измененной программы, нажимаем ок, после чего станет доступен второй ТБ. Но пока не спешим вводить пароль в свернутый оригинал crackme. В измененной программе тем временем стартует таймер, вызывающий наг.
Наг — назойливое окно, выскакивающее через определенный промежуток времени (либо при запуске), призывающее зарегистрировать программу. Встречается в основном в триальных программах и «шароварах».
У нас уже выскочило несколько нагов и пора бы их убрать. Не закрывая программу, смотрим на обработчик второй кнопки и видим прямое сравнение введенного текста с переменной, содержащей «0x7fffffff». Число в переменной указано в шестнадцатеричной форме, нам же нужна десятеричная запись этого числа. Можно воспользоваться стандартным калькулятором. Сначала перевести в режим «Программист»(в Win7 это так называется), нажимаем «Hex» вводим «0x7fffffff», тыкаем «Dec». 2147483647 и является паролем, который отключает наг и дает доступ к третьему ТБ. Третье задание предлагаю вам решить самостоятельно.
Обратная инженерия с помощью Reflector. Часть 1
Целью данной работы было объяснить и научить вас сложным техникам обратной инженерии (в основном, с использованием Red Gate Reflector). В данной статье я шаг за шагом развею миф о невозможности дизассемблирования и взлома .NET файлов для получения конфиденциальной информации.
Краткое содержание
Целью данной работы было объяснить и научить вас сложным техникам обратной инженерии (в основном, с использованием Red Gate Reflector). В данной статье я шаг за шагом развею миф о невозможности дизассемблирования и взлома .NET файлов для получения конфиденциальной информации. Я покажу, как осуществлять поиск точек входа, лицензионных ключей, паролей и серийных ключей. В предыдущих статьях было рассмотрено много вариантов обратной инженерии с использованием таких средств, как, например, CFF и ILDASM. Reflector упрощает дизассемблирование или декомпилирование .NET файлов. Он является признанным средством обратной инженерии в кругу профессионалов по безопасности.
Предпосылки
Исследователь безопасности должен иметь представление о языках программирования, поддерживаемых .NET. В наши дни – помимо IL и шестнадцатеричного кода – мы постоянно сталкиваемся с исходниками на C# и vb.net. Работа с исходным кодом гораздо проще, чем с байт-кодом и кодами операций. На компьютере исследователя безопасности должны быть установлены следующие продукты:
- Red Gate Reflector
- .NET Framework 2.x version
- VC 2010 IDE
- ILDASM.exe (не обязательно)
Reflector относится к средствам дизассемблирования. Он разработан компанией Red Gate. Хотя раньше эта программа распространялась бесплатно, теперь разработчик коммерциализировал ее. Reflector используется для декомпиляции или дизассемблирования .NET файлов (к которым могут относиться как исполняемый файлы, так и DLL).
Функционал данной программы ограничен, и она может применяться только к файлам, созданным под CLR, она не сможет декомпилировать прочие неизвестные ей сборки. Но ограничение становится преимуществом, если мы можем легко предсказать фреймворк DLL или EXE. Если бинарный файл открыт или декомпилирован в Reflector IDE, тогда он является сборкой .NET.
Для профессионалов в сфере обратной инженерии Reflector имеет ряд преимуществ. Он предоставляет возможность по IL дизассемблированию. Открывать ILDASM.EXE отдельно нет необходимости. Он может быть интегрирован с Visual Studio 2010 или 2012 в качестве дополнения, которое может конвертировать декомпилированный код к другим языкам, поддерживаемым .NET, например VB.NET или Delphi. Мы можем запустить командную строку Visual Studio прямо из Reflector’а для тестирования или выполнения файла прямо из программы после декомпиляции сборки. И наконец, мы можем просмотреть декомпилированный код любого NET framework от версии 4.5 до 1.0.
После того, как вы скачаете и установите IDE, вы увидите нечто похожее:

Помимо описания преимуществ и возможностей, я бы хотел упомянуть об общем заблуждении, что Reflector не может редактировать исходный код или коды операций.NET. В отличие от других дизассемблеров (CFF, IDA pro или Ollydbg), он не может сохранять свой проект в качестве сборки, он может только декомпилировать. Что касается редактирования .NET-файлов, появляется необходимость в установке открытого дополнения в среду разработки Reflector’а. Можно найти много разных полезных дополнений, позволяющих, например, редактировать шестнадцатеричный код или коды операций. Изменения можно будет сохранить в отдельный файл.
В статье мы не будем полагаться на уже готовое ПО или прочие сторонние файлы для демонстрации дизассемблированного исходного кода. Вместо этого, мы разработали свое приложение.
Я назвал его «Champu» в честь домашнего питомца моего сына. Программу можно запустить, когда инициируется тест, и она будет работать в триальном режиме 15 дней. Это первая особенность, касающаяся безопасности. Второй же особенностью является то, что для доступа в приложение необходимо ввести имя пользователя, пароль и лицензионный ключ. Это позволяет защититься от пиратов. Начальное окно триальной версии выглядит следующим образом.

Пользователь может запустить ознакомительная версию, нажав кнопку «Continue». Далее вы должны будете задать имя пользователя и пароль.

Если пользователь захочет приобрести полную версию продукта, он должен перейти на сайт производителя и получить там лицензионный ключ. Этот ключ должен вводиться в следующем окне:

Вы спросите, есть ли другой способ получить полную версию, без оплаты? Да, обратная инженерия – лучший способ для взлома проприетарной программы.
Дизассемблирование.
Как можно заметить, в диалоговом окне кнопка «Continue» неактивна и показано сообщение об истечении пробного периода. У нас нет исходного кода программы, чтобы мы могли модифицировать его для получения полной версии. Остается только купить ключ…

Что ж, пришло время действовать! Все что у нас есть – это champu.exe, а большего нам и не надо. Запустим Reflector IDE и откроем в нем Champu.exe. Когда файл будет открыт, вы увидите следующий график. Мы знаем, что файл был создан с помощью .NET фреймворка, так как мы смогли его открыть.
Исполняемый файл автоматически преобразуется в соответствующие файлы исходного кода. В нем есть начальная информация о сборке, типе приложения, версии, криптографическом ключе, копирайте, GUID’е и используемом фреймворке.

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

Достаточно просто можно получить большое количество информации о программе. Далее кликнем правой кнопкой мыши по файлу champu.exe, и среда разработки предложит вам различные инструменты для работы, как, например, анализатор, ILDASM, командная строка и запуск приложения.

Можно заметить, что champu.exe содержит пространства имен, которое в свою очередь содержит классы C_Trial, Login и Register и статические классы Program и gData. Можно предположить, что данные классы реализуют весь функционал и ответственны за логику работы программы.
Сборка может содержать множество классов, и они будут содержать два разных типа реализованной логики. Таким образом, очень сложно определить точку входа для трассировки, но нам необходимо это сделать. Нужно кликнуть правой кнопкой мыши на champu.exe, а затем перейти по ссылке «Go To Entry Point». Справа отобразится функция сборки Main(), и будет загружен класс C_Trail.

Теперь мы определили точку входа – класс C_Trail, в котором реализована логика триального срока действия. Выбираем нужный класс в левой панели при раскрытии пространства имен Champu. Он позволит нам определить логику контроля лицензии, используемую в программе. Этот класс содержит два метода: RegisteredUser() и TrailCheck().

Перейдем в тело метода TrailCheck(). Здесь находится часть, отвечающая за логику триального периода. Можно понять, что программа будет работать 15 дней с 5.10.2013. Кроме того, в исходном коде мы можем найти сообщение об истечении пробного периода пользования программой.

Вот и код этого метода. Нельзя с уверенностью сказать о срабатывании основного условия. Выберем TrailCheck() в левой панели и воспользуемся анализатором. Здесь я покажу кое-какую полезную информацию, такую как условие срабатывания (On_Load()) и зависимости.

По умолчанию Reflector показывает код программы на C#. Некоторые программисты не очень хорошо знают этот язык, специально для них существует возможность изменить язык на другой, поддерживаемый .NET, например, VB.NET.

Если вы хотите изучить инструкции кодов операций MSIL, вы можете использовать соответствующий IL код. Использовать ILDASM нет необходимости.

Reflector также предоставляет возможность экспорта/импорта исходного кода в/из XML файла.

Иногда нам необходимо видеть состояние глобального кэша сборок – хранилища всех .NET сборок. Утилита GAC в Reflector предоставляет нам такую возможность, как показано ниже.

Данная статья показывает процесс дизассемблирования кода с помощью Reflector. Как уже говорилось ранее, эта программа не является средством изменения кода, она лишь проводит декомпиляцию для последующего анализа логики работы программы. Кроме того, в данной работе рассматриваются несколько возможностей Reflector’а, например экспорт/импорт сборки, GAC, анализатор, а также конвертация кода (очень полезная в ходе дизассемблирования особенность). Также в целях поиска интересующей нас информации был проанализирован класс C_Trail. В следующей статье мы проведем анализ остальных классов для последующего взлома приложения.
Русские Блоги
Как декомпилировать .NET? Как получить что-то даром? Как взломать чужой софт? Как просматривать исходный код других людей, эти вопросы часто больше всего беспокоят новичков.
Конечно, как человек, долгое время работавший в этой индустрии, я не испытываю отвращения или отвращения к такому поведению. Есть поговорка, которая хороша, но в этом нет ничего плохого, точно так же, как сам меч не имеет праведности и зла, это зависит от того, как вы его используете.
Что ж, тогда мы познакомимся с тем, как декомпилировать.
На самом деле это очень просто и не загадочно. Это инструмент Reflector. Вы можете перейти на сайт Reflector (http://www.aisto.com/roeder/dotnet/) После загрузки последней версии разархивируйте ее и используйте Reflector.exe, чтобы дважды щелкнуть по ней, чтобы запустить ее.Интерфейс выглядит следующим образом.
Щелкните файл-> открыть, чтобы выбрать DLL, которую необходимо декомпилировать. После открытия пространство имен элемента управления появится в списке слева, например, dataaccesscommon выше. Щелкните класс, который нужно декомпилировать, как показано ниже.
Как видите, в основном нет разницы между декомпилированным кодом и исходным кодом. Сам Reflector не имеет функции импорта кода в файл, и он должен использовать связанные подключаемые модули. Ниже описывается использование подключаемого модуля и использовать.(1) Reflector.FileDisassembler и Reflector.FileGenerator имеют одну и ту же цель. Экспорт декомпилированного кода в связанные файлы. Я расскажу только об использовании Reflector.FileDisassemble. Использование Reflector.FileGenerator похоже на Reflector. .FileDisassemble
Адрес загрузки:
http://www.denisbauer.com/Download.aspx?File=Reflector.FileDisassembler.zip
(a) Запустите Reflector, нажмите view — add-ins . Выберите Reflector.FileDisassembler.dll (загрузите Reflector. FileDisassembler будет иметь этот файл после распаковки). После успешного добавления в меню инструментов появится опция дизассемблера файла.
(b) Выберите класс для экспорта, а затем выберите дизассемблер файла инструментов. Появится следующее диалоговое окно.
(c) В текстовом поле введите каталог экспортируемого файла, а затем нажмите «Создать», чтобы сгенерировать файл.
(2) Подключаемый модуль Reflector.VisualStudio, вставьте инструмент Reflector в vs.net. После загрузки Reflector.VisualStudio соедините распакованный файл и Reflector.exe вместе и нажмите Reflector.VisualStudio.exe для импорта. В это время Когда мы запускаем vs.net, мы можем запустить Reflector через «External Program-Reflector» в строке меню.
Адрес загрузки:
http://www.testdriven.net/downloads/ReflectorVsAddin.zip
(3) Reflector.SQL2005Browser добавляется так же, как (1) Этот плагин используется для просмотра коллекции хранилищ в базе данных SQL Server 2005 (Yukon).
Адрес загрузки:
http://www.denisbauer.com/Download.aspx?File=Reflector.SQL2005Browser.zip
(4) Плагин Reflector.CodeMetrics, метод добавления такой же, как (1) Этот плагин используется для анализа сборок .net и отображения параметров производительности компонента.
Адрес загрузки:
http://projectdistributor.net/GetFile.aspx?type=b
&id=55
(5) Метод добавления плагина Reflector.Graph такой же, как (1) Плагин используется для рисования структурной схемы коллекции.
Адрес загрузки:
http://projectdistributor.net/GetFile.aspx?type=b
&id=56
Я представляю только применение пяти плагинов. Если что-то не так, вы можете указать на это. Однако Reflector не имеет ничего общего с обфускацией шифрования. Недостаточно использовать только этот инструмент, и требуется более прочная компьютерная основа. Знания.
Can I use .NET Reflector to modify & recompile the code quickly?
Is it possible to use .NET Reflector (or an other tool) to modify and recompile the code quickly (that is, without dumping the source and then use Visual Studio to recompile it)?
![]()
4 Answers 4
You can probably use the Reflexil add-in for Reflector to do that:
Reflexil is an assembly editor and runs as a plug-in for Reflector. Using Mono.Cecil, Reflexil is able to manipulate IL code and save the modified assemblies to disk. Reflexil also supports ‘on the fly’ C# and VB.NET code injection.
It’s possible with .Net reflector along with reflexil. First download reflexiil and then open .net relector and load the reflexil into it using View->addins->select the reflexil file(all dlls) and then load. After that open the required dll file and go to tools->select reflectil, open the code and identify the required item, then edit..give to the assemblyy and select save as to save it to new file
.NET Reflector cannot do this, but other tools can decompile .NET assemblies, for example FileDisassembler (an add-in for .NET Reflector).