gpt4 book ai didi

.net-4.0 - 确定反向代码是否被混淆或 n I not

转载 作者:行者123 更新时间:2023-12-04 23:56:32 26 4
gpt4 key购买 nike

我可以为我的客户访问一个旧的管理系统,他想添加更多。我能够联系到最初编写主要 DLL 的人,然后我获得了控制权并开始围绕它们进行构建。但是现在,我也需要扩展原始版本,我别无选择,只能进行逆向工程。

我尝试了 Reflector Pro 和 JustDecompile,但获得的源代码充满了错误。 ILSpy 运行良好,但仍然是我从 ILSpy 获得的示例代码:

    private static object ParseIntoValue(string stringValue, string targetType)
{
if (targetType != null)
{
if (<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1 == null)
{
<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1 = new Dictionary<string, int>(12)
{
...
};
}
int num;
if (<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1.TryGetValue(targetType, out num))
{
object result;
switch (num)
{

cases are here...

default:
goto IL_2A6;
}
return result;
}
}
IL_2A6:
return null;
}

很明显这里应用了某种形式的混淆。 JustDecompile 和 Reflector Pro 的逆向代码完全没有用。使用 ILSpy,我可以编译一些项目而无需任何修改。

我需要帮助来识别这种混淆(如果是这样的话)。原始开发人员说他没有混淆。我不太确定。

谢谢。

最佳答案

反编译代码中的 PrivateImplementationDetails 可能是一个自动实现的属性。

如果你替换<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1有了一个属性,代码似乎就有意义了。

Dictionary<string, int> MyProp { get; set;}

private static object ParseIntoValue(string stringValue, string targetType)
{
if (targetType != null)
{
if (MyProp == null)
{
MyProp = new Dictionary<string, int>(12)
{
...
};
}
int num;
if (MyProp.TryGetValue(targetType, out num))
{
....

关于.net-4.0 - 确定反向代码是否被混淆或 n I not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9602064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com