
Rust-आधारित Windows PE मैनुअल लोडर जो मेमोरी से x86/x64 एक्जीक्यूटेबल को मैप और निष्पादित करता है, शैक्षिक अनुसंधान के लिए आंतरिक लोडर व्यवहार और PE संरचना का प्रदर्शन करता है।
Rust PE लोडर / मैनुअल मैपिंग कार्यान्वयन
IronPE Rust में लिखा गया एक न्यूनतम Windows PE मैनुअल लोडर है जो x86 और x64 दोनों PE फ़ाइलों के लिए है।
यह प्रोजेक्ट मेरे पिछले प्रोजेक्ट dotNetPELoader का Rust पुनःकार्यान्वयन है, जिसने C# में एक मैनुअल PE लोडर लागू किया था।
IronPE का लक्ष्य यह पता लगाना है कि Windows आंतरिक रूप से Portable Executables को कैसे लोड करता है और यह प्रदर्शित करना है कि इस प्रक्रिया को Rust में कैसे लागू किया जा सकता है।
वाह्ह्ह्ह्ह्ह्ह्ह्ह्ह!
यदि आपको यह प्रोजेक्ट उपयोगी या जानकारीपूर्ण लगे, तो एक ⭐ की सराहना होगी!
यह प्रोजेक्ट केवल शैक्षिक और शोध उद्देश्यों के लिए है।
इसे समझने में मदद करने के लिए डिज़ाइन किया गया है:
यह प्रोजेक्ट मेरे पिछले कार्यान्वयन से प्रेरित था:
उस प्रोजेक्ट में, मैंने .NET और WinAPI का उपयोग करके एक PE लोडर लागू किया था।
IronPE उसी अवधारणा को Rust में फिर से लिखता है, जो कम स्तर की Windows API पहुंच की अनुमति देते हुए बेहतर मेमोरी सुरक्षा प्रदान करता है।
इस प्रोजेक्ट का उद्देश्य शैक्षिक है, बेहतर समझने के लिए:
IronPE मेमोरी से PE फ़ाइल निष्पादित करने के लिए निम्नलिखित चरण करता है:
VirtualAlloc का उपयोग करके मेमोरी आवंटित करेंLoadLibrary और GetProcAddress का उपयोग करके आयात हल करेंयह प्रक्रिया Windows PE लोडर के व्यवहार का अनुकरण करती है।
x64 PE को x86 लोडर द्वारा लोड नहीं किया जा सकता, और इसके विपरीत भी।
आवश्यकताएँ:
cargo, rustc)प्रोजेक्ट बनाएँ:
cd IronPE
build.bat
IronPE.exe --coffee
IronPE.exe --x86 <x86_pe_file>
IronPE.exe --x64 <x64_pe_file>
उदाहरण:
IronPE.exe --x86 Win32\mimikatz.exe
IronPE.exe --x64 x64\mimikatz.exe