क्या पीई फ़ाइल से डॉस स्टब और डॉस हेडर को हटाना संभव है ??पीई फ़ाइल से डीओएस स्टब निकालें
उत्तर
फ़ाइल प्रारूप को तोड़ने के बिना इसे हटाने का कोई आसान तरीका नहीं है।
लेकिन ehm, this मिला।
डॉस स्टब को हटाने से डॉस हेडर के साथ कुछ लेना देना नहीं है। हां, डॉस स्टब को हटाना संभव है (क्योंकि अब इसका उपयोग नहीं किया जाता है)। आप डॉस हेडर के आकार को अपने न्यूनतम तक भी कम कर सकते हैं (एमजेड + पीई हेडर पर कूदें)। लेकिन आप डॉस हेडर को पूरी तरह से हटा नहीं सकते हैं। अन्यथा, विंडोज लोडर आपकी छवि को शुरू करने से इंकार कर देगा अगर एमजेड और पीई हेडर पर कूद लापता हो।
पीई फ़ाइल किसी IMAGE_DOS_HEADER के साथ शुरू होनी चाहिए जो कि किसी भी समय IMAGE_NT_HEADERS संरचना द्वारा शुरू की जाती है जो आधुनिक पीई फ़ील्ड को परिभाषित करता है।
IMAGE_DOS_HEADER में दो अनिवार्य फ़ील्ड हैं - e_magic को IMAGE_DOS_SIGNATURE मान (जो ASCII में 'MZ' जैसा दिखता है) और e_lfanew को IMAGE_NT_HEADERS की शुरुआत तक फ़ाइल की शुरुआत से ऑफ़सेट होना चाहिए।
इन दो क्षेत्रों के अलावा, शेष IMAGE_DOS_HEADER Windows 16-बिट विंडोज के लिए वैकल्पिक है और शून्य हो सकता है, और डॉस स्टब वैकल्पिक है और छोड़ा जा सकता है।
न्यूनतम अनुरूप पीई फ़ाइल एक IMAGE_DOS_HEADER के साथ शुरू होती है जहां e_magic IMAGE_DOS_SIGNATURE पर सेट होता है और e_lfanew आकार (IMAGE_DOS_HEADER) पर सेट होता है, तुरंत IMAGE_NT_HEADERS द्वारा पीछा किया जाता है।
आप डॉस हेडर के आकार को "न्यूनतम" में कम नहीं कर सकते हैं। दुर्भाग्यवश IMAGE_DOS_HEADER में अंतिम फ़ील्ड अंतिम फ़ील्ड है। इस प्रकार यह 64 बाइट्स का एक निश्चित आकार है।
मैं फ़ाइल प्रारूप को तोड़ सकता हूं लेकिन मुझे यह जानने की जरूरत है कि exe को बाधित किए बिना इसे कैसे किया जाए। – user1232138
यदि आप फ़ाइल प्रारूप को तोड़ते हैं, तो यह वास्तव में एक पीई फ़ाइल नहीं है। आप एक कस्टम स्टब प्रदान कर सकते हैं। –