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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mwemu — Pure Rust x86 हार्डवेयर एमुलेटर और Windows प्रक्रिया सिम्युलेटर जो मैलवेयर विश्लेषण, शेलकोड एमुलेशन और पेलोड अनपैकिंग के लिए है। यह 32/64-bit PE एक्जीक्यूटेबल, Metasploit, Cobalt Strike और जटिल मैलवेयर परिवारों का समर्थन करता है। | Kitploit
उपकरण/GitHubGitHub/mwemuorg/mwemu
शोषण फ्रेमवर्करिवर्स इंजीनियरिंगशेलकोडमालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubmwemuorg/mwemu

mwemu

Pure Rust x86 हार्डवेयर एमुलेटर और Windows प्रक्रिया सिम्युलेटर जो मैलवेयर विश्लेषण, शेलकोड एमुलेशन और पेलोड अनपैकिंग के लिए है। यह 32/64-bit PE एक्जीक्यूटेबल, Metasploit, Cobalt Strike और जटिल मैलवेयर परिवारों का समर्थन करता है।

रिपॉजिटरी देखें
313447 दिन पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
वेबसाइट

MWEmu

CI mwemu crates.io libmwemu crates.io Docs.rs PyPI License: GPL v3 MSRV

आधिकारिक दस्तावेज़ीकरण

mwemu.github.io

यह क्या है?

यह एक हार्डवेयर एम्यूलेटर + OS प्रक्रिया सिम्युलेटर है जो शुद्ध रस्ट में लागू किया गया है।

यह दृष्टिकोण मैलवेयर विश्लेषण और अन्य चीजों (PE, शेलकोड आदि) के लिए बहुत सुविधाजनक है।

OS मुख्य रूप से विंडोज है, यह एक विंडोज प्रक्रिया का अनुकरण करता है, लिनक्स के लिए कुछ बुनियादी समर्थन है।

हार्डवेयर x86 32/64 बिट है, यह तेज़ और विश्वसनीय है।

MWEMU लोगो

सॉफ्टवेयर का उपयोग करने के तीन तरीके

  • mwemu कमांडलाइन https://github.com/mwemuorg/mwemu
  • libmwemu क्रेट https://crates.io/crates/libmwemu
  • pymwemu https://pypi.org/project/pymwemu/

scemu के बारे में नोट

परियोजना का नाम scemu से mwemu कर दिया गया है।

कुछ वीडियो

r2con2025 - mwemu से radare2 का उपयोग करके एक एम्यूलेशन क्षण के दौरान स्थैतिक विश्लेषण और विज़ुअलाइज़ेशन करना।

कुछ डेमो

विशेषताएँ

  • 📦 रस्ट सुरक्षा, मैलवेयर का अनुकरण करने के लिए अच्छा।

    • सभी निर्भरताएँ रस्ट में हैं।
  • ⚡ बहुत तेज़ एम्यूलेशन

    • बेंचमार्क
    • 25,767,432 निर्देश/सेकंड
    • प्रत्येक निर्देश को प्रिंट करते हुए 680,000 निर्देश/सेकंड -vv।
    • स्वयं परीक्षण करें: time mwemu -f test/exe64win_enigma.bin -6 -v -c 20000000 --cmd q
  • iced-x86 रस्ट डिस्सेम्बलर शानदार लाइब्रेरी द्वारा संचालित।

  • कमांडलाइन टूल, रस्ट लाइब्रेरी, और पायथन लाइब्रेरी।

  • पुनरावृत्ति डिटेक्टर।

  • मेमोरी और रजिस्टर ट्रैकिंग।

  • रंगीन।

  • एक विशिष्ट क्षण पर रुकें और स्थिति का पता लगाएं या उसे संशोधित करें।

  • 339 CPU निर्देश लागू किए गए।

  • 15 DLL के 260 winapi 32bits लागू किए गए।

  • 10 DLL के 204 winapi 64bits लागू किए गए।

  • सभी लिनक्स syscalls।

  • SEH चेन।

  • वेक्टरेड अपवाद हैंडलर।

  • PEB, TEB संरचनाएँ।

  • डायनामिक लिंकिंग।

  • IAT बाइंडिंग।

  • विलंब लोडिंग।

  • मेमोरी आवंटक।

  • int3 के साथ प्रतिक्रिया।

  • गैर-डीबग किया गया cpuid।

  • 32bits और 64bits शेलकोड एम्यूलेशन।

  • pe32 और pe64 निष्पादन योग्य एम्यूलेशन।

  • ज्ञात पेलोड के साथ पूर्ण एम्यूलेशन:

    • metasploit शेलकोड।
    • metasploit एनकोडर।
    • कोबाल्ट स्ट्राइक।
    • शेलजेन।
    • guloader (अभी पूरी तरह से नहीं, लेकिन डीबगर से आगे पहुँचता है)
    • mars stealer pe32.
    • bumblebee.
  • जटिल मैलवेयर फंक्शन के साथ आंशिक एम्यूलेशन:

    • guloader
    • xloader
    • danabot

