2021. Segundo campo de entrenamiento CTF - Parte inversa wp

Tucao convencional no pwn, prueba Reverse

1. whereisflag

archivo elf, sin shell, abrir directamente con ida, buscar la cadena para ver dónde está la bandera, hacer doble clic para seguir para encontrar la función clave,
Inserte la descripción de la imagen aquí
empalmar la cadena para obtener la bandera
CnHongKe {849bc02af213b4d}

2. Reverse1

  1. Ejecute el programa para conocer la situación general.
    Inserte la descripción de la imagen aquí
  2. Programa de 32 bits, hay un shell upx
    Inserte la descripción de la imagen aquí
  3. Después de desempaquetar upx, ábralo con ida. De acuerdo con la cadena vista en tiempo de ejecución, se encuentra
    el pseudo código de la función clave ida descompilada . Algunos lugares no son comprensibles.
    Inserte la descripción de la imagen aquí
    La lógica del problema de ajustar directamente la función de análisis es: ingrese a carácter de longitud 11 String, cada ascii + 7 en orden inverso, y luego operación XOR con cadena v7 para obtener la nueva cadena después de ascii-1 de cada carácter en orden inverso para obtener el valor
    Inserte la descripción de la imagen aquí
    exp en off_409030 :
a=[0x1E, 0x5D, 0x53, 0x77, 0x5E, 0x50, 0x0E, 0x57, 0x7C, 0x47, 0x07]
#print(a)

str1="%+$-4-8+7=?"
xors=[37 ,43 ,36 ,45 ,52 ,45 ,56 ,43 ,55 ,61 ,63]   #str1的ascii码
b=[0,0,0,0,0,0,0,0,0,0,0]


for i in range(11):
    a[i]=a[i]+1
#print(a)

for i in range(11):
    b[i]=a[i]^xors[i]
#print(b)

for i in range(11):
    b[i]=b[i]-7
#print(b)

b.reverse()
print(b)

for i in range(11):
    print(chr(b[i]),end="")

#运行结果:0nCl0udNin3

CnHongKe {0nCl0udNin3}

Supongo que te gusta

Origin blog.csdn.net/mcmuyanga/article/details/114442832
Recomendado
Clasificación