Проверка эффективности обфускации кода C # - PullRequest
2 голосов
/ 20 июля 2011

Я оцениваю несколько обфускаторов для защиты кода в приложении WPF.
Для проверки результатов работы, выполненной каждым обфускатором в данной сборке, я использую .Net Reflector от Red Gate.Сразу после каждой запутывания я открываю сборку с помощью .NET Reflector и вижу, как она выглядит.

Достаточно ли этого? Могут ли результаты .NET Reflector рассматриваться какпоказатель качества запутывания, или мне стоит попробовать какие-то дополнительные инструменты?(не любой возможный инструмент такого рода, но с точки зрения практического здравого смысла).

Ответы [ 3 ]

4 голосов
/ 20 июля 2011

Результатов от Reflector должно быть достаточно для указания того, как будет выглядеть любая случайная попытка декомпиляции.Некоторые запутыватели будут запутывать код до такой степени, что сборка даже не откроется в Reflector.

Любой, кто попытается сделать что-то более глубокое, не сможет легко воспрепятствовать более сложному запутыванию, чем другие.

1 голос
/ 20 июля 2011

Было бы лучше, если бы Reflector и ILSpy полностью отказались декомпилировать полученную сборку. Я знаю, что существуют обфускаторы, которые способны на это.

0 голосов
/ 20 июля 2011

Мое мнение таково: «достаточно» или нет, зависит от вашего целевого приложения. Обфускация никогда не бывает на 100% безопасным кодом, она всегда делает процесс разборки кода достаточно сложным для потенциального злоумышленника, но все зависит от того, насколько этот «потенциальный злоумышленник» приложит усилия для разборки вашего приложения. А также .NET Reflector - это средство просмотра, как вы и сказали, так что, если оно удачное или нет, оно может вычесть вас, посмотрев, например:

если строки зашифрованы

если параметры зашифрованы

если имена классов и поля типа (PWD_USER) зашифрованы ...

Привет.

...