Дизассемблирование .NET приложений.

суббота, 18 июля 2009, Alexander Honcharuk

Как известно, любую  .NET программу, или библиотеку можно дизассемблировать, используя .NET reflector. Ну что б не боятся взлома программы, можно использовать обфускацию, или же очень закручено писать код. Об этом в данном посте я писать не буду, поскольку уже есть подобная информация в источниках, приведённых ниже:

http://msug.vn.ua/blogs/lexremablog/archive/2008/11/18/tricks-msil.aspx

http://msug.vn.ua/blogs/vusov/archive/2008/12/15/net-reflector.aspx

Я хочу рассказать в посте о сравнении кода до дизассемблирования и после.

Для этого я написал простейший тестовые пример ( можно взять в приатаченом файле MiniHackingUI.zip), в котом есть два dll проекта и один WinForms проект. В одной dll-ке хранится текст, в другой - функция, которая показывает этот текст через MessageBox, а у WinFrom окне одна кнопка, при нажатие на какую мы вызовем функция для показа MessageBox из dll.

Что я делал дальше, после того, как создал тестовый solution и сделал его rebuild? Начал дизассемблировать файлы:

MiniHackingUI.exe

MiniHackingUI.ShowMessage.dll

MiniHackingUI.TextContent.dll

сохраняя полученный код в отдельную папку. С dll-ками не было никаких проблем. С первого раза они сребилдились ОК, и я их скопировал в output папку для MiniHackingUI, что б не добавлять refences вручную.

Проект MiniHackingUI скомпилился, но рефлектор задал ему тип проекта "Class Library", вместо требуемого "Windows Application". Поменяв это вручную я смог запустить приложение. Рыботает пример без вылетов, внешний вид окна не изменился. К сожалению пропали мои комментарии в дизассемблированном коде. Также еще одна проблемка все же осталась - не могу в дизайнере форм открыть форму окна для редактирования, пока нету времени на поиск причины, позже попробую разобраться и написать об этом. На рисунке ниже можно увидеть как изменилась структура папок в проекте.

Как видим, поменялось немного. 

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


Ищите нас в интернетах!

Комментарии

Свежие вакансии