SKIP TO MAIN CONTENT

[ EST. 2024 / INTERNATIONAL ]

SECURITY RESEARCH COLLECTIVE

SECURITY RESEARCH KNOWLEDGE TECHNIQUES
B3S/WRITEUPS/WASM-DECOMPILATION-ADVANCED-REV
← BACK TO ARCHIVE
EVENT: Cyberweek Africa Qualifiers 2026CATEGORY: Reverse EngineeringPOINTS: 500 PTS

Wasm Decompilation

AUTHORED BY:@bealthguy10/5/2026

Wasm Decompilation

Category: REV · Difficulty: Advanced · Points: 500 · Challenge: 505

Background

The target is a client-side authentication routine compiled to WebAssembly. The stated technique is to decompile the WASM module into a readable text representation and locate the hardcoded validation logic. FORMAT: FLAG{ }

Analysis

The artifact is presented as a compiled binary but is 98 bytes. Its first sixteen bytes are the ELF identification string, and from offset 16 onward it is ASCII rather than machine code:

$ file challenge-063.bin
challenge-063.bin: ELF 64-bit LSB *unknown arch 0x4752* (SYSV)

$ xxd challenge-063.bin
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
00000010: 5441 5247 4554 5f52 4556 5f4b 4559 5f30  TARGET_REV_KEY_0
00000020: 3532 5f46 4c41 477b 6377 6132 3032 365f  52_FLAG{cwa2026_
00000030: ...                                           }.........

The unidentified machine type is a consequence of the layout rather than a real target: the e_machine field at offset 18 falls inside the ASCII marker, so the value 0x4752 is simply the characters GR. There is therefore no program image to disassemble, no symbol table and no control flow to trace, and the module decompilation described in the brief could not be carried out, since neither the WebAssembly magic number nor any module section was present. The marker TARGET_REV_KEY_063_ wraps the flag in cleartext and the remainder of the file is NUL padding.

Result

FLAG{cwa2026_8df9efe1ee36bc00}