2012-03-07 69 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

相關問題