
TinyLoad v7.3
ओपन सोर्स Windows x64 PE पैकर और क्रिप्टर। यह कस्टम वर्चुअल मशीन का उपयोग करके निष्पादन योग्य फ़ाइलों (executables) को संपीड़ित और एन्क्रिप्ट करता है, तथा उन्हें एक स्व-निष्कर्षण स्टब (self-extracting stub) में बदल देता है।
TinyLoad v7.3 - विंडोज़ के लिए PE पैकर
TinyLoad x64 एक्ज़ीक्यूटेबल के लिए एक PE क्रिप्टर/पैकर है। यह एक इनपुट exe को अलग-अलग सुरक्षा परतों के साथ पैक करता है ताकि उसे रिवर्स इंजीनियर न किया जा सके। यह एक सिंगल .cpp फ़ाइल है और इसकी कोई बाहरी निर्भरता नहीं है।
यह कैसे काम करता है
TinyLoad आपके payload को अपनी एक कॉपी में जोड़ देता है। जब पैक किया गया exe चलता है, तो यह payload को निकालता है, उसे डिक्रिप्ट करता है, और उसे सीधे मेमोरी में execute करता है — बिना original को कभी डिस्क पर लिखे। हर बार जब आप कुछ पैक करते हैं, तो VM opcodes को यादृच्छिक रूप से बदलकर 4 स्वतंत्र रूप से keyed subtables में रखा जाता है, ताकि कोई भी दो builds एक जैसे न हों।
डाउनलोड
releases से precompiled binary लें या इसे स्वयं build करें।
सोर्स से build करना
आपको MinGW (g++) चाहिए। बस यह चलाएँ:
g++ -o TinyLoad.exe TinyLoad.cpp -static -O2 -s
या build.bat का उपयोग करें।
उपयोग
TinyLoad.exe --i <input> [--o <output>] [--vm] [--c] [--veh]
| फ़्लैग | यह क्या करता है |
|---|---|
--i <file> | पैक करने के लिए इनपुट exe |
--o <file> | आउटपुट पथ (डिफ़ॉल्ट: input_packed.exe) |
--vm | VM एन्क्रिप्शन |
--c | LZ77 कम्प्रेशन |
--veh | VEH page fault डिक्रिप्शन |
--noconsole | GUI subsystem |
आपको --vm, --c, या --veh में से कम से कम 1 की आवश्यकता है।
उदाहरण
DIE इमेज
कम्प्रेशन
हैश चेन मैचिंग और 64KB स्लाइडिंग विंडो के साथ कस्टम LZ77 कम्प्रेशन। कम्प्रेशन पहले चलता है, फिर उसके ऊपर VM एन्क्रिप्शन लगता है, ताकि compressed डेटा में मौजूद पैटर्न भी छिप जाएँ।
VM एन्क्रिप्शन
कस्टम 28-opcode वर्चुअल मशीन जो स्टब के अंदर चलती है। opcodes को यादृच्छिक रूप से 4 subtables (हर एक में 8) में रखा जाता है और हर subtable को payload डेटा से व्युत्पन्न एक अलग कुंजी से XOR एन्क्रिप्ट किया जाता है। एक subtable को क्रैक करने पर 28 में से अधिकतम 8 opcodes ही पता चलते हैं। सिफर स्वयं एक 128-बिट स्ट्रीम सिफर है जो rotl और rotr key mixing का उपयोग करता है और पूरी तरह से VM इंटरप्रेटर के अंदर चलता है। payload को XXTEA का उपयोग करके एन्क्रिप्ट किया जाता है।
VEH page fault डिक्रिप्शन
--veh सक्षम होने पर, सभी PE सेक्शन पेज PAGE_NOACCESS के रूप में मैप हो जाते हैं। जब प्रोग्राम किसी पेज को एक्सेस करने की कोशिश करता है, तो यह एक exception ट्रिगर करता है; एक vectored exception handler उस 1 पेज को डिक्रिप्ट करता है और सही protection सेट कर देता है। एक watchdog thread बैकग्राउंड में चलता रहता है और किसी भी ऐसे पेज को फिर से एन्क्रिप्ट कर देता है जिसे 200ms में छुआ न गया हो। किसी भी क्षण आपके प्रोग्राम का अधिकांश हिस्सा मेमोरी में एन्क्रिप्टेड रहता है, इसलिए मेमोरी डंप केवल वही कैप्चर कर पाते हैं जो हाल ही में एक्सेस किया गया था।
एंटी डंप
4 सबसे महत्वपूर्ण APIs (GetModuleHandleA, GetProcAddress, ExitProcess, VirtualAlloc) स्टब के अंदर wrapper functions के माध्यम से redirect हो जाते हैं। payload लोड होने के बाद पूरी import directory को zero कर दिया जाता है, ताकि मेमोरी डंप import table को reconstruct न कर सकें।
ग्राफ़:
लाइसेंस
MIT
साइड नोट्स
- ऐसी बहुत सी विशेषताएँ हैं जिन्हें मैंने readme में नहीं डाला; आप कोड खुद पढ़ सकते हैं या changelog.md देख सकते हैं
- यह मेरे द्वारा परीक्षण की गई अधिकांश फ़ाइलों पर काम करता है; अगर यह आपकी फ़ाइल पर काम न करे, तो issue खोलें और मैं देखूँगा
- सुझाव और feature विचार भी issues में डालें
- अगर आप इसका उपयोग करते हैं, तो एक star बहुत मदद करता है <3
- भविष्य के अपडेट के लिए https://iamsopotatoe-coder.github.io/TinyLoad/#blog पर ब्लॉग देखें
- हाँ, AVs पैकर्स को flag करते हैं, यह अपेक्षित है। (फिलहाल virustotal पर 9 detections हैं; इसके साथ पैक की गई किसी भी फ़ाइल पर 9 detections आते हैं, content मायने नहीं रखता)
- कृपया इसके साथ malware पैक न करें; यह legitimate उद्देश्यों के लिए है