我如何获得C#类的真实姓名?

Dol*_*hin -10 c# obfuscation deobfuscation

我有一个程序,我已经加密了我的类名:

namespace eGTt4d2HADJI3qZvyr
{

 internal class epOl6XynGueNUNwY5Y
  {
    internal static ModuleHandle e1gr6SXh7;
    internal static RuntimeTypeHandle e53w34m968awCm9P85taUZe(int token)
    {
        return epOl6XynGueNUNwY5Y.e1gr6SXh7.GetRuntimeTypeHandleFromMetadataToken(token);
    }
    internal static RuntimeFieldHandle q3oMVe54wE47w4v68C7s2I(int token)
    {
        return epOl6XynGueNUNwY5Y.e1gr6SXh7.GetRuntimeFieldHandleFromMetadataToken(token);
    }
    public epOl6XynGueNUNwY5Y()
    {
        <PrivateImplementationDetails>{75896B12-4F98-4FD3-B464-42D866146FAE}.SLV0fFIsptsZtjvFft17();
        base..ctor();
    }
    static epOl6XynGueNUNwY5Y()
    {
        // Note: this type is marked as 'beforefieldinit'.
        <PrivateImplementationDetails>{75896B12-4F98-4FD3-B464-42D866146FAE}.SLV0fFIsptsZtjvFft17();
        epOl6XynGueNUNwY5Y.e1gr6SXh7 = typeof(epOl6XynGueNUNwY5Y).Assembly.GetModules()[0].ModuleHandle;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我怎样才能得到真实的名字,比如"epOl6XynGueNUNwY5Y"?

源是*.dll文件,我使用ILSpy来反映它.大部分代码都是正常的,还有一小部分像这样.如果有人知道Arithmatic.Al通过Reflector无法正常工作.

PS:我从互联网上找到了解决这个问题的算术.但是只是一点线索.

线索是:Encrption字符串只有大写/小写/数字.

我用的是高版本的reflector喜欢7.6.netframework 4.0解决这个问题,它只是invlid方法.

谢谢你的帮助!我知道很多C#代码知识,在我想知道之前SqlConnection,如何连接?现在使用反射器可以找到代码,而不仅仅是重新编写代码!!

谢谢你告诉我代码混淆.

并且您希望看到.dll文件源代码(C# .NetFramework),ILSpy并且reflector是推荐的.

Ehs*_*san 6

您很可能反编译了一个混淆的exe。混淆的主要原因是为了保护代码。因此,除非您知道代码是如何混淆的(模式/算法)等,否则您将无法获得原始的类名。您可以在此处阅读更多相关信息。


dan*_*ood 5

这是混淆的代码.只有在混淆之前有代码才能获得原始类名的唯一方法.除非代码的编写者在其中留下了一些漏洞,否则唯一的选择是通过代码并花费大量时间重构代码以摆脱默默无闻并试图从中理解,但它可能会更快地编写自己的应用程序,做同样的事情.

另外需要注意的是,由于代码是混淆的,因此代码具有真正的类名.即使你要调用一个返回类名的方法,这正是你应该得到的.