Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mwemu — 악성코드 분석, 셸코드 에뮬레이션 및 페이로드 언패킹을 위한 순수 Rust x86 하드웨어 에뮬레이터 및 Windows 프로세스 시뮬레이터입니다. 32/64비트 PE 실행 파일, Metasploit, Cobalt Strike 및 복잡한 악성코드 계열을 지원합니다. | Kitploit
도구/GitHubGitHub/mwemuorg/mwemu
Exploit FrameworksReverse EngineeringShellcodeMalware AnalysisBinary Analysis
GitHubmwemuorg/mwemu

mwemu

악성코드 분석, 셸코드 에뮬레이션 및 페이로드 언패킹을 위한 순수 Rust x86 하드웨어 에뮬레이터 및 Windows 프로세스 시뮬레이터입니다. 32/64비트 PE 실행 파일, Metasploit, Cobalt Strike 및 복잡한 악성코드 계열을 지원합니다.

저장소 보기
313442518시간 45분 전Kitploit 검토 완료
웹사이트

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MWEmu

CI mwemu crates.io libmwemu crates.io Docs.rs PyPI License: Apache 2.0 MSRV Listed on mcpservers.org

공식 문서

mwemu.github.io

이것은 무엇인가?

순수 Rust로 구현된 하드웨어 에뮬레이터 + OS 프로세스 시뮬레이터입니다.

이 접근 방식은 악성코드 분석 및 기타 작업(PE, 셸코드 등)에 매우 편리합니다.

OS는 주로 Windows이며, Windows 프로세스를 에뮬레이션하고 Linux에 대한 매우 기본적인 지원도 제공합니다.

하드웨어는 x86 32/64비트이며 빠르고 안정적입니다.

MWEMU Logo

소프트웨어를 사용하는 세 가지 방법

  • mwemu 명령줄 https://github.com/mwemuorg/mwemu
  • libmwemu 크레이트 https://crates.io/crates/libmwemu
  • pymwemu https://pypi.org/project/pymwemu/

scemu에 대한 참고 사항

이 프로젝트는 scemu에서 mwemu로 이름이 변경되었습니다.

일부 동영상

r2con2025 에뮬레이션 순간 내부에서 정적 분석과 시각화를 수행하기 위해 mwemu에서 radare2를 사용하는 방법.

일부 데모

기능

  • 📦 Rust 안전성, 악성코드 에뮬레이션에 적합.

    • 모든 의존성이 Rust로 되어 있음.
  • ⚡ 매우 빠른 에뮬레이션

    • 벤치마크
    • 초당 25,767,432 명령어
    • 모든 명령어를 출력할 때 초당 680,000 명령어 -vv.
    • 직접 테스트: time mwemu -f test/exe64win_enigma.bin -6 -v -c 20000000 --cmd q
  • iced-x86 Rust 디스어셈블러라는 훌륭한 라이브러리 기반.

  • 명령줄 도구, Rust 라이브러리, Python 라이브러리.

  • 반복 감지기.

  • 메모리 및 레지스터 추적.

  • 컬러 출력.

  • 특정 시점에서 중지하고 상태를 탐색하거나 수정.

  • 339개의 CPU 명령어 구현.

  • 15개 DLL의 260개 winapi 32비트 구현.

  • 10개 DLL의 204개 winapi 64비트 구현.

  • 모든 Linux 시스템 콜.

  • SEH 체인.

  • 벡터 예외 처리기.

  • PEB, TEB 구조체.

  • 동적 링킹.

  • IAT 바인딩.

  • 지연 로딩.

  • 메모리 할당자.

  • int3에 반응.

  • 디버깅되지 않은 cpuid.

  • 32비트 및 64비트 셸코드 에뮬레이션.

  • pe32 및 pe64 실행 파일 에뮬레이션.

  • 알려진 페이로드로 완전 에뮬레이션:

    • metasploit 셸코드.
    • metasploit 인코더.
    • cobalt strike.
    • shellgen.
    • guloader (현재 완전하지는 않지만 디버거보다 더 멀리 도달)
    • mars stealer pe32.
    • bumblebee.
  • 복잡한 악성코드 함수로 부분 에뮬레이션:

    • guloader
    • xloader
    • danabot

pymwemu vs 악성코드

  • raccoon, 문자열 복호화
  • vidar, 문자열 복호화
  • xloader, 전체 복호화, 키젠, URL 암호화 생성.
  • lokibot, API 난독화 해제
  • mars 언패킹 및 IOC 추출
  • shikata 디코딩 및 IOC 추출
  • danabot 문자열 복호화
  • zloader 문자열 복호화
  • bumblebee 25,515,274,634개 명령어 에뮬레이션 후 언패킹.
  • enigma 로더 API 난독화 해제 및 드롭 복호화
  • bugsleep 언패킹
  • gozi bss 복호화 및 dga 예측.

에뮬레이션 순간 캡처

에뮬레이션 중에 에뮬레이션된 CPU 명령어 수를 볼 수 있으며, 이는 에뮬레이션 순간의 고유 ID입니다.

-c 플래그를 사용하면 특정 순간에 에뮬레이션을 중지하고 콘솔로 무슨 일이 일어나고 있는지 검사할 수 있습니다.

사용법

MWEMU emulator for malware 0.7.11
@sha0coder

USAGE:
    mwemu [FLAGS] [OPTIONS]

FLAGS:
    -6, --64bits         enable 64bits architecture emulation
        --banzai         skip unimplemented instructions, and keep up emulating what can be emulated
        --flags          trace the flags hex value in every instruction.
    -F, --fpu            trace the fpu states.
    -h, --handle         handle Ctrl+C to spawn console
        --help           Prints help information
    -l, --loops          show loop interations, it is slow.
    -m, --memory         trace all the memory accesses read and write.
    -n, --nocolors       print without colors for redirectin to a file >out
    -r, --regs           print the register values in every step.
    -p, --stack_trace    trace stack on push/pop
    -t, --test           test mode
        --version        Prints version information
    -v, --verbose        -vv for view the assembly, -v only messages, without verbose only see the api calls and goes
                         faster

OPTIONS:
    -A, --args <ARGS>                  provide arguments to the EXE like: --args '"aa" "bb"'
        --cmd <COMMAND>                launch a console command
    -b, --base <ADDRESS>               set base address for code
    -c, --console <NUMBER>             select in which moment will spawn the console to inspect.
    -C, --console_addr <ADDRESS>       spawn console on first eip = address
    -d, --dump <FILE>                  load from dump.
    -a, --entry <ADDRESS>              entry point of the shellcode, by default starts from the beginning.
    -e, --exit <POSITION>              exit position of the shellcode
    -f, --filename <FILE>              set the shellcode binary file.
    -i, --inspect <DIRECTION>          monitor memory like: -i 'dword ptr [ebp + 0x24]
        --iso <ISO>                    extract genuine system32 DLLs from a Windows ISO and use them as the maps folder, e.g. --iso ~/Downloads/win11.iso
    -L, --log <LOG_FILENAME>           log output to file
    -M, --maps <PATH>                  select the memory maps folder
        --mxcsr <MXCSR>                set mxcsr register
        --r10 <R10>                    set r10 register
        --r11 <R11>                    set r11 register
        --r12 <R12>                    set r12 register
        --r13 <R13>                    set r13 register
        --r14 <R14>                    set r14 register
        --r15 <R15>                    set r15 register
        --r8 <R8>                      set r8 register
        --r9 <R9>                      set r9 register
        --rax <RAX>                    set rax register
        --rbp <RBP>                    set rbp register
        --rbx <RBX>                    set rbx register
        --rcx <RCX>                    set rcx register
        --rdi <RDI>                    set rdi register
        --rdx <RDX>                    set rdx register
    -R, --reg <REGISTER1,REGISTER2>    trace a specific register in every step, value and content
        --rflags <RFLAGS>              set rflags register
        --rsi <RSI>                    set rsi register
        --rsp <RSP>                    set rsp register
    -x, --script <SCRIPT>              launch an emulation script, see scripts_examples folder
        --stack_address <ADDRESS>      set stack address
    -s, --string <ADDRESS>             monitor string on a specific address
    -T, --trace <TRACE_FILENAME>       output trace to specified file
    -S, --trace_start <TRACE_START>    start trace at specified position
    -V, --verbose_at <NUMBER>          start displaying assembly at specific position (is like -vv enabled in specific
                                       moment)

명령줄 예제

64비트는 -6 플래그가 필요하고, ASM을 보려면 -vv, 특정 순간에 콘솔을 생성하려면 -c가 필요합니다:

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는 욕설입니다) exploring basic shellcode

중지할 줄을 선택하고 메모리를 검사합니다. inspecting basic shellcode

Linux에서 GuLoader win32의 약 2백만 개 명령어를 에뮬레이션한 후, cpuid를 위조하고 다른 트릭을 사용하면서 디버거를 혼란스럽게 하기 위한 sigtrap에 도달합니다. exception handlers

도구 다운로드