我有權訪問我的客戶的舊管理系統,並且他想添加更多。我能夠聯繫到最初編寫主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