Noise
Identify a hidden string in a noisy binary file using strings and grep.
Flag: HQX{543c40987f3de029de611d3649428016}
Approach (Step by Step)
- The line ‘Somewhere in that mess, a flag is hiding in plain sight.’ hints that the flag is surely in a plaintext, i.e., easy to visible / proper format within the file.
- So I just extracted the zip file and got an
.optfile and when I used thestringscommand on it to get readable text, I found multipleHQXtexts messed up, among them all I got to see the actual flag. - Just to filter it out I used
grepalongstringswith regex:'HQX\{[^}]{6,}\}' - This regex finds a proper string with at least length of 6 between
{}, to filter out allHQX{}(empty flags), any number would be fine, I randomly choose 6.
Output:
┌──(himanshu@Kaaammui)-[~/Desktop/tcs/noise]-(13-12-2025 10:13:54)
└─$ strings a729Ea1b97.opt | grep -E 'HQX\{[^}]{6,}\}'
HQX{4.MHQX{}!
HQX{Xr[HQX{}
[HQX{=iHHQX{}
>$HQX{8"aHQX{}
HQX{543c40987f3de029de611d3649428016} HQX{
_HQX{HQX{HQX{}
HQX{oHQX{h}
}HQX{HQX{-b}
HQX{%coX#h}
┌──(himanshu@Kaaammui)-[~/Desktop/tcs/noise]-(13-12-2025 10:14:28)
└─$
(actual output was big, I just skipped some for better visibility)
- To filter it down perfectly to just the flag, since I know the flag format typically contains a 32-character hex string, I increased the length to 32:
┌──(himanshu@Kaaammui)-[~/Desktop/tcs/noise]-(13-12-2025 10:14:28)
└─$ strings a729Ea1b97.opt | grep -E 'HQX\{[^}]{32,}\}'
HQX{543c40987f3de029de611d3649428016} HQX{