Способы запутать c#/silverlight исходный код

Я ищу способы запутать следующий c#/silverlight исходный код:

    if (searchBox.Text.Equals("string literal")){
        MessageBox.Show("another string literal");
    }

До сих пор все, что я могу придумать для сокрытия его, кодирует строки массивами ASCII...

Все, что я хочу, - чтобы исходный код был нечитабелен, это для пасхального яйца. Безопасность не является приоритетом для меня.

Я не хочу, чтобы присутствие пасхального яйца было известно. Я пытаюсь запутать процесс выполнения программы, таким образом, это не появляется как существует строка кода как

if (specialcase)
    doEasterEgg();

Я видел материал на подобном запутываемый конкурс c, где привет мир превращается в globbidy липкую грязь. Что-либо подобное, о котором знают люди для c#?

5
задан Cœur 22 April 2018 в 09:09
поделиться

2 ответа

От чего именно вы хотите защитить?

  • Передача текстового значения элемента управления на ваш сервер? В этом случае любое «запутывание» любыми методами, не связанными с шифрованием, легко преодолеет мотивированный злоумышленник. Вам следует изучить шифрование ваших строк , а не их запутывание.

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

  • РЕДАКТИРОВАТЬ : если вы просто хотите скрыть пасхальное яйцо, как насчет использования ROT13 ?

  • РЕДАКТИРОВАТЬ 2 : как насчет назначения им вводящих в заблуждение констант и ссылки на них в другом статический класс с ошибочным названием?

.

// in other source file ValidateInput.cs
public const VALID_STRING = "secret";

public class ValidateInput {
    public static bool Validate(string srcText)
    {
         return srcText == VALID_STRING;
    }
    public static void LogicValidSearch()
    {
         return;
    } 
}

//In your main application
if (ValidateInput.Validate(searchBox.Text)) {
    ValidateInput.LogValidSearch();
}
4
ответ дан 14 December 2019 в 18:55
поделиться

Здесь недостаточно кода для эффективного обфускации. Ваш единственный вариант - это хеширование значения «строкового литерала» и шифрование значения «другого строкового литерала». Этот метод также небезопасен, потому что вам придется раскрыть свой метод шифрования.

1
ответ дан 14 December 2019 в 18:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: