Как Microsoft защищает, например, двоичные файлы Sql Server от обратного инжиниринга?

Меня интересует, как Microsoft защищает двоичные файлы Sql Server от реверс-инжиниринга?
Например, у меня также есть некоторые C ++ DLL, и я хочу защитить их от обратного проектирования. Это логично, что DLL компилируется в машинный код?

1

Решение

Там нет технической защиты от обратного проектирования. Всегда можно запустить код внутрисхемного эмулятора, чтобы полностью наблюдать и понимать его функции. Это чрезвычайно трудоемкая работа, но она может быть выполнена, если отдача того стоит. Один известный пример из 1990-х годов был Эндрю Шульман работа это раскрыло скрытые возможности Windows 95 API.

Хотя нет никаких технических барьеров для такого анализа, безусловно, существуют юридические и практические пределы полезности процесса. Если у вас будет достаточно времени с квалифицированными инженерами, вы сможете полностью перепроектировать любой большой программный пакет, включая Microsoft Windows, Office или двоичные файлы базы данных Oracle. Вашей наградой за эти усилия станет возможность создавать нелицензионные, нелегальные копии программного обеспечения. Это не имело бы коммерческой или практической ценности.

Утилиты обфускации, которые используются для приложений .NET или Java, решают конкретную проблему с этими языками: поскольку они поддерживают проверку имен методов и свойств, можно выполнить обратный инжиниринг не только функции кода, но и открытых идентификаторов, используемых в оригинале. исходный код. Хотя C ++ использует символические имена для связывания, он не имеет такой же доступной информации с расширенными именами, поэтому запутывание не требуется. Следует отметить, что даже если код подвергается обратному проектированию с общедоступными идентификаторами, к процессу применяются те же практические и юридические ограничения.

4

Другие решения

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

1

DLL — это машинный код. все может быть изменено. Они полагаются на две вещи. Усилия, связанные и запутывание.

РЕДАКТИРОВАТЬ

Забыл упомянуть, что с MS $ вы получаете такие вещи, как обновления, совместимость (как вы думаете, почему они время от времени меняют формат документов Word и т. Д.)

0
По вопросам рекламы [email protected]