2011-09-27 12 views
5

मेरे पास एक एकल संकलित डीएल है जिसे मुझे थोड़ा बदलने की जरूरत है। यह एक साल पहले मेरे द्वारा लिखा गया था, लेकिन मैंने स्रोत कोड खो दिया है। इसमें एक ही हार्डकोडेड स्ट्रिंगसंकलित DLL में हार्डकोडेड स्ट्रिंग को कैसे संपादित करें?

मैं TestPage.html से TestPage1.html करने के लिए इसे बदलने की जरूरत है (बहुत लंबे समय तक यह नहीं है) (यह एक फ़ाइल नाम है) है

कि कैसे करना है? स्ट्रिंग अनाम है, कोड की इसी टुकड़ा है:

... + folder + "TestPage.html" 

कोई चर यह करने के लिए असाइन किया गया है नहीं है।

अग्रिम धन्यवाद।

संपादित करें: मैं इसे प्रतिबिंबित करने वाले टूल के साथ निकालने के बाद सी # कोड को पुन: संकलित नहीं करना चाहता हूं!

+0

यदि आप इसे निकालने के बाद सी # कोड को पुन: संकलित नहीं करना चाहते हैं तो इसके बजाय आईएल को डीकंपाइल करें - या तो जिस तरह से abatishchev पोस्ट किया गया है ** ** यह – Justin

+0

करने का सही तरीका है यदि आप पुनः संयोजित नहीं करना चाहते हैं , आप विकल्पों से बाहर भाग गया। – abatishchev

उत्तर

6

आप CFF Explorer का उपयोग कर सकते हैं, जो .NET असेंबली पर बहुत कच्चा दृश्य प्रदान करता है। यह उपयोगकर्तास्ट्रिंग-स्ट्रीम को देखने और यहां तक ​​कि संशोधित करने की संभावना भी प्रदान करता है (इसे .NET Directory > MetaData Streams > #US के अंतर्गत ढूंढें)।

उपयोगकर्तास्ट्रिंग-स्ट्रीम स्ट्रिंग अक्षर को आपके द्वारा वर्णित अनुसार स्टोर करता है। आपको खोज-फ़ंक्शन के साथ अपनी विशेष स्ट्रिंग को ढूंढने और इसे संशोधित करने में सक्षम होना चाहिए। हालांकि, एक सीमा है: आप एक अलग लंबाई (छोटी या लंबी) के साथ एक स्ट्रिंग का उपयोग नहीं कर सकते हैं। यह उन सभी तारों के सूचकांक को गड़बड़ कर देगा जो बाद में उपयोगकर्तास्ट्रिंग-स्ट्रीम और अन्य अनुभागों के सभी ऑफसेट में अनुसरण करेंगे। इसलिए, दुर्भाग्य से मुझे लगता है कि इसे TestPage1.html पर बदलना काम नहीं करेगा, क्योंकि यह एक वर्ण लंबा है।

+0

एक आकर्षण की तरह काम करता है - मैंने अभी एक खाली स्थान (कोड 00) जोड़ा है और यह मेरी समस्या को वैसे भी तय करता है। –

+0

मेरे लिए काम किया .. शानदार –

8

आईएल में सी # (या अन्य सीएलआर भाषा) को डीकंपाइल करने के लिए परावर्तक (या अन्य समान टूल) का उपयोग करें, और फिर - इसे फिर से संपादित और संकलित करें।

+0

मैं नहीं कर सकता। इसका कोड बल्कि जटिल डीएलएल है: इसमें कई अज्ञात फ़ंक्शन, फ़ाइलें, आंशिक कक्षाएं हैं। –

+2

@IlyaSmagin क्यों नहीं? यहां तक ​​कि यदि आप सी # को डिमंपाइल नहीं कर सकते हैं जो बनाता है तो आप निश्चित रूप से आईएल को डिस्प्ले कर सकते हैं जो बनाता है। – Justin

4

आप .NET-dll फ़ाइल से कोड और ressources को संकुचित करने के लिए मुक्त उपकरण ILSpy का उपयोग कर सकते हैं।

+3

और यह मेरी समस्या के साथ वास्तव में मेरी मदद कैसे करेगा? –

संबंधित मुद्दे