Сейчас на форуме: _MBK_ (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Как создать патч для приложения на dot net?
Посл.ответ Сообщение

Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 октября 2010 13:30 · Поправил: Sigmau
· Личное сообщение · #1

Под syser-ом нашёл код (6 байт), который нужно пропатчить на другой. Я в общем то чайник... так... несколько раз занимался этим видом интеллектуального спорта.. в общем то раньше не сталкивался с приложениями dot net. Так что когда сунулся как привык, в экзешник, переписывать байты, то не нашёл их. Потом вспомнил, что net приложения часть кода компилируют на ходу (т.н. JIT). Вот, возникла дилемма - либо писать кряк, который после компиляции исправляет в памяти, либо как-то найти что надо исправить в докомпиляционном коде ("байт-коде"?)

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

Подскажите, как лучше поступить?

Если патчить в памяти, то как побыстрее найти нужную часть кода, есть ли какая-то структура поиска?

Или можно как то исправить байт код, зная скомпилированный?

Спасибо



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

Создано: 31 октября 2010 14:45 · Поправил: coolangel
· Личное сообщение · #2

Используй Reflector - им и код можно смотреть и патчить.



Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 октября 2010 15:39 · Поправил: Sigmau
· Личное сообщение · #3

coolangel
Спасибо за ответ!

А не подскажете, как патчить? основные шаги?
Установил 6-ой RedGate Net Reflector.
В самом рефлекторе в окне "Diassembler" нашёл нужную строку.
Что дальше то делать, чтобы изменить оригинальный экзешник?

Пока дошёл до того, что в MSVS, куда интегрировался Reflector, добавил экзешник (вообще, он запускается как сервис), меню "choose assemblies to debug", он там куда-то его десассемблировал, я опять же нашёл нужные строки, отредактировал, сохранил... и затупил, потому что пока непонятно, что делать дальше, чтобы получить изменённый экзешник?




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 31 октября 2010 16:07
· Личное сообщение · #4

Откомпилировать? Если софт не был обфусцирован - это самый простой вариант. Иначе разбираться с СIL и использовать инструменты типа ILDasm и править сборку с помощью Hex-редактора. А вообще тема Net достаточна обширна и её нужно курить и курить.

-----
Следуй за белым кроликом





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 октября 2010 16:08
· Личное сообщение · #5

Sigmau не знаю как в рефлекторе, я обычно открываю файл в IDA нахожу команду, выделяю ее, переключаюсь в окно HexView и там эти байты уже выделены, копирую эти байты открываю любой хекс эдитор, там ищу эти байты и заменяю на нужные мне.

-----
Yann Tiersen best and do not fuck




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

Создано: 31 октября 2010 23:33 · Поправил: coolangel
· Личное сообщение · #6

Sigmau пишет:
А не подскажете, как патчить? основные шаги?


http://exelab.ru/f/action=vthread&forum=1&topic=16051&page =0#5

P.S. Там нужно выставить курсор в определенное место,слева,в дереве(кажется нужно выделить название net сборки), только тогда появляется кнопка "Save".


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


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