Rusty matryoshka - a Rust crypter that does things its own way
TL;DR
Static analysis of a Rust crypter/loader:
- Embedded x64 DLL split into ~200 fragments interleaved between
.rdataand.data, PE headers stored apart withMZ/PE\0\0wiped - base64url with a shuffled alphabet (Fisher-Yates + splitmix64) and a junk char every 57
- splitmix-looking XOR keystream with non-standard constants I couldn’t find documented anywhere
- Custom bit-level LZ container
- Control-flow flattening + opaque predicates fed by TLS values, which Ghidra just gives up on