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

 eXeL@B —› Вопросы новичков —› Массовое копирование IL кода
Посл.ответ Сообщение

Ранг: 11.4 (новичок), 2thx
Активность: 0.020
Статус: Участник

Создано: 26 июля 2013 17:17
· Личное сообщение · #1

Привет всем!

Ковырял программку .net, там прот забавный и пришлось ручками править кучу методов, чтоб рефлектор корректно показывал. Наисправлялся )) Рука дрогнула на одном из первых методов и теперь прога не работает корректно. Бэкапов не делал. Теперь или все сначала или заменить нерабочий метод. Там 1200 строк ) Сижу ручками переделываю в рефклесиле. Поискал возможность скопировать все сразу - нашел только в SAE экспорт импорт метод. Т.е. рабочий экспортируем из оригинала и импорт вместо нерабочего в патченом. Не получилось. Токены разные и все колы и переменные поплыли. Погуглил, ничего не нашел. Может плохо искал ) Посоветуйте, есть какое нибудь решение для массовой замены IL кода



Ранг: 10.4 (новичок), 12thx
Активность: 0.030
Статус: Участник

Создано: 26 июля 2013 19:15 · Поправил: dfnsff
· Личное сообщение · #2

что за прот, попробуй посмотреть прогу в
DNiD
. где файлы? зачем заменять руками?

может ты про обфускацию?если да, тогда используй de4dot/SAE(две разные проги, просто в одном комплекте оригинальный пост), уже не раз говорили об этом - поищи на форуме

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

Ранг: 11.4 (новичок), 2thx
Активность: 0.020
Статус: Участник

Создано: 26 июля 2013 22:08
· Личное сообщение · #3

Руками менял, потому что тяму не хватило автоматизировать )) де4дот справляется только с именами классов, полей и т.д. обфускацию строк снял, потом руками правил переходы в методах, которые не открывались в рефлекторе. долго клацал, в итоге прожка стартует, но вываливается по нажатию одной кнопки.. оказался битый метод, после того как я в нем поковырялся.. Я его взял из оригинала, заново подправил, сравнил с битым и оказалось, что правкой пары байт не обойтись.. Нужно менять кучу опкодов и они по разному расположены..
Метод большой, поэтому хотелось бы просто скопипастить все опкоды из оригинала и вставить в битый. Есть какой нибудь вариант это сделать?

З.Ы. DNiD прот не определил




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 26 июля 2013 22:38
· Личное сообщение · #4

sapog93
WinHex

-----
Research For Food


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


Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 27 июля 2013 02:08 · Поправил: Nimnul
· Личное сообщение · #5

Я вобщем правку делал, как раз по той причине что ты озвучил только код там был на 30к строк. Вобщем или пиши плагин, или дезасмь disasm'om правь текст в студии, она очень шустро это сделает плюс она поддерживает регулярные выражения на массовую правку или простейшие паттерны типа windows*must*live. Потом в ilasm компиль назад. Плюс еще можно макросы на васике писать.

Третий варик скачай с mono-project.com mono.cecil пару часов потратишь, зато потом будет у тебя инструмент.

-----
have a nice day




Ранг: 11.4 (новичок), 2thx
Активность: 0.020
Статус: Участник

Создано: 19 августа 2013 22:29
· Личное сообщение · #6

Вообщем результаты:

1. Попробовал WinHex.. Нашел место это в программе - размер не подходит.. Ну я добавил nop`ов в метод, выровнял размер, а потом скопипастил из рабочего.. Не запустилась. Видимо еще что то нужно было
2. Пробовал ил код править в визуалке. Долго бился - не получилось.
3. С моно сесилом повозился, но за отсутствием необходимых знаний и времени плюнул на это дело

В итоге все сделал заново - деобф и ручная правка, заняло пару часов.. Всем спасибо. Нагнул таки прогу.




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

Создано: 20 августа 2013 10:11
· Личное сообщение · #7

Видимо, на этом можно закрыть.


 eXeL@B —› Вопросы новичков —› Массовое копирование IL кода
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати