使用 .Net 反射器的反编译代码具有一些 unicode 字符

Decompiled code with .Net reflector has some unicode character

提问人:Karim Pazoki 提问时间:4/12/2017 更新时间:12/12/2018 访问量:2333

问:

我已经用 .但是里面有一些韩文字母而不是函数。 我可以将主题替换为英语吗? 这些是这样的:.Net reflector

if (catalogs == null)
                {
                    catalogs = new List<ComposablePartCatalog>();
                    catalogs.Add(蠒Ṃ슠厥荖乨Ὗὠ.쏼㗩≕調藀崥ᄀ(眞౅赲舚モ瑮.෬隁鼥ⵡﻹ㖒烚░(甊퇌ꢊꖽ፠䰷橝.뺛㸦ݑ胘믑�跷绑(typeof(Bootstrapper).TypeHandle))));
                    catalog = ꡗゴᎇ�碶㥝.⎑⧌略깫㈠떑惟컾(catalogs);
                }
                else
                {
                    catalog = ꡗゴᎇ�碶㥝.⎑⧌略깫㈠떑惟컾(catalogs);
                }
C# asp.net visual-studio 反编译 .net-reflector

评论

2赞 Evk 4/12/2017
这是因为库被混淆了,以防止您反编译它并轻松恢复原始源代码。因此,这些字符实际上没有意义,因此无法翻译。
0赞 Sebastian L 4/12/2017
@Evk这并不完全正确,但在 MSIL 中,您甚至可以使用 <> 等字符来命名特定变量,这在 C# 中是不允许的,但编译器仍然这样做,因此在 MSIL 中这可能是有效的,但正如 C# 中所述。
0赞 Evk 4/12/2017
@SebastianL但我不说它是无效的。我只是说你无法从中得到有意义的英文名称,因为这些名称只是一组没有任何意义的随机符号。
0赞 Karim Pazoki 4/12/2017
@Evk TNX。所以它与开发人员混淆了?
2赞 Evk 4/12/2017
@KarimPazoki,如果你的意思是被开发人员混淆,那么是的。

答:

0赞 Karim Pazoki 4/15/2017 #1

简要评论: 此代码由开发人员进行混淆处理。因此,这些字符实际上没有意义,因此无法翻译。

手动混淆是故意创建混淆代码的行为,即人类难以理解的源代码或机器代码。就像自然语言中的混淆一样,它可能会使用不必要的迂回表达式来撰写语句。程序员可能会故意混淆代码以隐藏其目的(通过隐蔽性实现安全性)或其逻辑

2赞 XenocodeRCE 5/8/2017 #2

据我所知,您的 .dll 文件是使用混淆保护的。但这不是问题,我们会混它好吗?在 github 发布页面上下载 DE4DOT,只需将您的文件拖放DE4DOT 的二进制文件上即可。 输出不应再混淆。

评论

0赞 XenocodeRCE 5/8/2017
为什么要投反对票?我的回答是客观的,我给出了实用的建议,并直接链接到开源存储库