Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
VMPacker — ARM64 ELF वर्चुअल मशीन संरक्षण प्रणाली | Kitploit
उपकरण/GitHubGitHub/leochen-coremind/vmpacker
एम्बेडेड सिस्टम सुरक्षाशोषण फ्रेमवर्कIoT सुरक्षाभेद्यता विश्लेषणरिवर्स इंजीनियरिंगफज़िंगपेनिट्रेशन टेस्टिंगमोबाइल सुरक्षाहार्डवेयर सुरक्षाबाइनरी विश्लेषणएंटी-बॉट
47717045 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
GitHub
leochen-coremind/vmpacker

VMPacker

ARM64 ELF वर्चुअल मशीन संरक्षण प्रणाली

रिपॉजिटरी देखें

🛡️ VMPacker

ARM64 ELF वर्चुअल मशीन संरक्षण प्रणाली

ARM64 नेटिव निर्देशों को कस्टम VM बाइटकोड में अनुवाद करें फंक्शन-स्तरीय कोड सुरक्षा के लिए

🇨🇳 中文文档 • विशेषताएँ • आर्किटेक्चर • त्वरित आरंभ • उपयोग • लाइसेंस


अवलोकन

VMPacker एक वर्चुअल मशीन सुरक्षा (VMP) प्रणाली है ARM64 (AArch64) Linux ELF बाइनरी के लिए। यह लक्ष्य फंक्शन के नेटिव ARM64 निर्देशों को एक मध्यवर्ती प्रस्तुति में डीकोड करता है, उन्हें कस्टम VM बाइटकोड में अनुवाद करता है, और ELF फ़ाइल में एक एम्बेडेड VM इंटरप्रेटर इंजेक्ट करता है। रनटाइम पर, संरक्षित फंक्शन VM इंटरप्रेटर द्वारा निष्पादित किए जाते हैं, न कि मूल रूप से।

मूल अवधारणा

root@kitploit:~
ARM64 Native Code  →  Decode  →  Translate  →  Custom VM Bytecode
                                                      ↓
                    Original ELF  ←  Inject  ←  VM Interpreter Stub

विशेषताएँ

🔄 निर्देश अनुवाद इंजन

  • 63 VM निर्देश — ALU, मेमोरी, ब्रांच, सिसकॉल और अधिक को कवर करते हैं
  • टेबल-संचालित डिकोडर — ARM आर्किटेक्चर संदर्भ मैनुअल पर आधारित पैटर्न मिलान
  • 121 ARM64 निर्देश समर्थित (बेस A64 100% कवरेज), जिनमें शामिल हैं:
    • अंकगणित/तर्क (ADD, SUB, MUL, AND, ORR, EOR, LSL, LSR, ASR, MVN, BIC, ORN, EON...)
    • गुणा-विस्तार (MADD, MSUB, SMADDL, SMSUBL, UMADDL, UMSUBL, SMULH, UMULH, UDIV, SDIV)
    • डेटा संचलन (MOV, MOVZ, MOVK, MOVN)
    • मेमोरी एक्सेस (LDR, STR, LDP, STP, LDPSW, LDADD, CAS, LDAR, STLR, LDAXR, STLXR — विभिन्न चौड़ाई और एड्रेसिंग मोड)
    • ब्रांच नियंत्रण (B, BL, BR, BLR, RET, B.cond, CBZ/CBNZ, TBZ/TBNZ)
    • सशर्त चयन (CSEL, CSINC, CSINV, CSNEG, CCMP, CCMN)
    • बिटफ़ील्ड (UBFM, SBFM, BFM, EXTR)
    • बिट हेरफेर (CLZ, CLS, RBIT, REV, REV16, REV32)
    • कैरी अंकगणित (ADC, ADCS, SBC, SBCS)
    • SIMD लोड/स्टोर (LD1, ST1)
    • सिस्टम/बैरियर (SVC, MRS, MSR, ADRP/ADR, DMB, DSB, ISB, HLT, BRK, PRFM)

🔐 बहु-स्तरीय सुरक्षा

🖥️ GUI

  • क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप ऐप Wails v2 (Go + Vue 3) के साथ निर्मित
  • Element Plus UI घटक
  • प्रतीक फंक्शन चयन + मैन्युअल फंक्शन इनपुट (पता श्रेणी द्वारा सुरक्षा)
  • वास्तविक समय लॉग आउटपुट के साथ एक-क्लिक सुरक्षा

आर्किटेक्चर

