2013-08-26 8 views
9

मेरे पास सी # (कोर्स के स्रोत के बिना) में लिखा गया एक एप्लीकेशन है, जिसे थोड़ा सा बदला जाना चाहिए। उदाहरण के लिए, मुझे कोड की कुछ पंक्तियों को रोकने की आवश्यकता है जो एक अनावश्यक मेनू बनाते हैं। तो मुझे लगता है कि मुझे उन्हें टिप्पणी करनी चाहिए।संकलित संशोधित .NET Exe

स्रोत कोड obfuscated नहीं है। मुझे पता है कि मैं परावर्तक/रिफ्लेक्सिल जैसे टूल का उपयोग करके पूरी तरह से विघटित, परिवर्तन और संकलन कर सकता हूं। लेकिन हर कोई जानता है कि ऐसा करके, कोड के कई हिस्सों फिर से संकलित नहीं होंगे! क्या प्रतिबिंबक (या कोई अन्य उत्पाद) में कोई तरीका है कि इस प्रक्रिया के बिना अक्षम/बदला जा सकता है?

धन्यवाद।

उत्तर

3

अंततः मैं "अक्षम" में कुछ कोड की संकलित exe में लाइनों में कामयाब की आप पर निर्भर करता है।

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

उम्मीद है कि यह किसी और की मदद करेगा।

4

यदि आपको वास्तव में ऐसा करने की आवश्यकता है, तो आप इसे प्रतिबिंबक (या एक समान उत्पाद) के साथ संकुचित कर सकते हैं और उसके बाद उस समाधान का उपयोग करने के लिए इसका उपयोग कर सकते हैं। नेट जो एक ही निष्पादन योग्य होगा।

आप चारों ओर समस्या आने पर हो सकता है:

  1. अस्पष्ट कोड
  2. धारा जहां विघटित आप विशिष्ट वर्गों के लिए सही कोड से पता चलता है, लेकिन किसी कारण से यह सिर्फ अपने नए समाधान में काम नहीं करता है (और तो आप क्या करते हैं?)

यह ऐसा करने से संबंधित संभावित कानूनी मुद्दों का उल्लेख नहीं करना है। अगर निष्पादन योग्य लाइसेंस के तहत जारी किया गया था जो आपको ऐसा करने की अनुमति देगा, तो आपको सबसे अधिक संभावना स्रोत कोड तक पहुंच होगी। तो तथ्य यह है कि आपके पास स्रोत कोड तक पहुंच नहीं है, इसका तात्पर्य है कि जो भी आप सुझाव दे रहे हैं वह कानूनी नहीं हो सकता है।

+0

अलावा, स्रोत अस्पष्ट कोड नहीं है। मुझे पता था कि मैं पूरी तरह से decompile, परिवर्तन, और संकलन कर सकते हैं। लेकिन जैसा कि आपने कहा था, कोड के कई हिस्सों फिर से संकलित नहीं होंगे! क्या प्रतिबिंबक (या कोई अन्य उत्पाद) में कोई तरीका है कि इस प्रक्रिया के बिना अक्षम/बदला जा सकता है? –

-2

यदि आपके पास उसी मशीन पर स्रोत कोड है जिस पर आप अपनी exe फ़ाइल का परीक्षण कर रहे हैं, और यदि आप विजुअल स्टूडियो में अपने स्रोत कोड में परिवर्तन कर रहे हैं, तो इसे संकलित करते समय स्वचालित रूप से आपके exe फ़ाइल में दिखाई देगा।

आपको इसके लिए कोई विशेष चीज़ नहीं करने की आवश्यकता है। और यदि ऐसा नहीं है, तो बस कोड में परिवर्तन करें और अपने हालिया परिवर्तन वाले किसी अन्य मशीन पर अपने डीबग फ़ोल्डर के नए एक्सई (डीबग फ़ोल्डर के साथ) पेस्ट करें।

+1

क्या आप फिर से प्रश्न पढ़ना चाहेंगे? हमारे पास कोई स्रोत कोड नहीं है। बस exe और dll संकलित। और हमें कोड की कुछ पंक्तियों को बदलने की जरूरत है। –

0

यह धागा मदद मिल सकती है: dotnet dll decompile and change the code

पिछली बार जब मैं के साथ विघटित प्रतिबिंब का उपयोग स्रोत, मैं संसाधन और अन्य बाद के चरणों के बारे में हालांकि dll समझ से परे नहीं है के साथ भी कई संकलन मुद्दों मिल गया की कोशिश की। इसलिए आपके नए डीएल को पुराने के रूप में काम करने के लिए स्रोत निकालने और संशोधित करने से परे चीजें हो सकती हैं।

तो मैं अन्य थ्रेड में उल्लिखित विकल्पों में से किसी एक का उपयोग करके प्रत्यक्ष डीएलएल मैनिपुलेशन के साथ जाने का सुझाव दूंगा।

2
पूर्णता के लिए के लिए

: एक अन्य संभावित समाधान ILDASM http://msdn.microsoft.com/en-US/library/f7dy01k1%28v=vs.80%29.aspx MSIL Disassembler का उपयोग करें, MSIL को संपादित करने और ilasm करने के लिए इसे वापस खिलाने के लिए है।

कैसे व्यावहारिक इस समाधान है, निश्चित रूप

13

आप dnSpy को आजमा सकते हैं। यह एक .NET असेंबली संपादक, decompiler, और ILSpy से डीबगर फेंक दिया गया है।

https://github.com/0xd4d/dnSpy

कानूनी मामलों से
+4

ग्रेट मिल! जिथब पेज का विवरण ऐसा लगता है कि यह कुछ गड़बड़ अनियंत्रित परियोजना है, लेकिन ऐप स्वयं किसी भी मुक्त विकल्प से पहले लीग है। – blade

+0

वाह, मैं प्रभावित हूं। यह वास्तव में संशोधित असेंबली recompile कर सकते हैं। मैं बस एक हार्ड कोडित ईमेल पता (* दृष्टि *) बदलना चाहता था और यह चाल थी! पागल! – Jerther

+0

वह किस तरह का जादू है? यह बिल्कुल सही है! –

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