Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mwemu — Pure Rust製x86ハードウェアエミュレータおよびWindowsプロセスシミュレータ。マルウェア解析、シェルコードエミュレーション、ペイロードアンパックに対応。32/64ビットPE実行ファイル、Metasploit、Cobalt Strike、複雑なマルウェアファミリをサポートします。 | Kitploit
ツール/GitHubGitHub/mwemuorg/mwemu
エクスプロイトフレームワークリバースエンジニアリングシェルコードマルウェア分析バイナリ解析
GitHubmwemuorg/mwemu

mwemu

Pure Rust製x86ハードウェアエミュレータおよびWindowsプロセスシミュレータ。マルウェア解析、シェルコードエミュレーション、ペイロードアンパックに対応。32/64ビットPE実行ファイル、Metasploit、Cobalt Strike、複雑なマルウェアファミリをサポートします。

リポジトリを見る
31344268時間57分前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

ソフトウェアの3つの使用方法

  • 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 命令/秒
    • すべての命令を -vv で表示した場合 680,000 命令/秒
    • 自分で試す: 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 対 マルウェア

  • raccoon、文字列の復号
  • vidar、文字列の復号
  • xloader、完全な復号、キージェン、URL 暗号化の構築。
  • lokibot、API の難読化解除
  • mars のアンパックと IOC の取得
  • shikata のデコードと IOC の取得
  • danabot の文字列復号
  • zloader の文字列復号
  • bumblebee のアンパック、25,515,274,634 命令をエミュレートした後。
  • enigma loader の 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 は悪い言葉です) 基本的なシェルコードの探索

停止してメモリを検査する行を選択します。 基本的なシェルコードの検査

Linux 上で GuLoader win32 の約200万命令をエミュレートした後、途中で cpuid などを偽装し、デバッガを混乱させるための sigtrap に到達します。 例外ハンドラ

ツールをダウンロード