| JavyFlag |
Nice challenge! The file is a WebAssembly module compiled using Shopify's Javy toolchain (which embeds QuickJS).
Since Javy stores the original JavaScript source code inside the javy_source custom section, I just parsed the WASM file, extracted the payload of that section, and decompressed it using Brotli.
The decompressed source code directly revealed the flag bytes: RELUNSEC{j3vy_1s_4w3s0m3}
Thanks for the crackme! |
2026-06-02 18:32 |
| very easy crackme |
Easy .NET crackme.
Just dumped the strings from the binary and found the password `crackme12345ez`. The other string `crackmebro` is just the class name (`crackme.crackmebro`) containing the entry point.
Worked out of the box. Thanks for the challenge! |
2026-06-02 12:50 |
| Floating password |
Solved. Fun little trap crackme!
The password is dynamically generated after you type in your input. It's calculated on the fly using std::random_device + _time64 and a formula based on the float constant 67745.0. Since the check is non-deterministic and run after input, you can't guess it statically. Plus, the binary intentionally crashes at the end with a UD2 instruction to prevent the stdout buffer from flushing "ok, that's it" out.
To solve it, I patched the binary:
1. In `kol()`, NOP'ed out the conditional jumps (JP at 0xd8E and JNZ at 0xd93) to force the success branch.
2. Patched the UD2 crash at 0xebc with a clean stack cleanup & return:
ADD RSP, 0x13d8 (48 81 C4 D8 13 00 00)
POP RBX (5B), POP RBP (5D), RET (C3)
Now it prints the success message and exits cleanly. Thanks for the challenge! |
2026-06-02 12:47 |
| Hard CME |
Username: testuser Serial: 22dd29bfbe934d7c
Username: admin Serial: 6f734c07feba5004
Username: crackme Serial: c8ae99ae5bd5e55 |
2026-06-02 11:51 |
| Hard CME 2 |
V1RTU4L_M4CH1N3_5T4CK |
2026-06-02 11:40 |