root@kitploit:~
vmp/
├── cmd/vmpacker/          # CLI प्रवेश बिंदु
│   ├── main.go            # CLI तर्क पार्सिंग + ऑर्केस्ट्रेशन
│   └── vm_interp.bin      # संकलित VM इंटरप्रेटर (GCC, go:embed)
│
├── pkg/                   # Go कोर लाइब्रेरी
│   ├── arch/arm64/        # ARM64 आर्किटेक्चर समर्थन
│   │   ├── decoder.go     # टेबल-संचालित निर्देश डिकोडर (vm.Decoder को लागू करता है)
│   │   ├── decode_*.go    # डिकोड पैटर्न टेबल (DP-IMM/DP-REG/Branch/LdSt)
│   │   ├── translator.go  # ARM64 → VM बाइटकोड अनुवादक
│   │   ├── tr_alu.go      # ALU निर्देश अनुवाद
│   │   ├── tr_branch.go   # ब्रांच निर्देश अनुवाद
│   │   ├── tr_loadstore.go # मेमोरी निर्देश अनुवाद
│   │   ├── tr_bitfield.go # बिटफ़ील्ड निर्देश अनुवाद
│   │   └── tr_special.go  # विशेष निर्देश (ADRP/ADR)
│   ├── vm/                # VM ISA परिभाषाएँ
│   │   ├── types.go       # साझा प्रकार + इंटरफ़ेस (Decoder/Translator/Packer)
│   │   ├── opcodes.go     # 58+ VM opcode परिभाषाएँ (यादृच्छिक रूप से मैप किए गए मान)
│   │   └── disasm.go      # VM बाइटकोड डिस्सेम्बलर
│   └── binary/elf/        # ELF बाइनरी हेरफेर
│       ├── packer.go      # ELF VMP इंजेक्शन (PT_NOTE अपहरण, ट्रैम्पोलिन जनरेशन)
│       └── trampoline.go  # ट्रैम्पोलिन कोड जनरेशन
│
├── stub/                  # C VM इंटरप्रेटर (PIC फ्लैट बाइनरी में संकलित)
│   ├── vm_interp_clean.c  # इंटरप्रेटर मुख्य लूप + प्रवेश बिंदु
│   ├── vm_types.h         # VM CPU संदर्भ (vm_ctx_t)
│   ├── vm_opcodes.h       # C-पक्ष opcode परिभाषाएँ (opcodes.go के साथ सिंक)
│   ├── vm_decode.h        # बाइटकोड पढ़ने की उपयोगिताएँ
│   ├── vm_token.h         # टोकन एन्कोड/डिकोड + डिस्क्रिप्टर टेबल
│   ├── vm_dispatch.h      # अप्रत्यक्ष प्रेषण जंप टेबल
│   ├── vm_crc.h           # CRC32 अखंडता जाँच
│   ├── vm_sections.h      # हैंडलर सेक्शन स्कैटरिंग मैक्रो
│   ├── vm_interp.lds      # लिंकर स्क्रिप्ट
│   └── vm_handlers/       # मॉड्यूलर निर्देश हैंडलर
│       ├── h_alu.h        # अंकगणित/तर्क संचालन
│       ├── h_mem.h        # मेमोरी एक्सेस
│       ├── h_branch.h     # ब्रांच/जंप
│       ├── h_cmp.h        # तुलना/सशर्त
│       ├── h_mov.h        # डेटा संचलन
│       ├── h_stack.h      # स्टैक (PUSH/POP)
│       └── h_system.h     # सिस्टम (SVC/MRS/BLR/BR/RET)
│
├── vmp-gui/               # Wails GUI फ्रंटएंड
│   ├── frontend/          # Vue 3 + Element Plus
│   └── backend/           # Go बैकएंड बाइंडिंग
│
└── build/                 # पूर्व-संकलित उपकरण + परीक्षण कलाकृतियाँ

मॉड्यूलर डिज़ाइन

परियोजना एक इंटरफ़ेस-संचालित मॉड्यूलर आर्किटेक्चर का उपयोग करती है, जिससे नए ISA और बाइनरी प्रारूपों तक विस्तार करना आसान हो जाता है:

root@kitploit:~
// आर्किटेक्चर डिकोडर इंटरफ़ेस — x86, RISC-V तक विस्तार योग्य
type Decoder interface {
    Decode(raw uint32, offset int) Instruction
    InstName(op int) string
}

// बाइटकोड अनुवादक इंटरफ़ेस
type Translator interface {
    Translate(instructions []Instruction) (*TranslateResult, error)
}

// बाइनरी प्रारूप इंजेक्टर इंटरफ़ेस — PE, Mach-O तक विस्तार योग्य
type Packer interface {
    Process() error
}

सुरक्षा पाइपलाइन

