如何混淆c#/ silverlight源代码

Nic*_*den 5 c# silverlight obfuscation

我正在寻找混淆以下c#/ silverlight源代码的方法:

    if (searchBox.Text.Equals("string literal")){
        MessageBox.Show("another string literal");
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所能提出的隐藏它是将字符串编码为ascii的数组...

我想要的只是源代码不可读,这是一个复活节彩蛋.安全不是我的首要任务.

我不希望知道复活节彩蛋的存在.我试图混淆程序流程,所以它看起来不像是有一行代码

if (specialcase)
    doEasterEgg();
Run Code Online (Sandbox Code Playgroud)

我已经看到了类似于混淆的c比赛的东西,其中hello world变成了globbidy gook.有什么类似人们知道的c#?

Mik*_*las 4

您到底想防止什么?

  • 将控件的文本值传输到您的服务器?在这种情况下,任何非加密技术的任何“混淆”都将很容易被有动机的攻击者克服。您应该考虑加密您的字符串,而不是混淆它们。

  • 如果您想混淆源代码本身,那么您确实应该让第三方工具来处理它。任何你自己发明的东西都可能很容易被逆向发明。

  • 编辑:如果你只是想隐藏一个复活节彩蛋,使用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();
}
Run Code Online (Sandbox Code Playgroud)