2010-11-14 16 views
5

मुझे एक साधारण पॉलिमॉर्फिक इंजन प्रोग्राम करना है। मैं लिनक्स (32-बिट) का उपयोग करता हूं और मैं असेंबली और सी में कोड कर सकता हूं। मुझे नहीं पता कि कैसे शुरू करें।सरल पॉलिमॉर्फिक इंजन

क्या आप मुझे ऐसे इंजन के निर्माण के लिए एक स्कीमा दे सकते हैं? (यह संभव है?) डिक्रिप्ट दिनचर्या को जोड़ने के लिए शुरुआत में

  1. एक फ़ाइल
  2. एक बफर में यह एन्क्रिप्ट करता है के कोड अनुभाग पढ़ें,
  3. मेकअप अंतरिक्ष: मेरा विचार एक प्रोग्राम है जो करना है
  4. कार्यक्रम के कोड अनुभाग के अंदर नया बफर लिखें।

क्या यह सही है? क्या यह ऐसे इंजन के संचालन को प्रतिबिंबित करता है?

+0

ट्यूटोरियल जो अच्छा दिखता है: https://www.pelock.com/articles/polymorphic-encryption-algorithms। @Twistd द्वारा लिंक-केवल उत्तर के रूप में पोस्ट किया गया था। –

उत्तर

3

मूल स्कीमा आपके द्वारा वर्णित वर्णन से काफी अलग है। आम तौर पर केवल वायरस निकाय एन्क्रिप्टेड होता है, न कि संपूर्ण कोड खंड। एक साधारण वायरस पर विचार करें जो या तो कोड सेक्शन बढ़ाता है, या तो उसके शरीर के लिए एक नया बनाता है। अब, यह बहुरूपी बनाने के लिए, यदि आप एन्क्रिप्शन जोड़ सकते हैं और, गैर निरंतर होने के लिए decryptor कोड करना है जैसे:

1) nops बेतरतीब ढंग से (nop, add reg, 0, push reg; pop reg, आदि)

2) परिवर्तन सम्मिलित साथ कार्यक्रम प्रवाह (jmp next, clc; jc next, आदि)

3) एक ही गणित प्रभाव (add eax, 3 साथ निर्देशों का उपयोग ->add eax, 9; sub eax, 6)

बहुरूपी मतलब है कि यह एनकोडिंग की एक निश्चित संख्या हो सकता है , इसलिए एक बनाने का सबसे आसान तरीका कई ब्लॉक में डिक्रिप्टर कोड को तोड़ना है, और प्रत्येक के लिए समान लंबाई के साथ कई एन्कोडिंग प्रदान करना है।

संपादित करें: हाँ, यह वायरस निकाय का हिस्सा है। इसका उपयोग करने के लिए आप वायरस बॉडी में इन सभी "ईंटें" डालते हैं, और जब कोई अन्य फाइल संक्रमित होती है, तो आप इसके लिए डिस्क्रिप्टर का एक यादृच्छिक संस्करण बनाते हैं।

+0

इस उत्तर के लिए धन्यवाद! यह मुझे प्रक्रिया की एक अच्छी तस्वीर दे दी। तो इंजन वायरस का एक हिस्सा नहीं है जिसका कुछ स्वतंत्र अस्तित्व है (एक कार्यक्रम के रूप में मेरा मतलब है)? –

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