G>>Давно думал на эту тему. Теоретически я знаю как это сделать. То есть систему защиты шарповских программ. В последнем проекте я с дальним прицелом часть кода писал с учетом возможности встраивания защиты. Ну понятно, что решение не чисто шарповское, решение с нативным кодом. На архитектуру легло нормально, есть даже определенные архитектурные бенефиты, понравилось. Тонкие моменты проявились, но не страшно. Сам я конечно не потяну. Кто-нибудь здесь этим занимается?
V>Такие тулзы имеются.
V>Вот, например, достаточно зрелая система .NET защиты
V>Или интересует самому смастерить?
Ну вот смотри, они предлагают две тулзы, одну для защиты, другую для взлома этой защиты

Ну смешно же.
Обфускация конечно затрудняет понимание кода. Одну задачу решает — твой продукт склонировать будет труднее. А вот против лома это не решение.
Мое решение больше для защиты приложения от взлома, хака, кряка.