Для чего необходимо запутывание

Приложения для .NET не представляют сложностей для декомпиляции. Это не является недостатком технологии .NET, а исходит из реальности современных языков с компилируемым промежуточным кодом. В технологии .NET используется явный файловый синтаксис для доставки исполняемого кода, или промежуточного языка Microsoft (MSIL). Будучи языком намного более высокого уровня, чем двоичный машинный код, файлы с промежуточным кодом имеют достаточное количество явно видимых и понятных идентификаторов и алгоритмов. Кроме всего, очевидно трудно создавать что-либо гибкое, легкое для понимания и способное к расширению с одновременным скрытием достаточно важных сведений.

Таким образом, кто угодно, имея в распоряжении декомпилятор .NET, может легко получить декомпилированный код. В этом случает код лицензии программного обеспечения, механизмы защиты от копирования и фирменная бизнес-логика будут доступны для обозрения, независимо от того, законно это или нет. Любой человек может использовать полученную информацию в своих целях. Например, он может попытаться найти уязвимости в защите, украсть уникальные идеи, взломать приложение и т.д.

Однако такое положение не безнадежно. Организации, которые обеспокоены защитой своей интеллектуальной собственности, реализованной на платформе .NET, должны понимать, что существует решение, которое может воспрепятствовать декомпиляции. Запутывание представляет собой технику безболезненного переименования символов в сборках, а также прочие методы для обмана декомпиляторов. Должным образом выполненное запутывание позволяет во много раз повысить защищенность приложения от декомпиляции, при этом абсолютно не влияя на его работоспособность.

© 2002-2007 PreEmptive Solutions. Все права защищены.