root@kitploit:~
graph LR
    A[Input ELF] --> B[Locate Target Function]
    B --> C[Extract ARM64 Instructions]
    C --> D[Decode ARM64]
    D --> E[Translate to VM Bytecode]
    E --> F[XOR Encrypt Bytecode]
    F --> G[Inject VM Interpreter]
    G --> H[Generate Trampoline]
    H --> I[Replace Function Entry]
    I --> J[Output Protected ELF]

त्वरित आरंभ

पूर्वापेक्षाएँ

  • Go 1.21+
  • GCC (aarch64-linux-gnu-gcc) — स्टब को संकलित करने के लिए
  • Linux ARM64 या क्रॉस-कम्पाइलेशन वातावरण

स्थापना

root@kitploit:~
git clone https://github.com/LeoChen-CoreMind/VMPacker.git
cd VMPacker
make all

उपयोग

फंक्शन नाम से सुरक्षा

root@kitploit:~
# एकल फंक्शन की सुरक्षा
./vmpacker -func check_license -v -o protected.elf original.elf

# एकाधिक फंक्शन की सुरक्षा
./vmpacker -func "check_license,verify_token" -v -o protected.elf original.elf

पता श्रेणी द्वारा सुरक्षा

root@kitploit:~
# पता श्रेणी निर्दिष्ट करें
./vmpacker -addr "0x4006AC-0x400790:main" -v -o protected.elf original.elf

# मिश्रित मोड
./vmpacker -addr "0x4006AC-0x400790:main" -func verify -o protected.elf original.elf

ELF जानकारी का निरीक्षण करें

root@kitploit:~
./vmpacker -info input.elf

CLI विकल्प

निर्माण

VM इंटरप्रेटर स्टब संकलित करें

root@kitploit:~
# मानक निर्माण (GCC)
aarch64-linux-gnu-gcc -Os -nostdlib -fPIC -ffreestanding \
  -o stub.elf stub/vm_interp_clean.c \
  -T stub/vm_interp.lds
aarch64-linux-gnu-objcopy -O binary stub.elf vm_interp.bin

CLI टूल संकलित करें

root@kitploit:~
go build -o vmpacker ./cmd/vmpacker/

GUI बनाएँ

root@kitploit:~
cd vmpacker
make gui

VM ISA संदर्भ

VMPacker यादृच्छिक रूप से मैप किए गए ऑपकोड मानों के साथ एक कस्टम निर्देश सेट आर्किटेक्चर (ISA) को परिभाषित करता है ताकि रिवर्स-इंजीनियरिंग कठिनाई बढ़ सके।

📖 पूर्ण ऑपकोड तालिका और एन्कोडिंग विवरण के लिए, चीनी दस्तावेज़ीकरण देखें।

निर्देश श्रेणियाँ

रोडमैप

  • पूर्ण GUI एकीकरण — पूर्ण GUI ↔ बैकएंड सुरक्षा इंजन एकीकरण
  • हाइब्रिड मोड — आंशिक नेटिव निष्पादन + आंशिक VM सुरक्षा
  • गतिशील ऑपकोड मैपिंग — प्रति सुरक्षा रन अद्वितीय ISA मैपिंग उत्पन्न करें

योगदान

योगदान का स्वागत है! कृपया इन दिशानिर्देशों का पालन करें:

  1. रिपॉजिटरी को फोर्क करें
  2. एक फीचर ब्रांच बनाएँ: git checkout -b feature/new-arch
  3. अपने परिवर्तनों को कमिट करें: git commit -m 'feat: add x86_64 decoder'
  4. ब्रांच को पुश करें: git push origin feature/new-arch
  5. एक पुल रिक्वेस्ट बनाएँ

कमिट परंपरा

हम पारंपरिक कमिट का पालन करते हैं:

  • feat: नई सुविधा
  • fix: बग फिक्स
  • refactor: कोड रीफैक्टरिंग
  • docs: दस्तावेज़ीकरण
  • test: परीक्षण

लाइसेंस

यह परियोजना AGPL-3.0 लाइसेंस के तहत लाइसेंस प्राप्त है।

AGPL-3.0 क्यों:

  • ✅ मजबूत कॉपीलेफ्ट — किसी भी संशोधन या व्युत्पन्न कार्य को समान लाइसेंस के तहत ओपन-सोर्स किया जाना चाहिए
  • ✅ नेटवर्क उपयोग खंड — इस सॉफ़्टवेयर की कार्यक्षमता को नेटवर्क सेवा के रूप में प्रदान करने पर भी स्रोत प्रकटीकरण आवश्यक है
  • ✅ कोर तकनीक की रक्षा करता है — सुरक्षा इंजन के क्लोज्ड-सोर्स व्यावसायिक उपयोग को रोकता है
  • ✅ समुदाय के अनुकूल — अध्ययन, शोध और सुधार के लिए मुफ्त — सुधारों को वापस साझा किया जाना चाहिए
  • ✅ वाणिज्यिक लाइसेंसिंग — क्लोज्ड-सोर्स व्यावसायिक उपयोग के लिए, वाणिज्यिक लाइसेंस के लिए लेखक से संपर्क करें

