【问题标题】:is it possible to get the C# class original name to improve the code readablity from obfuscated exe [closed]是否有可能获得 C# 类的原始名称以提高混淆 exe 的代码可读性 [关闭]
【发布时间】:2013-08-02 15:32:59
【问题描述】:

我有一个 windows exe 程序,我知道它是用 C# 编写的,当我使用 ILSpy 7.6 解密 dll(exe) 时,类代码如下所示:

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;
    }
  }
}

我想知道是否可以重构代码的真实名称。因为代码名称几乎看不懂,没有人能从无意义的代码名称中理解其含义。如何才能得到原始名称?是否可以获取真实姓名或提高代码的可读性?

【问题讨论】:

  • 你是怎么得到这个名字的?你的意思是反射?....这只是我的意见,但你应该考虑其他命名约定。
  • 这是反编译的代码吗?
  • 这看起来像你正在尝试对混淆代码进行逆向工程......是这样吗?
  • 这似乎与加密无关。像这样修改类名实际上称为混淆。

标签: c# obfuscation deobfuscation


【解决方案1】:

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

作为附加说明,由于代码被混淆,代码具有真实的类名。即使您要调用返回类名的方法,这也正是您应该得到的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 好吧,如果你对混淆程序进行逆向工程,你可以得到它们,但祝你好运。
    • @gunr2171 这么难,你可能根本不知道使用了什么混淆程序!
    • 源码是*.dll文件,我用ILSpy来反映。大部分代码是正常的,还有一小部分是这样的。如果有人知道算术。通过Reflector可以'不能正常工作。
    • @Dolphin 如果这是代码中唯一像这样被混淆的部分,那么这部分要么是作者不想让你知道的,比如一段安全敏感的代码,或者是生成的代码。
    猜你喜欢
    • 2010-10-07
    • 2016-07-19
    • 2011-07-30
    • 2021-03-27
    • 1970-01-01
    • 2017-02-25
    • 2018-08-01
    • 2017-09-21
    相关资源
    最近更新 更多