pymwemu बनाम मैलवेयर

  • रैकून, स्ट्रिंग डिक्रिप्शन
  • विदर, स्ट्रिंग डिक्रिप्शन
  • xloader, पूर्ण डिक्रिप्ट, कीजेन, यूआरएल एन्क्रिप्शन बनाना।
  • lokibot, API डीओबफस्केशन
  • mars अनपैकिंग और आईओसी प्राप्त करना
  • शिकाता डिकोडिंग और आईओसी प्राप्त करना
  • danabot स्ट्रिंग डिक्रिप्शन
  • zloader स्ट्रिंग डिक्रिप्शन
  • bumblebee अनपैकिंग 25,515,274,634 निर्देशों का अनुकरण करने के बाद।
  • enigma लोडर API डीओबस्केशन और ड्रॉप डिक्रिप्शन
  • bugsleep अनपैक
  • gozi bss डिक्रिप्ट और dga प्रेडिक्टर।

एम्यूलेशन क्षण को कैप्चर करें

एम्यूलेशन के दौरान आप अनुकरणित CPU निर्देशों की संख्या देख सकते हैं, जो एक एम्यूलेशन क्षण के लिए एक अद्वितीय आईडी है।

-c फ्लैग के साथ आप एक विशिष्ट क्षण पर एम्यूलेशन रोक सकते हैं और कंसोल के साथ जांच कर सकते हैं कि क्या हो रहा है।

उपयोग

root@kitploit:~
MWEMU एम्युलेटर मैलवेयर के लिए 0.7.11
@sha0coder

उपयोग:
    mwemu [FLAGS] [OPTIONS]

FLAGS:
    -6, --64bits         64bits आर्किटेक्चर एम्यूलेशन सक्षम करें
        --banzai         अलागू निर्देशों को छोड़ें, और जो भी अनुकरण किया जा सकता है उसे अनुकरण करते रहें
        --flags          प्रत्येक निर्देश में फ्लैग का हेक्स मान ट्रेस करें।
    -F, --fpu            fpu स्थितियों को ट्रेस करें।
    -h, --handle         Ctrl+C को संभालें कंसोल स्पॉन करने के लिए
        --help           मुद्रण सहायता जानकारी
    -l, --loops          लूप इटरेशन दिखाएं, यह धीमा है।
    -m, --memory         सभी मेमोरी एक्सेस रीड और राइट को ट्रेस करें।
    -n, --nocolors       रंगों के बिना प्रिंट करें, फ़ाइल >out में रीडायरेक्ट करने के लिए
    -r, --regs           प्रत्येक चरण में रजिस्टर मान प्रिंट करें।
    -p, --stack_trace    push/pop पर स्टैक ट्रेस करें
    -t, --test           परीक्षण मोड
        --version        संस्करण जानकारी मुद्रित करता है
    -v, --verbose        -vv असेंबली देखने के लिए, -v केवल संदेश, बिना वर्बोज़ के केवल API कॉल दिखाएँ और तेज़ी से चलता है

