Сейчас на форуме: Rio, asfa, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Как вырезать класс их .NET программы с помощью HEX редактора?
Посл.ответ Сообщение

Ранг: 1.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 10 февраля 2013 13:19 · Поправил: agafon2
· Личное сообщение · #1

Здравствуйте

Есть Dll, Я ее деобфусцировал и декомпилировал с помощью Dis#.

Вот так выглядит ее структура:

--> Image <--

Как узнать смещение класса Final и вырезать его в HEX редакторе?




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 10 февраля 2013 13:28 · Поправил: ZaZa
· Личное сообщение · #2

agafon2
Простой метод:
1. Открыть в Reflector.
2. Используя плагин Reflexil, удалить класс
3. Сохранить

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

-----
One death is a tragedy, one million is a statistic.


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


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 10 февраля 2013 13:28
· Личное сообщение · #3

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




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 10 февраля 2013 13:32 · Поправил: ZaZa
· Личное сообщение · #4

Archer пишет:
А зачем его вырезать собрался?

А может у человека интерес практический... хочется попробовать...
Я вот некогда баловался с инжектом классов (процедур, функций) в .Net сборки, сугубо из практического опыта...

Проще, конечно, чем удалять, но все же...

-----
One death is a tragedy, one million is a statistic.




Ранг: 1.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 10 февраля 2013 14:22 · Поправил: agafon2
· Личное сообщение · #5

Archer пишет:
А зачем его вырезать собрался? Если проще декомпилять и с сорцами работать, о чём в прошлом топике сказали.


Не получается исходники собрать, чтобы компилировалось без ошибок

Вот, например, одна из них:

--> Ссылка <--



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 10 февраля 2013 15:09
· Личное сообщение · #6

ZaZa
Подробней осветишь? Допустим, нужно заменить реализацию одного класса или метода на свою. Как это быстро в пару кнопок сделать? =)

-----
старый пень





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 10 февраля 2013 15:25
· Личное сообщение · #7

r_e
Быстро, никак! Придется делать инжект своего класса, создавать переменные, функции, процедуры, писать для каждого свой IL-код, править основной код, меняя ссылки на свой класс и т.д.
Я так думаю, Вы и сами это прекрасно знаете!

-----
One death is a tragedy, one million is a statistic.




Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 10 февраля 2013 17:07
· Личное сообщение · #8

ZaZa
Я детально не разбирался. В идеале бы инструмент такой чтоб можно было сделать следующее
1. Пишем класс на замену. Компилим в сборку.
2. Запускаем волшебную утиль
3. Указываем оригинальную сборку и класс/метод
4. Указываем нашу сборку и класс/метод
5. Жмем волшебную кнопку и утиль быстренько переносит наш ИЛ код в другую сборку, подменяет токены, находит рефы и патчит их.

Можно такое сделать? ))

-----
старый пень





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 10 февраля 2013 17:24
· Личное сообщение · #9

Лень - двигатель прогресса!
В принципе, сделать можно все. Все упирается во время...
Сама задумка, конечно, интересная!

-----
One death is a tragedy, one million is a statistic.



 eXeL@B —› Вопросы новичков —› Как вырезать класс их .NET программы с помощью HEX редактора?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати