我有权访问我的客户的旧管理系统,并且他想添加更多。我能够联系到最初编写主DLL的那个人,然后我得到了控制并开始在他们周围构建。但现在,我还需要扩展原版,我别无选择,只能进行逆向工程。确定反向代码是否被模糊处理或n我不是
我尝试了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,我能够编辑一些项目而不做任何修改。
我需要帮助来识别这种混淆(如果是这种情况)。最初的开发者说他没有混淆。我不确定。
谢谢。
由于它是.NET 4.0,它可能是lambda表达式。这些很难反编译我听说过。为什么不从原始开发人员那里获得资源? – 2012-03-07 13:17:38
原来的家伙现在正在休假,我怀疑他会交出来源。在他回来之前说这只狗吃了他的硬盘,我正准备自己重新编写一切.Net 4.0 – DoomerDGR8 2012-03-07 14:02:39