OPTIONS:
    -A, --args <ARGS>                  EXE को तर्क प्रदान करें जैसे: --args '"aa" "bb"'
        --cmd <COMMAND>                कंसोल कमांड प्रारंभ करें
    -b, --base <ADDRESS>               कोड के लिए आधार पता सेट करें
    -c, --console <NUMBER>             चुनें कि किस क्षण कंसोल स्पॉन होगा निरीक्षण के लिए।
    -C, --console_addr <ADDRESS>       पहले eip = पते पर कंसोल स्पॉन करें
    -d, --dump <FILE>                  डंप से लोड करें।
    -a, --entry <ADDRESS>              शेलकोड का एंट्री पॉइंट, डिफ़ॉल्ट रूप से शुरुआत से शुरू होता है।
    -e, --exit <POSITION>              शेलकोड का एग्ज़िट पोज़ीशन
    -f, --filename <FILE>              शेलकोड बाइनरी फ़ाइल सेट करें।
    -i, --inspect <DIRECTION>          मेमोरी मॉनिटर करें जैसे: -i 'dword ptr [ebp + 0x24]
        --iso <ISO>                    विंडोज आईएसओ से वास्तविक system32 DLL निकालें और उन्हें मैप्स फ़ोल्डर के रूप में उपयोग करें, उदा. --iso ~/Downloads/win11.iso
    -L, --log <LOG_FILENAME>           लॉग आउटपुट को फ़ाइल में
    -M, --maps <PATH>                  मेमोरी मैप्स फ़ोल्डर चुनें
        --mxcsr <MXCSR>                mxcsr रजिस्टर सेट करें
        --r10 <R10>                    r10 रजिस्टर सेट करें
        --r11 <R11>                    r11 रजिस्टर सेट करें
        --r12 <R12>                    r12 रजिस्टर सेट करें
        --r13 <R13>                    r13 रजिस्टर सेट करें
        --r14 <R14>                    r14 रजिस्टर सेट करें
        --r15 <R15>                    r15 रजिस्टर सेट करें
        --r8 <R8>                      r8 रजिस्टर सेट करें
        --r9 <R9>                      r9 रजिस्टर सेट करें
        --rax <RAX>                    rax रजिस्टर सेट करें
        --rbp <RBP>                    rbp रजिस्टर सेट करें
        --rbx <RBX>                    rbx रजिस्टर सेट करें
        --rcx <RCX>                    rcx रजिस्टर सेट करें
        --rdi <RDI>                    rdi रजिस्टर सेट करें
        --rdx <RDX>                    rdx रजिस्टर सेट करें
    -R, --reg <REGISTER1,REGISTER2>    प्रत्येक चरण में एक विशिष्ट रजिस्टर ट्रेस करें, मान और सामग्री
        --rflags <RFLAGS>              rflags रजिस्टर सेट करें
        --rsi <RSI>                    rsi रजिस्टर सेट करें
        --rsp <RSP>                    rsp रजिस्टर सेट करें
    -x, --script <SCRIPT>              एक एम्यूलेशन स्क्रिप्ट लॉन्च करें, scripts_examples फ़ोल्डर देखें
        --stack_address <ADDRESS>      स्टैक पता सेट करें
    -s, --string <ADDRESS>             एक विशिष्ट पते पर स्ट्रिंग मॉनिटर करें
    -T, --trace <TRACE_FILENAME>       निर्दिष्ट फ़ाइल पर आउटपुट ट्रेस करें
    -S, --trace_start <TRACE_START>    निर्दिष्ट पोज़ीशन पर ट्रेस शुरू करें
    -V, --verbose_at <NUMBER>          एक विशिष्ट पोज़ीशन पर असेंबली प्रदर्शित करना शुरू करें (यह -vv की तरह है जो एक विशिष्ट क्षण में सक्षम होता है)

कमांड लाइन उदाहरण

64bits के लिए -6 फ्लैग की आवश्यकता है, ASM देखने के लिए -vv, और एक विशिष्ट क्षण पर कंसोल स्पॉन करने के लिए -c:

root@kitploit:~
cargo run --release -- -f /tmp/shellcode.bin -6 -vv -c 19291
cargo run --release -- -f /bin/ls -6 -A '"-l"' -v 
cargo run --release -- -f calc.exe -6 --winver win11
cargo run --release -- -f calc.exe -6 --winver win11 --syscall-mode

परीक्षण

make tests

कुछ उपयोग मामले

mwemu एक सरल शेलकोड का अनुकरण करता है जो execve() इंटरप्ट का पता लगाता है। ध्यान दें कि मैंने इस टूल का नाम scemu से mwemu कर दिया है (इतालवी में scemu एक बुरा शब्द है) बेसिक शेलकोड की खोज

हम लाइन का चयन करते हैं रुकने और मेमोरी का निरीक्षण करने के लिए। बेसिक शेलकोड का निरीक्षण

लिनक्स में GuLoader win32 के लगभग 2 मिलियन निर्देशों के अनुकरण के बाद, रास्ते में cpuid और अन्य चालों का नकली उपयोग करते हुए, डीबगर्स को भ्रमित करने के लिए एक sigtrap पर पहुँचता है। अपवाद हैंडलर

API लोडर पर मेमोरी डंप का उदाहरण। अपवाद हैंडलर

डिफ़ॉल्ट रूप से कई मैप्स हैं, और LoadLibraryA जैसे APIs के साथ या कंसोल से मैन्युअल रूप से अधिक बनाए जा सकते हैं।

अपवाद हैंडलर

LdrLoadDLl() पर आधारित बुनियादी विंडोज शेलकोड का अनुकरण जो एक संदेश प्रिंट करता है: msgbox

कंसोल सीपीयू की वर्तमान स्थिति को देखने और संपादित करने की अनुमति देता है:

root@kitploit:~
--- console ---
=>h
--- help ---
q ...................... बाहर निकलें
cls .................... स्क्रीन साफ़ करें
h ...................... मदद
s ...................... स्टैक
v ...................... वेरिएबल्स
r ...................... सभी रजिस्टर दिखाएँ
r reg .................. रजिस्टर दिखाएँ
rc ..................... रजिस्टर बदलें
f ...................... सभी फ्लैग दिखाएँ
fc ..................... सभी फ्लैग साफ़ करें
fz ..................... जीरो फ्लैग टॉगल करें
fs ..................... साइन फ्लैग टॉगल करें
c ...................... जारी रखें
ba ..................... पते पर ब्रेकपॉइंट
bi ..................... निर्देश संख्या पर ब्रेकपॉइंट
bmr .................... मेमोरी रीड पर ब्रेकपॉइंट
bmw .................... मेमोरी राइट पर ब्रेकपॉइंट
bc ..................... ब्रेकपॉइंट साफ़ करें
n ...................... अगला निर्देश
eip .................... eip बदलें
push ................... स्टैक पर dword पुश करें
pop .................... स्टैक से dword पॉप करें
fpu .................... fpu देखें
md5 .................... एक मेमोरी मैप का md5 जाँचें
seh .................... SEH देखें
veh .................... वेक्टरेड एग्ज़ेप्शन पॉइंटर देखें
m ...................... मेमोरी मैप्स
ma ..................... मेमोरी आवंटन
mc ..................... मेमोरी मैप बनाएँ
mn ..................... एक पते का मेमोरी नाम
ml ..................... मैप में फ़ाइल सामग्री लोड करें
mr ..................... मेमोरी पढ़ें, निर्दिष्ट करें जैसे: dword ptr [esi]
mw ..................... मेमोरी लिखें, निर्दिष्ट करें जैसे: dword ptr [esi] और फिर: 1af
md ..................... मेमोरी डंप
mrd .................... मेमोरी रीड dwords
mds .................... मेमोरी डंप स्ट्रिंग
mdw .................... मेमोरी डंप वाइड स्ट्रिंग
mdd .................... मेमोरी डंप टू डिस्क
mt ..................... मेमोरी परीक्षण
ss ..................... स्ट्रिंग खोजें
sb ..................... बाइट्स खोजें
sba .................... सभी मैप्स में बाइट्स खोजें
ssa .................... सभी मैप्स में स्ट्रिंग खोजें
ll ..................... लिंक्ड लिस्ट वॉक
d ...................... डिस्सेम्बल करें
dt ..................... संरचना डंप करें
enter .................. स्टेप इन

कोबाल्ट स्ट्राइक API लोडर मेटास्प्लॉइट के समान है, इसका अनुकरण: api loader

कोबाल्ट स्ट्राइक API कॉल: cobalt strike

