FCTF2020 WP RE

RE4-JEB

Se adjunta un paquete postal, información sobre herramientas tema, Android es un revés, luego miró a un pequeño paquete postal, es evidente que esto no es el paquete es un apk postal, apk sufijo lugar, a desmontar. Empezar a buscar la clave de la cadena, FCTF búsqueda global, felicitaciones y otras palabras clave de la entrada del programa. Localizar el lugar felicitación de palabras clave.
Aquí Insertar imagen Descripción
Aquí vemos el código fuente de Java, lectura rápida, encontramos información crítica.
Aquí Insertar imagen Descripción
Continuar mirando hacia abajo.
Aquí Insertar imagen Descripción
En donde la cadena de la cadena de caracteres, descifrado, para dar la siguiente cadena.

321nimda} {galflj

Por lo general, casi tan largo como la cadena a la inversa, lo que generalmente se encuentra en el orden inverso de la siguiente manera.

admin123 jlflag {}

Entonces es obvio. Objeto de la bandera formato de solicitud {xxx}, el resultado es.

{} la bandera admin123

RE7-amor

Ver PE obtener la siguiente información básica.
Aquí Insertar imagen Descripción
Ejecutarlo y ver.
Aquí Insertar imagen Descripción

Según caracteres de realimentación en el posicionamiento de la AIF función clave, sino una cadena de búsqueda en la AIF encontrar información crítica cuando más, el sugerente título de base64input, debe significar que la entrada está cifrado base 64, luego la espiga pregunta debería ser el algoritmo base 64 inversa.
Aquí Insertar imagen Descripción

Después de entrar en el programa encontró que la principal función para ver el proceso es muy clara. Un marco de color rojo después de la obtención de la primera entrada, una entrada y un tamaño de entrada aprobó una función, la función devuelve el resultado de la última copia a Dest, y en este momento el tamaño es mayor que la longitud de la entrada y recuperar Dest longitud, función de determinación de por lo tanto evidente base64Encode función. Después de que el segundo periodo de la línea roja y después se añadió al resultado de la incrementales offset.
Aquí Insertar imagen Descripción
Basado en el análisis anterior, la escritura de grieta como sigue:

import base64
key = [0x65 ,0x33 ,0x6e ,0x69 ,0x66 ,0x49 ,0x48 ,0x39 ,0x62 ,0x5f ,0x43 ,0x40 ,0x6e ,0x40 ,0x64  ,0x48]
flag = ''

for i in range(len(key)):
    key[i] -= i
    flag += chr(key[i])
    i += 1

print(base64.b64decode(flag))

Los resultados son los siguientes:
Aquí Insertar imagen Descripción

{} la bandera i_l0ve_you

R.8-laberinto

Ver PE.
Aquí Insertar imagen Descripción
Ejecutar.
Aquí Insertar imagen Descripción
AIF entrar a la vista, localizar las funciones de las teclas. Encontrado que un cuadro rojo es una función del primer punto de salida, que debe ser algún tipo de detección, después de entrar encontró que anti depuración, discapacitados; cuadro rojo que define la segunda entrada de 24 caracteres, y sólo 0-9, af también es la notación hexadecimal, seguido de cerca por un caso, la entrada pasa a la función, debe ser verificada por la bandera a conseguir. Luego entramos en el análisis de la función.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Dado que es un laberinto, entonces la clave es conseguir un mapa del laberinto. Necesitamos la función devuelve cierto, entonces tenemos que volver atrás desde la parte superior de la primera instrucción de retorno, que es res = 311. Nos fijamos en byte_54 ... este conjunto, como "delru0123456789", esta matriz debe ser una función de seguimiento llama a una instrucción switch tercero, donde debería haber información relacionada con el mapa del laberinto.
Aquí Insertar imagen Descripción
Esta función se lleva a cabo 12 ciclos, cada vez que i + = 26, entonces el tamaño laberinto conjetura debería ser 12 26 Las necesidades de valor para que sea igual res es 311 12 26 - 1 a continuación, baje obviamente esquina derecha del mapa, res valor de 0, que es el punto inicial de partida es la esquina superior izquierda. Que dos matrices deben ser el mapa o-exclusiva operación laberinto, podemos volcar los datos de abajo, o miramos diferente, aquí estoy con un dato diferente AIF incorporado IDC o mirada, ver los resultados.
Aquí Insertar imagen Descripción
sentencia switch estudio devuelve el siguiente movimiento es lo que las reglas del laberinto. Una primera sentencia switch es conseguir el primer carácter, cuatro ramas para determinar, de acuerdo con la declaración tercer interruptor que está determinada dirección Maze, una segunda sentencia switch se adquiere carácter siguiente, la tercera instrucción switch, según la cual que es conseguir la cantidad de pasos para ir en esa dirección. La entrada del usuario es entonces las necesidades regla a 12 grupos de la primera 1,2,3,4,5, que corresponden respectivamente a las cuatro direcciones no han ir; número de pasos en la dirección para el segundo carácter. opción Dlru es determinar la dirección de, y vemos cada función rama llamada declaraciones terceros medios de conmutación, ver el recuento de bucle es la forma en la transformación, con el fin de determinar la dirección y, finalmente, obtener los resultados y se observa bajo un laberinto, cada cuadrícula no está por encima de 4 personajes, hay varias letras que eran unos pocos que operan en esta red.
Aquí Insertar imagen Descripción

Después de que el ojo para ver las flores, y finalmente consiguió el conjunto de entrada!

06360836063b0839073e0639

O err, estamos analizando actualmente sólo una subrutina llama a la función principal, y luego volver a la función principal para ver lo que se encontró, también encontró que los datos enviados a una función, y una vez XOR.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Entrada que se pasa a su vez una función, siga de nuevo, los resultados de esta función pseudo-código 500 líneas de la lógica es muy complejo, una variedad de condiciones para determinar la cruz, no se ve nada, pero al mirar lo que no se puede encontrar a partir de la asamblea. Sin embargo, la compilación está siendo muy complicado, dio viendo compilación, comenzó a pensar en anti-depuración mecanismo, es posible que pueda ver nada desde la puesta en marcha. La depuración de seguimiento vista.
Aquí Insertar imagen Descripción
Entramos en el 24 1, para la depuración. Se encontró que la operación XOR es una entrada a los primeros 17 caracteres y 1 XOR, a continuación, mirar hacia abajo, que finalmente encontramos que la entrada es una función del reprocesamiento, son los siguientes:
Aquí Insertar imagen Descripción
seguimiento, y descubrió que a su vez pasa una otra entrada función, y siempre prestar atención para el seguimiento de la pila cuando el cambio de entrada, cómo el cambio, no encontró ningún cambio de la función, y luego continuar a observar hacia abajo.
Aquí Insertar imagen Descripción
Encontramos a través de la siguiente función cuando los datos han cambiado.
Aquí Insertar imagen Descripción
Hay casi corrió sobre 10 operaciones de un personaje de peces de entrada, no sé por qué. En cambio a corto según sea el caso, la última suposición es XOR. En primer lugar, la misma entrada, cada personaje es diferente, cambia gran envergadura, o es probable que sea diferente, y definitivamente no es exclusivo o un número fijo, de lo contrario el resultado es el mismo.
Aquí Insertar imagen Descripción
De acuerdo a la especulación, el resultado final se encontró con el subíndice XOR.

arr = [0x30 ,0x36 ,0x33, 0x36, 0x30, 0x38 ,0x33 ,0x36 ,0x30 ,0x36 ,0x33 ,0x62 ,0x30 ,0x38, 0x33 ,0x39 ,0x30 ,0x37 ,0x33 ,0x65 ,0x30 ,0x36 ,0x33 ,0x39  ]

arr[16] ^= 1
flag = ''
for i in range(len(arr)):
    flag += chr(arr[i] ^ i)
print(flag)


Los resultados son los siguientes:
Aquí Insertar imagen Descripción
la validación es correcta, y dieron el código de dos dimensiones.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Ver, que es una palabra.
Felicidades! La bandera es su entrada + "Docupa"

A continuación, la bandera es.

zsctf {07154 = 518? 9i <5 = 6! & $ #% v. Docupa}

Se han publicado 19 artículos originales · ganado elogios 2 · Vistas 2525

Supongo que te gusta

Origin blog.csdn.net/SC_king/article/details/105338545
Recomendado
Clasificación