2014-01-16 55 views
0

我有一個C#.NET DLL,我試圖修補。我選擇了帶有Reflexil插件的.NET Reflector作爲工作(以及de4fot for deobfuscation)。 Reflector能夠非常成功地向我展示我想看到的C#,並且我能夠使用Reflexil修補CIL組件。當我試圖將DLL保存爲新的二進制文件時,Reflexil給了我一個簽名的程序集對話框,我選擇刪除強名稱。該模塊預計包含一個彙編mainfest

當我嘗試運行加載彙編代碼中,我得到的錯誤:

System.BadImageFormatException: Could not load file or assembly 'MyAssembly, Version=1.0, Culture=neutral, PublicKeyToken=somehash' or one of its dependencies. The module was expected to contain an assembly manifest. 

我該如何解決這個問題?

此外,如果我在修補的DLL上使用peverify.exe,我會收到一個錯誤:文件未找到或頭標錯誤。這讓我相信Reflexil的修補過程有問題嗎?

+0

逆向工程是邪惡的。不要成爲邪惡。 – evanmcdonnal

+2

逆向工程是一種工具/技術。將它用於邪惡是邪惡的。使用它是件好事。使用你的力量。很好地使用你的能力。把你的力量用於善良而不是邪惡。 – DarcyThomas

+0

@evanmcdonnal製作無法有效使用而無需反向工程的東西是邪惡的。不要做壞事。 –

回答

1

通常,您可以將程序集清單文件添加到項目中(右鍵單擊項目,添加新文件並選擇應用程序清單文件)。這適用於將從您的程序集中生成的dll。在添加清單文件後,當您右鍵單擊該項目並選擇屬性時,在「應用程序」選項卡上,您將看到清單文件在底部的下拉列表中選中。

也許這個DLL也是從一個具有應用程序清單文件的項目(類庫)創建的。我不認爲你將能夠改變該DLL無論如何添加清單文件。

相關問題