2010-05-03 18 views
18

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

तो संक्षेप में, वर्तमान उपयोग क्या रिवर्स इंजीनियरिंग उपज आज करता है? और व्यापार को सीखने के तरीके पर कुछ बुनियादी जानकारी कैसे प्राप्त की जा सकती है (फिर इसे चरण-दर-चरण नहीं होना चाहिए, केवल कुछ भी जो सुराग के माध्यम से सहायक हो सकता है)।

उत्तर

14

जैसा कि मैंने पहले बताया है, मुख्य बात यह है कि मैलवेयर संबंधित है। स्कैनर कंपनियों के लिए काम करने वाले शोधकर्ताओं के प्राथमिक कार्यों में से एक नमूना लेना और प्रयोगशाला या वर्चुअल वातावरण में इसे डीबग करना है।

वही लाइनों के साथ, बहुत से सुरक्षा संबंधित क्षेत्र हैं जो रिवर्स इंजीनियरिंग/डिस्सेप्लर का उपयोग करते हैं। कंप्यूटर फोरेंसिक एक ऐसा क्षेत्र है जहां आप देखना चाहते हैं। एक जब्त कंप्यूटर में विभिन्न गतिविधियों के लिए कमांड और कंट्रोल प्रोग्राम (लेकिन कोई स्रोत नहीं) हो सकता है (कमांड और कंट्रोल बोनेट, डीओएस हमले प्रोग्राम इत्यादि)। रिवर्स इंजीनियरिंग द्वारा संरक्षित डेटा स्कीमों को अवरुद्ध करना आमतौर पर पासवर्ड या कुंजी को ढूंढने के बजाए सुरक्षा के लिए आसान होता है।

हार्डवेयर और सॉफ्टवेयर दोनों में डीआरएम/सुरक्षा सुरक्षा एक बड़ा रिवर्स इंजीनियरिंग क्षेत्र है।ध्यान दें कि यह समस्या (और कानून) के "पक्ष" पर हो सकता है। डीवीडी कॉपी प्रोग्राम्स, सुरक्षा हटाने, अन्य उपकरणों पर आईट्यून्स संगीत चलाने की क्षमता, वाईआई पर होमब्री प्रोग्राम्स चलाने की क्षमता, एक पीएस 3 ग्रिड को समानांतर करने, आईफोन को अनलॉक करने, आदि इत्यादि पर विचार करें। जाहिर है कि कई गैर-कानूनी विकल्प भी हैं (विपरीत अभियंता एक स्लॉट मशीन टाइमर, एटीएम मशीन प्रमाणीकरण, आदि)।

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

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

आप जिस मार्ग पर लेते हैं उसके आधार पर आपको अन्य चीजों में पृष्ठभूमि की आवश्यकता होगी लेकिन असेंबली जानना आपके सबसे महत्वपूर्ण कौशल होने जा रहा है। सिर्फ "मैं समझता हूं कि वह कोड अधिकतर" दृष्टिकोण क्या है - आपको स्क्रैच से सामान लिखने में सक्षम होना चाहिए और समझना चाहिए कि कोड का एक छोटा सा कोड क्या करता है और अन्य तरीकों को समझता है जो उसी कोड को लिखा जा सकता है। असेंबली (कोडिंग) में किसी समस्या का समाधान ढूंढना और कोडिंग करना शामिल है। डिस्सेप्लर में यह पता लगाना शामिल है कि समस्या को हल करने के लिए शुरू में कई सारे विविध समाधानों का उपयोग किया गया था - बहुत कठिन;)

+1

+1 उन विभिन्न क्षेत्रों को चित्रित करने के लिए जिन्हें आप जा सकते हैं। मैंने मलमानी सीखना शुरू कर दिया क्योंकि मैलवेयर एक अज्ञात अवधारणा था। एएसएम कोड के माध्यम से नोटपैड या कैलक्यूलेटर को बढ़ाने का प्रयास करें, यह कोड महसूस करने के लिए सीखना शुरू करने का एक अच्छा तरीका है :) – anonymous

2

सबसे बड़ी संभावित उपयोग मैं देख रहा हूँ में से एक साम्बा की तरह परियोजना (http://www.samba.org/)

वहाँ हमेशा इस तरह के स्वामित्व सिस्टम बंद किया जा जा रहे हैं और हम हमेशा इंजीनियरों को उल्टा करने के लिए इन ताकि अन्य लोग भी इसे उपयोग कर सकते हैं की जरूरत है।

5

मैंने पढ़ा है कि मैलवेयर और ट्रोजन (वायरस के बारे में भी निश्चित नहीं) के आंतरिक काम को समझने के लिए सुरक्षा क्षेत्र में रिवर्स-इंजीनियरिंग का उपयोग किया जाता है। सुरक्षा क्षेत्र में उपयोग किए जाने वाले रिवर्स इंजीनियरिंग पर आलेखों के लिए, www.openrce.org देखें।

इसके अलावा रिवर्स-इंजीनियरिंग में हमेशा डिस्सेप्लर शामिल नहीं होते हैं। जावा या सी # जैसी भाषाओं में लिखे गए अनुप्रयोगों के लिए, डीकंपलर आमतौर पर डिस्सेबलर्स की तुलना में कोड के बारे में अधिक जानकारी प्राप्त करते हैं।

चूंकि मेरी निजी रुचि Win32 रिवर्स-इंजीनियरिंग में है, इसलिए मैं केवल इस विशेष ओएस के लिए अपनी राय समझा सकता हूं। लिनक्स रिवर्स-इंजीनियरिंग में आपकी मदद नहीं कर सकता है :(

मुझे IDA Pro 4.9 का एक उत्कृष्ट डिस्सेबलर का फ्रीवेयर संस्करण मिलता है। यह सिस्टम पुस्तकालयों का पता लगाता है ताकि आप गलत स्थानों के आसपास समय बिताने में व्यतीत न करें :) OllyDbg जैसे डीबगर, आप Win32 के लिए किसी भी रिवर्सिंग प्रोजेक्ट से निपटने के लिए तैयार हैं।

यदि आप Win32 मार्ग पर जाते हैं, तो आपको अंततः पीई संरचना, शायद अनपॅकिंग और सामान को समझने की आवश्यकता होगी, लेकिन अब मुख्य बात x86 असेंबली को समझना है। Win32 ऐप्स के लिए डिस्सेम्बल कोड को समझने में अपेक्षाकृत आसान है यदि आपने सी

32 बिट असेंबली को बेहतर ढंग से समझने के लिए, या तो अपने स्वयं के ऐप्स को अलग करें और देखें कि आपका स्रोत कोड कैसे डिस्सेप्टर्स से मेल खाता है आउटपुट या Iczelion's Win32 Assembly tutorials के माध्यम से असेंबली भाषा के साथ Win32 API ऐप्स को कोड करने का तरीका जानें।

3

एफएफएमपीईजी के वर्तमान रखरखाव ने अपनी प्रारंभिक इंजीनियरिंग वीडियो कोडेक्स को रिवर्स इंजीनियरिंग वीडियो कोडेक्स प्राप्त किया ताकि वह लिनक्स पर काम करने के लिए वीडियो प्राप्त कर सके। उनका blog बहुत रोचक है और उसके पास recent post एक पुस्तक के बारे में बात कर रही थी जिसे वह शुरू करता था जब वह चाहता था।

2

एक किताब पीछे नहीं है: रिवर्स इंजीनियरिंग का राज एलदाद Eilam द्वारा लिखित; इलियट Chikofsky mybe मददगार चार आप

+0

अच्छा चिल्लाओ, वह किताब कमाल है! – Elliott

0

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

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