मेटास्प्लॉइट rshell API कॉल: msf rshell

मेटास्प्लॉइट SGN एनकोडर पॉलीमॉर्फिज़्म छिपाने के लिए कुछ fpu का उपयोग करता है: msf encoded

मेटास्प्लॉइट शिकाता-गा-नई एनकोडर जो भी fpu से शुरू होता है: msf encoded

PEB संरचना प्रदर्शित करना:

root@kitploit:~
=>dt
structure=>peb
address=>0x7ffdf000
PEB {
    reserved1: [
        0x0,
        0x0,
    ],
    being_debugged: 0x0,
    reserved2: 0x0,
    reserved3: [
        0xffffffff,
        0x400000,
    ],
    ldr: 0x77647880,
    process_parameters: 0x2c1118,
    reserved4: [
        0x0,
        0x2c0000,
        0x77647380,
    ],
    alt_thunk_list_ptr: 0x0,
    reserved5: 0x0,
    reserved6: 0x6,
    reserved7: 0x773cd568,
    reserved8: 0x0,
    alt_thunk_list_ptr_32: 0x0,
    reserved9: [
        0x0,
...

PEB_LDR_DATA संरचना प्रदर्शित करना:

root@kitploit:~
=>dt
structure=>PEB_LDR_DATA
address=>0x77647880
PebLdrData {
    length: 0x30,
    initializated: 0x1,
    sshandle: 0x0,
    in_load_order_module_list: ListEntry {
        flink: 0x2c18b8,
        blink: 0x2cff48,
    },
    in_memory_order_module_list: ListEntry {
        flink: 0x2c18c0,
        blink: 0x2cff50,
    },
    in_initialization_order_module_list: ListEntry {
        flink: 0x2c1958,
        blink: 0x2d00d0,
    },
    entry_in_progress: ListEntry {
        flink: 0x0,
        blink: 0x0,
    },
}
=>

LDR_DATA_TABLE_ENTRY और पहले मॉड्यूल का नाम प्रदर्शित करना:

root@kitploit:~
=>dt
structure=>LDR_DATA_TABLE_ENTRY
address=>0x2c18c0
LdrDataTableEntry {
    reserved1: [
        0x2c1950,
        0x77647894,
    ],
    in_memory_order_module_links: ListEntry {
        flink: 0x0,
        blink: 0x0,
    },
    reserved2: [
        0x0,
        0x400000,
    ],
    dll_base: 0x4014e0,
    entry_point: 0x1d000,
    reserved3: 0x40003e,
    full_dll_name: 0x2c1716,
    reserved4: [
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
    ],
    reserved5: [
        0x17440012,
        0x4000002c,
        0xffff0000,
    ],
    checksum: 0x1d6cffff,
    reserved6: 0xa640002c,
    time_date_stamp: 0xcdf27764,
}
=>

एक मैलवेयर एक अपवाद में कुछ छिपा रहा है:

root@kitploit:~
3307726 0x4f9673: push  ebp
3307727 0x4f9674: push  edx
3307728 0x4f9675: push  eax
3307729 0x4f9676: push  ecx
3307730 0x4f9677: push  ecx
3307731 0x4f9678: push  4F96F4h
3307732 0x4f967d: push  dword ptr fs:[0]
Reading SEH 0x0
-------
3307733 0x4f9684: mov   eax,[51068Ch]
--- console ---
=>

आइए अपवाद संरचनाओं का निरीक्षण करें:

root@kitploit:~
--- console ---
=>r esp
        esp: 0x22de98
=>dt
structure=>cppeh_record
address=>0x22de98
CppEhRecord {
    old_esp: 0x0,
    exc_ptr: 0x4f96f4,
    next: 0xfffffffe,
    exception_handler: 0xfffffffe,
    scope_table: PScopeTableEntry {
        enclosing_level: 0x278,
        filter_func: 0x51068c,
        handler_func: 0x288,
    },
    try_level: 0x288,
}
=>

और यहाँ हमारे पास एरर रूटीन 0x4f96f4 और फिल्टर 0x51068c है।

स्टार हिस्ट्री

Star History Chart

टूल डाउनलोड करें