SmartAssembly пропускает запутывание - PullRequest
5 голосов
/ 28 июля 2011

Я экспериментировал с инструментом запутывания SmartAssembly на скомпилированном веб-сайте. Он работает с большей частью кода, но любой класс в App_Code не запутывается. например У меня есть следующий класс в App_Code

public class Helper
{
    public Helper()
    {
    }

    public static String GetData()
    {
        String text = DateTime.Now.ToString();
        return text;
    }

    ---Other methods----
}

Этот класс помощников пропущен. Он не работает с искажением имен в классе Helper и его методах. Может ли кто-нибудь использовать SmartAssembly помочь в этом отношении? Существуют ли другие экономически эффективные инструменты (бесплатные или платные) лучше, чем SmartAssembly.

Ответы [ 2 ]

9 голосов
/ 29 июля 2011
  • Отказ от ответственности: я работаю в RedGate на SmartAssembly *

SA (SmartAssembly) автоматически исключает общедоступные элементы в DLL из обфускации и сокращения, поскольку предполагает, что они будут использоваться извне. Вы можете изменить это поведение, отредактировав файл saproj так, чтобы строка запутывания выглядела следующим образом:

<Obfuscation ExcludePublicMembers="0" Obfuscate="1">

Это запутывает всех участников, независимо от их публичного статуса.

Это может вызвать проблемы, поскольку IIS может использовать рефлексию для поиска определенных открытых членов с конкретными именами. В этом случае вам необходимо исключить эти элементы из обрезки / запутывания.

Что касается инструментов обфускации, SmartAssembly - довольно мощный обфускатор (хакеры согласны!), И в нем есть много дополнений (отчеты об ошибках, отчеты об использовании функций и т. Д.). Но, конечно, есть и другие, помимо SmartAssembly, например, Дотфускатор или Глубоководный Обфускатор. Некоторые из них довольно хорошие, некоторые очень плохие.

Если у вас возникли проблемы, обратитесь к нам по адресу: http://www.red -gate.com / products / dotnet-development / smartassembly / support

2 голосов
/ 29 июля 2011

public методы не запутываются по умолчанию (в DLL-файлах - в exes).Вы можете вызвать запутывание, но вам нужно использовать декорации кода.Подробнее можно найти здесь .

...