eXeLab
eXeL@B DVD 2017 !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: октябрь 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Редактирование .NET сборки.
Посл.ответ Сообщение
cppasm

Ранг: 199.1 (ветеран)
Статус: Участник

Создано: 8 декабря 2016 13:34 New!
· Личное сообщение · #1

Всем привет.
Копаю одну прогу на .NET
Убрал обфускацию, декомпильнул. Всё нормально.
Нашёл код который мне нужен.
Вопрос - чем теперь можно поправить метод и пересобрать сборку?
Желательно код править в декомпилированом виде (C#), а не в MSIL.
Какие вообще есть инструменты?
Раньше с патчем .NET не сталкивался...
Пробовал dnSpy - она кучу ошибок кидает при компиляции модифицированного метода на неизвестные типы и т.д.
Хотя в коде там изменений минимум - просто выбросил часть кода из метода.
Kaimi

Ранг: 60.6 (постоянный)
Статус: Участник

Создано: 8 декабря 2016 14:09 New!
· Личное сообщение · #2

Reflector / ilSpy + Reflexil. Это правка в MSIL. Еще можно экспортировать как проект для студии, поправить ошибки и пересобрать.
cppasm

Ранг: 199.1 (ветеран)
Статус: Участник

Создано: 8 декабря 2016 14:26 New!
· Личное сообщение · #3

Пересобрать из исходников это не вариант - там бинарь 17МБ и экспортировать в проект чтобы оно без ошибок пересобралось врядли получится.
За Reflexil спасибо.
oldman

Ранг: 30.2 (посетитель)
Статус: Участник

Создано: 8 декабря 2016 15:19 New!
· Личное сообщение · #4

cppasm пишет:
Пересобрать из исходников это не вариант - там бинарь 17МБ


Я снял NetReactor 4.8 c помощью de4dot-а, декомпильнул dnSpy-ем и пересобрал в VS 2010 почти
10 мегабайатный бинарник на dotnet4, причем вносил значительные изменения, дописывал много своего кода, и модицифицировал оригинальный код.

Как получилось: когда экспортировал проект из dnSpy , выбирал опцию "не распаковывать ресурсы". DnSpy выдал идеальный для рекомпиляции код, но некорректную структуру папок для проекта, ресурсы куда-то нетуда затолкал.

Попробовал декомпильнуть NetReflectror'ом 8 - он выдал плохой код, который не особо компилился, но зато создал правильную структуру проекта.

Вообщем я это дело объеденил, в проект от Netreflectora скопировал поверх исходники , полученные из dnSpy.
На чето он там еще немного ругался, сейчас уже непомню, руками подправил .csproj и проект в результате
компилировался и работал. Ну и дальше я его правил как мне надо, компилил в VS2010 и отлаживал в dnSpy.
cppasm

Ранг: 199.1 (ветеран)
Статус: Участник

Создано: 8 декабря 2016 14:13 · Поправил: cppasm New!
· Личное сообщение · #5

Блин, как в Reflexil изменения-то сохранить?
Фиг с ним пропатчил метод в MSIL, а как сохранить-то теперь?
Reflexil подключён плагином к ILSpy.
Куда жать? Там от Reflexil одно колесо на тулбаре.
// Add
Как сохранить вроди разобрался, но теперь со Strong Name всякие косяки вылазят.
Может есть туторы какие-нибудь нормальные чтобы с .NET разобраться?
// Add
Не могу разобраться в чём затык.
Дизассеблирую всё при помощи ildasm
Ничего не меняю, пересобираю приложение при помощи ilasm и оно не работает - падает при старте.
Кто-нибудь может подсказать в чём проблема?
sendersu

Ранг: 465.6 (мудрец)
Статус: Модератор

Создано: 8 декабря 2016 21:00 New!
· Личное сообщение · #6

в dnSpy редактируем код или IL или сразу (!) С# и не паримся всякими плагинами древними...

| Сообщение посчитали полезным: SReg

cppasm

Ранг: 199.1 (ветеран)
Статус: Участник

Создано: 9 декабря 2016 13:09 · Поправил: cppasm New!
· Личное сообщение · #7

Всем спасибо, всё получилось.
dnSpy я пробовал, в итоге с его помощью всё и сделал.
Затык оказался в том, что я exe себе скопировал в отдельную папку и там препарировал.
При этом при компиляции модифицированного метода оно не находило типы из других сборок из каталока программы и не пересобиралось.
В итоге всё сделал при помощи de4dot (убрал обфускацию, бинарь похудел на 3МБ и даже шустрее работать стал) и dnSpy (отредактировал нужный код).
 eXeL@B —› Основной форум —› Редактирование .NET сборки.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS