
Emulatore hardware x86 e simulatore di processi Windows in Pure Rust per l'analisi di malware, emulazione di shellcode e unpacking di payload. Supporta eseguibili PE a 32/64 bit, Metasploit, Cobalt Strike e famiglie di malware complesse.
È un emulatore hardware + simulatore di processi OS implementato in puro rust.
Questo approccio è molto comodo per l'analisi di malware e altre cose (PE, shellcode ecc.)
Supporta le architetture x86 32/64-bit e AArch64. Il sistema operativo principale target è Windows (emulazione completa del processo con PEB/TEB/LDR, WinAPI e intercettazione delle syscall), con supporto crescente per Linux e macOS (syscall, loader ELF/Mach-O, shim libc).

Il progetto è stato rinominato da scemu a mwemu.
r2con2025 utilizza radare2 da mwemu per fare analisi statica e visualizzazione all'interno di un momento di emulazione.
📦 sicurezza di rust, ottimo per emulare malware.
⚡ emulazione molto veloce
make test_speed (compila in release ed emula 20M istruzioni di enigma, riportando il tempo trascorso)basato sulla fantastica libreria disassembler iced-x86 per rust.
strumento da riga di comando, libreria rust e libreria python.
rilevatore di iterazioni.
tracciamento di memoria e registri.
colorato.
fermarsi in un momento specifico ed esplorare lo stato o modificarlo.
339 istruzioni CPU implementate.
260 winapi a 32bit implementate di 15 dll.
204 winapi a 64bit implementate di 10 dll.
tutte le syscall linux.
catene SEH.
vectored exception handler.
strutture PEB, TEB.
linking dinamico.
binding IAT.
delay loading.
allocatore di memoria.
reagire con int3.
cpuid non debugged.
emulazione di shellcode a 32bit e 64bit.
emulazione di eseguibili pe32 e pe64.
emulazione completa con payload noti:
emulazione parziale con funzioni malware complesse:
Durante l'emulazione puoi vedere il numero di istruzioni cpu emulate, che è un ID univoco per un momento di emulazione.
Con il flag -c fermi l'emulazione in un momento specifico e ispezioni cosa sta succedendo con la console.
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