⚠️ अस्वीकरण

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

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

उपयोगकर्ता सूचना:

  1. इस सॉफ़्टवेयर का उपयोग करते समय आपको अपने क्षेत्राधिकार में सभी लागू कानूनों और विनियमों का पालन करना होगा
  2. इस सॉफ़्टवेयर का किसी भी अवैध उद्देश्य के लिए उपयोग सख्त वर्जित है, जिसमें शामिल है लेकिन यहीं तक सीमित नहीं: मैलवेयर विकास, सुरक्षा ऑडिट को दरकिनार करना, दूसरों के बौद्धिक संपदा अधिकारों का उल्लंघन करना, या कंप्यूटर सिस्टम सुरक्षा से समझौता करना
  3. लेखक इस सॉफ़्टवेयर के किसी भी व्यक्ति द्वारा उपयोग से उत्पन्न किसी भी प्रत्यक्ष या अप्रत्यक्ष परिणाम के लिए उत्तरदायी नहीं होंगे
  4. इस सॉफ़्टवेयर को डाउनलोड करने, उपयोग करने या वितरित करने से, आप स्वीकार करते हैं कि आपने उपरोक्त शर्तों को पढ़ लिया है और उनसे सहमत हैं

लेखक

LeoChen — @LeoChen-CoreMind

कॉपीराइट © 2026 LeoChen। सर्वाधिकार सुरक्षित।

टूल डाउनलोड करें
परततकनीकविवरण
VM सुरक्षाकस्टम ISAयादृच्छिक रूप से मैप किए गए ऑपकोड — रिवर्स इंजीनियर सीधे निर्देश अर्थ की पहचान नहीं कर सकते
OpcodeCryptorप्रति-निर्देश ऑपकोड एन्क्रिप्शनenc[pc] = op[pc] ^ (key ^ (pc * 0x9E3779B9))
बाइटकोड उलटनानिष्पादन क्रम उलटनानिर्देश उल्टे क्रम में संग्रहीत; इंटरप्रेटर पीछे की ओर चलता है
टोकन प्रविष्टि3-निर्देश ट्रैम्पोलिनमूल फंक्शन को टोकनीकृत प्रविष्टि से बदल दिया जाता है, वास्तविक बाइटकोड स्थान छिपा हुआ
अप्रत्यक्ष प्रेषणफंक्शन पॉइंटर जंप टेबलरनटाइम पर स्टैक पर भरा जाता है, IDA क्रॉस-रेफरेंस तोड़ता है
मुख्य इंटरफ़ेसफंक्शन विश्लेषणसुरक्षा विकल्प
फंक्शन सूचीविश्लेषण और चयनसुरक्षा विकल्प
सुरक्षा निष्पादनसुरक्षा पूर्ण
वास्तविक समय लॉगसुरक्षा पूर्ण
विकल्पडिफ़ॉल्टविवरण
-func—सुरक्षा के लिए फंक्शन नाम (अल्पविराम से अलग)
-addr—पते द्वारा सुरक्षा (0xSTART-0xEND[:name])
-oinput.vmpआउटपुट फ़ाइल पथ
-vfalseविस्तृत आउटपुट (डिस्सेम्बली दिखाएँ)
-striptrueप्रतीक तालिका हटाएँ
-debugfalseARM64 → VM बाइटकोड डीबग मैपिंग फ़ाइल उत्पन्न करें
-tokentrueटोकन-आधारित प्रविष्टि मोड
-infofalseकेवल ELF जानकारी प्रिंट करें
श्रेणीगिनतीविवरण
डेटा संचलन3MOV_IMM64, MOV_IMM32, MOV_REG
अंकगणित/तर्क21ADD, SUB, MUL, XOR, AND, OR, SHL, SHR, ASR, NOT, ROR, UMULH + _IMM variants
मेमोरी एक्सेस8LOAD/STORE 8/16/32/64
ब्रांच/जंप13JMP, JE, JNE, JL, JGE, JGT, JLE, JB, JAE, JBE, JA, TBZ, TBNZ
तुलना6CMP, CMP_IMM, CCMP_REG, CCMP_IMM, CCMN_REG, CCMN_IMM
स्टैक2PUSH, POP
सिस्टम/विशेष8NOP, HALT, RET, CALL_NATIVE, CALL_REG, BR_REG, SVC, MRS
SIMD2VLD16, VST16
कुल63