2012-04-27 1 views
6

Я обнаружил некоторые недостатки устаревших сторонних сборок, которые мы используем на нашем коде, декомпилируем их. Я хотел бы исправить их, но поскольку у меня нет исходного кода, мне нужно напрямую изменить байт-код. Изменения действительно просты (изменение AND для OR и NOPing в некоторых строках).Есть ли какой-либо редактор IL для изменения байт-кода сборки?

Есть ли редактор, чтобы делать такие вещи? Выполнение работы с шестнадцатеричным редактором было бы последним вариантом, я бы предпочел иметь представление о том, какие инструкции у меня есть вокруг курсора ...

ответ

4

Я думаю, что вы ищете .NET Reflector с дополнением Reflexil. Взгляните на скриншоты, он довольно мощный, и он может изменять код IL во время выполнения. Рефлектор был бесплатным, вы могли бы где-нибудь найти какую-то более старую версию.

+0

Удивительно! Это то, что я искал. Выглядит потрясающе, и у меня есть старая копия, которая все еще работает. Благодаря! –

3

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

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

Другой бесплатный вариант может быть JustDecompile Telerik, который «может создать проект Visual Studio из декомпилированной сборки». - Я не использовал его, но похоже, что он декомпилирует исходный код и создает готовый проект. Это было бы супер удобно, так как вам даже не придется работать с IL.

+1

Совсем нет. Это не позволяет вам редактировать байт-код. Мне нужно отредактировать байт-код. Построение всей сборки не является вариантом. –

+0

Почему это не вариант? – Iridium

+0

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