Autor: 0wulf
La flag está guardada en el binario main
, pero perdí la contraseña para obtenerla. ¿Puedes ayudarme a recuperar la flag?
Assembly
La solución consiste en hacer análisis estático para hacer ingeniería reversa a la función build_flag
.
Viendo el desensamlado con
$ objdump -D main
notamos que en la función build_flag
se opera sobre cuatro valores grandes los cuales podemos convertir de hexadecimal a ascii para luego combinar formando la flag.
Se combinan de a un caracter y es fácil ver como se combinan una vez formado el substring hack.ing
, minding endianness.
0x6c5f6d347b2e68 -> l_m4{.h
0x34344273646961 -> 44Bsdia
0x675f6c53316e63 -> g_lS1nc
0x7d66333373676b -> }f33sgk
Se obtiene leyendo de arriba hacia abajo y de derecha a izquierda
0x6c5f6d347b2e68 -> l_m4{.(h)
0x34344273646961 -> 44Bsdi(a)
0x675f6c53316e63 -> g_lS1n(c)
0x7d66333373676b -> }f33sg(k)
gcc -o main main.c