我有一個編譯的DLL,我需要改變一點。它是半年前我寫的,但是我失去了源代碼。有沒有在這一個單一的硬編碼字符串(這是一個文件名)如何在編譯的DLL中編輯硬編碼的字符串?
我需要將其從TestPage.html
改變TestPage1.html
(它不是更長的時間)
如何做到這一點?該字符串是匿名的,相應的代碼部分是:
... + folder + "TestPage.html"
有沒有可變它分配給。
在此先感謝。
編輯:我不想重新編譯c#代碼後用反射器類工具解壓縮它!
我有一個編譯的DLL,我需要改變一點。它是半年前我寫的,但是我失去了源代碼。有沒有在這一個單一的硬編碼字符串(這是一個文件名)如何在編譯的DLL中編輯硬編碼的字符串?
我需要將其從TestPage.html
改變TestPage1.html
(它不是更長的時間)
如何做到這一點?該字符串是匿名的,相應的代碼部分是:
... + folder + "TestPage.html"
有沒有可變它分配給。
在此先感謝。
編輯:我不想重新編譯c#代碼後用反射器類工具解壓縮它!
您可以使用CFF Explorer,它提供了對.NET程序集非常原始的視圖。它還提供了查看甚至修改UserString-stream的可能性(在.NET Directory > MetaData Streams > #US
下找到它)。
UserString-stream將字符串存儲爲您所描述的字符串。您應該能夠使用find函數找到您的特定字符串並對其進行修改。但是,有一個限制:您不能使用長度不同的字符串(更短或更長)。這會混淆後面在UserString-stream中所有字符串的索引以及其他部分的所有偏移量。所以,不幸的是,我認爲將其更改爲TestPage1.html
將無法使用,因爲它只有一個字符。
工程就像一個魅力 - 我只是增加了一個空的空間(代碼00),它解決了我的問題。 –
爲我工作..燦爛 –
使用Reflector(或其他類似的工具)將IL反編譯爲C#(或另一種CLR語言),然後 - 編輯並重新編譯它。
我不行。它的代碼是相當複雜的DLL:有很多匿名函數,文件和部分類。 –
@IlyaSmagin爲什麼不呢?即使你不能反編譯爲C#,你也可以反編譯爲IL。 – Justin
如果您不想在解壓縮之後重新編譯C#代碼,則需要反編譯爲IL - 無論採用哪種方式,abatishchev發佈的**的答案都是**這樣做的正確方法 – Justin
如果您不想重新編譯,你用盡了選擇。 – abatishchev