
THM · Glyph — reverse engineering niestandardowej VM
Odtworzenie dispatchera bytecode ręcznie zbudowanej VM stosowej i odszyfrowanie flagi 40-liniowym lifterem w Pythonie.
· 3 min czytania
#thm#re#vm
Triage
Binarka ładuje blob z .rodata i dispatchuje na podstawie dolnego nibbla każdego bajtu. Dwanaście handlerów — czysto.
Lifting
Każdy handler mapuje się na jedną operację stosu. Prosty lifter w Pythonie produkuje czytelne pseudo-asembler:
PUSH 0x41
XOR
ROR 3
CMP immRozwiązanie
Traktuj sekwencję porównań jako układ równań nad GF(2^8). z3 znajduje jedyne spełniające wejście w mniej niż sekundę.