2013-01-22 24 views

回答

1

看看DotPeek from Jetbrains它是免費的,並完成這項工作。

+4

不確定這是問題;如果Reflector甚至不能觸摸它,那麼我不認爲DotPeek也會。我懷疑這個文件根本不是.NET程序集。 –

+0

@MarcGravell你可能是對的,我的第一個想法是dotpeek。我應該刪除答案嗎? –

1

如何用C#創建的DLL不是.NET的dll? 據我所知,C#只編譯爲MSIL(現在..),因此該DLL必須是「.NET DLL」(程序集)。或者你在談論C++,也許?

首先應該檢查dll是否是託管的(.NET)或非託管的。我曾經使用Pedump來完成這項工作,但那是很久以前的事了。你應該尋找這樣的工具,然後採取相應的行動。如果它是一個非託管DLL,則需要使用不同的(並且更復雜的)技術來對其進行反編譯。

4

您確定錯誤信息不是「不是.NET程序集」嗎? (或類似的東西); .NET反射器是非常多的 .NET反編譯器。

如果您使用「visual studio c#」創建它,那麼它是一個.NET程序集。它什麼都不知道。你確定它沒有被混淆嗎?你確定它是從「visual studio c#」創建的嗎?

你可以在「ildasm」中試試它,快速看到裏面有什麼。

我懷疑你試圖閱讀的文件與.NET無關,也不是.NET程序集。也許一些C/C++/java/其他任何東西/...

+0

即使它被模糊處理,它仍然需要被CLR執行的MSIL,所以應該可以在Reflector或ILDasm中打開它... –

+0

@ dema80:一些混淆的程序集以防止反射器從打開他們 - 至少2年前就是這樣。我認爲它們根據規範是無效的,但仍會運行,因爲.NET運行時並不嚴格。 –

+0

也許是..但我很確定ILDasm會打開他們然後..我敢打賭,問題是,該DLL不是一個程序集:) –