1. La firma de datos está diseñada para garantizar
- Verifique la integridad de los datos
- Asegúrese de que la fuente de datos sea legal
2. Las vulnerabilidades que conoce sobre la interfaz son
- XSS
- CSRF
3. Existen marcos de enganches móviles
- expuesto
- Sustrato
- Cydia
- Frida
4. Las herramientas que pueden capturar paquetes de datos son
- ubertooth
- tcpdump
- burpsuite
- HackRF
5. ¿Qué podemos hacer generalmente a través de la interfaz UART en el dispositivo inteligente?
- Ver información de depuración del dispositivo
- Obtenga permisos de dispositivo
6. ¿Cuáles de las siguientes afirmaciones sobre procesos, subprocesos y rutinas son correctas?
- El hilo se comparte en montón, la pila es privada
- En términos generales, ejecución de proceso de sobrecarga> subproceso> corrutina
7. ¿Cuáles de los siguientes son registros en la función pequeña?
- p0
- v0
8. Montaje del BRAZO
Si el siguiente código está en la función
char dst[32];
strcpy(dst, src);
Si el atacante puede controlar el src de la variable de función, las opciones que no se pueden implementar en la arquitectura ARM son:
- Cubrir variables distintas a dst, cambiar la lógica del programa
- Sobrescriba los datos de la pila para construir un ataque ROP
- Sobrescribir la pila de llamadas provoca un error de segmentación
Lo que se puede lograr es:
- Sobrescriba la dirección de retorno para saltar al código malicioso copiado por el atacante en dst
9. ¿Cuáles de las siguientes tareas se utilizan a menudo para el análisis de firmware de dispositivos inteligentes?
- binwalk
10. La función en iOS es similar al esquema de URL, pero la seguridad es mejor
- Enlaces universales
11. xor% eax,% eax ¿Cuál es el valor de eax después de la operación?
- 0000 0000
12. Si hay una vulnerabilidad de escritura arbitraria en Android, cómo convertir el permiso de escritura en permiso de ejecución
- DexClassLoader carga dinámicamente archivos ejecutables dex en los que la aplicación puede escribir
- El método java.lang.Runtime.exec ejecuta el archivo elf que la aplicación puede escribir
- System.load y System.loadLibrary cargan dinámicamente los objetos compartidos elf que la aplicación puede escribir
- El código nativo usa system, popen y otras funciones similares para ejecutar el archivo elf que la aplicación puede escribir.
- El código nativo usa dlopen para cargar el objeto compartido elf en el que la aplicación puede escribir
- Utilice el mecanismo Multidex
13. Lea el siguiente código ensamblador
66a: push %rbp
66b: mov %rsp,%rbp
66e: mov %rdi,-0x18(%rbp)
672: mov %rsi,-0x20(%rbp)
676: movl $0x0,-0x4(%rbp)
67d: mov -0x4(%rbp),%eax
680: movslq %eax,%rdx
683: mov -0x20(%rbp),%rax
687: add %rdx,%rax
68a: mov -0x4(%rbp),%edx
68d: movslq %edx,%rcx
690: mov -0x18(%rbp),%rdx
694: add %rcx,%rdx
697: movzbl (%rax),%eax
69a: mov %al,(%rdx)
69c: mov -0x4(%rbp),%eax
69f: movslq %eax,%rdx
6a2: mov -0x20(%rbp),%rax
6a6: add %rdx,%rax
6a9: movzbl (%rax),%eax
6ac: test %al,%al
6ae: je 6b6
6b0: addl $0x1,-0x4(%rbp)
6b4: jmp 67d
6b6: nop
6b7: mov $0x0,%eax
6bc: pop %rbp
6bd: retq
Nota: El lado derecho del código ensamblador en forma de gnu en la pregunta es el operando de destino, y el lado izquierdo es el operando de origen% rdi,% rsi corresponden al primer parámetro y al segundo parámetro respectivamente
pedir:
- En qué función de cadena es más probable que sea el código (strcpy, strlen, strcmp, etc.), escriba el proceso de análisis.
- ¿En qué se diferencia esta función de la función de cadena en la biblioteca estándar de C?
responder:
- strcpy
- El valor de retorno es diferente. La biblioteca estándar devuelve el puntero de destino. La función devuelve 0.