CG-CTF Nuestros juegos de 16 bits

1. Póngalo en XP y ejecútelo, es un juego de aviones con una interfaz gráfica. . . Calcule cuánto alcanza el puntaje y luego puede generar la bandera.
Inserte la descripción de la imagen aquí
Open ida, una mirada de oscuridad, lo principal es 16 bits, depuré directamente estáticamente y
encontré mucho código de ensamblaje, un poco obsesionado, en el fondo, encontré una instrucción jmp, y luego INT 21H, este ensamblado se combina con Ah El valor de puede tener diferentes efectos y funciones: cuando AH es 2, se emite.

Inserte la descripción de la imagen aquí
Explicar este conjunto de declaraciones es generar la declaración de la bandera. Las dos letras al comienzo del formato NCTF de la bandera se pueden revertir a bl y bh, y luego la bandera es construida por el script.


a=[0x8E,0x9D,0x94,0x98,0xBB,0x89,0xF3,0xEF,0x83,0xEE,0xAD,0x9B,0x9F,0xEC,0x9F,0x9A,0xF0,0xEB,0x9F,0x97,0xF6,0xBC,0xF1,0xE9,0x9F,0xE7,0xA1,0xB3,0xF3,0xA3]
for i in range(256):
  if chr(i^0x8E)=='N':
    print(i)
for i in range(256):
  if chr(i^0x9D)=='C':
    print(i)
bh=192
bl=222
flag=""
for i in range(len(a)):
  if i%2==0:
    tmp=chr(bh^a[i])
  else:
    tmp=chr(bl^a[i])
  flag+=tmp
print(flag)

Inserte la descripción de la imagen aquí

161 artículos originales publicados · Me gusta 14 · Visitas 7616

Supongo que te gusta

Origin blog.csdn.net/YenKoc/article/details/105429806
Recomendado
Clasificación