2012-03-07 36 views
3

我有权访问我的客户的旧管理系统,并且他想添加更多。我能够联系到最初编写主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,我能够编辑一些项目而不做任何修改。

我需要帮助来识别这种混淆(如果是这种情况)。最初的开发者说他没有混淆。我不确定。

谢谢。

+1

由于它是.NET 4.0,它可能是lambda表达式。这些很难反编译我听说过。为什么不从原始开发人员那里获得资源? – 2012-03-07 13:17:38

+0

原来的家伙现在正在休假,我怀疑他会交出来源。在他回来之前说这只狗吃了他的硬盘,我正准备自己重新编写一切.Net 4.0 – DoomerDGR8 2012-03-07 14:02:39

回答

6

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)) 
     { 
      .... 
+0

嗯......实际上可能会解决问题。我会回传经验。 – DoomerDGR8 2012-03-07 14:03:06

+0

它的工作!非常感谢。直到下一次! – DoomerDGR8 2012-03-07 19:24:23

+0

已验证此内容是在ILSpy中反映的自动实施的属性的输出转换为字典。我不知道为什么它与字典<,> ... {get;组; }? – 2012-12-31 16:33:51

相关问题