psoul की उत्कृष्ट पोस्ट आपके प्रश्न का उत्तर देती है इसलिए मैं उनके अच्छे काम की नकल नहीं करूंगा, लेकिन मुझे लगता है कि यह समझाने में मदद मिलेगी कि यह एक बार पूरी तरह से वैध है लेकिन बहुत ही मूर्खतापूर्ण सवाल क्यों है। आखिरकार, यह सीखने की जगह है, है ना?
आधुनिक कंप्यूटर प्रोग्राम, रूपांतरणों की एक श्रृंखला के माध्यम से निर्मित होते हैं, जो पाठ निर्देशों के मानव-पठनीय शरीर के इनपुट से शुरू होते हैं (जिन्हें "स्रोत कोड" कहा जाता है) और निर्देशों के कंप्यूटर-पठनीय निकाय के साथ समाप्त होता है (वैकल्पिक रूप से "बाइनरी" या "मशीन" कहा जाता है) कोड ")।
जिस तरह से एक कंप्यूटर मशीन कोड निर्देशों का एक सेट चलाता है वह अंततः बहुत सरल है। प्रत्येक क्रिया एक प्रोसेसर ले सकता है (उदाहरण के लिए, मेमोरी से पढ़ा, दो मान जोड़ें) एक संख्यात्मक कोड द्वारा दर्शाया गया है। अगर मैंने आपको बताया कि नंबर 1 का मतलब चीखना था और नंबर 2 का मतलब गिग था, और फिर उन पर 1 या 2 के साथ कार्ड रखे, तो आप उम्मीद कर सकते हैं कि आप चिल्लाएंगे या तदनुसार गिग्लिंग करेंगे, मैं उपयोग कर रहा हूँ जो अनिवार्य रूप से उसी सिस्टम का उपयोग करता है जिसे कंप्यूटर उपयोग करता है संचालित करने के लिए।
एक बाइनरी फ़ाइल सिर्फ उन कोड (आमतौर पर "ऑप कोड") और सूचना ("तर्क") का एक सेट है, जो ऑप्स पर काम करता है।
अब, असेंबली लैंग्वेज एक कंप्यूटर लैंग्वेज है, जहां भाषा का प्रत्येक कमांड शब्द प्रोसेसर पर ठीक एक ऑप-कोड का प्रतिनिधित्व करता है। असेंबली लैंग्वेज कमांड और प्रोसेसर ऑप-कोड के बीच सीधा 1: 1 अनुवाद होता है। यही कारण है कि एक x386 प्रोसेसर के लिए कोडिंग असेंबली एआरएम प्रोसेसर के लिए कोडिंग असेंबली से अलग है।
Disassembly बस यह है: एक प्रोग्राम बाइनरी (मशीन कोड) के माध्यम से पढ़ता है, अपने समकक्ष असेंबली लैंग्वेज कमांड के साथ ऑप-कोड की जगह लेता है, और परिणाम को एक पाठ फ़ाइल के रूप में आउटपुट करता है। यह समझना महत्वपूर्ण है; यदि आपका कंप्यूटर बाइनरी को पढ़ सकता है, तो आप बाइनरी को भी पढ़ सकते हैं, या तो मैन्युअल रूप से आपके हाथ में एक ऑप-कोड टेबल के साथ (ick) या डिस्सेम्बलर के माध्यम से।
Disassembler में कुछ नई तरकीबें और सभी हैं, लेकिन यह समझना महत्वपूर्ण है कि एक disassembler अंततः एक खोज और प्रतिस्थापन तंत्र है। यही कारण है कि कोई भी ईयूएलए जो इसे मना करता है वह अंततः गर्म हवा बह रहा है। आप एक बार कंप्यूटर को प्रोग्राम डेटा पढ़ने की अनुमति नहीं दे सकते हैं और प्रोग्राम डेटा पढ़ने वाले कंप्यूटर को भी मना कर सकते हैं।
(मुझे गलत मत समझिए, ऐसा करने की कोशिश की गई है। वे गाने की फाइलों पर भी DRM का काम करते हैं।)
हालाँकि, डिस्सैड दृष्टिकोण के लिए चेतावनी हैं। चर नाम गैर-मौजूद हैं; ऐसी कोई भी चीज आपके सीपीयू में मौजूद नहीं है। लाइब्रेरी कॉल नरक के रूप में भ्रमित कर रहे हैं और अक्सर आगे के बायनेरिज़ को अलग करने की आवश्यकता होती है। और असेंबली कठिन परिस्थितियों में पढ़ने के लिए नरक के रूप में कठिन है।
अधिकांश पेशेवर प्रोग्रामर बिना सिर दर्द के असेंबली लैंग्वेज को बैठ और पढ़ सकते हैं। एक शौकिया के लिए यह सिर्फ होने वाला नहीं है।
वैसे भी, यह कुछ हद तक स्पष्ट है, लेकिन मुझे आशा है कि यह मदद करता है। हर कोई मेरी तरफ से किसी भी तरह की गलतफहमी को दूर करने के लिए स्वतंत्र महसूस कर सकता है; इसे बीते एक अर्सा हो गया है। ;)