1. A assinatura de dados é projetada para garantir
- Verifique a integridade dos dados
- Certifique-se de que a fonte de dados é legal
2. As vulnerabilidades que você conhece sobre o front end são
- XSS
- CSRF
3. Existem estruturas de gancho móveis
- xposed
- Substrato
- Cydia
- Frida
4. Ferramentas que podem pegar pacotes de dados são
- ubertooth
- tcpdump
- burpsuite
- HackRF
5. O que geralmente podemos fazer por meio da interface UART no dispositivo inteligente?
- Ver informações de depuração do dispositivo
- Obtenha as permissões do dispositivo
6. Quais das seguintes afirmações sobre processos, threads e corrotinas estão corretas?
- Thread é heap compartilhado, stack é privado
- De um modo geral, processo de sobrecarga de execução> thread> co-rotina
7. Quais dos seguintes são registros na função smali
- p0
- v0
8. Montagem do braço
Se o código a seguir estiver na função
char dst[32];
strcpy(dst, src);
Se o invasor pode controlar o src da variável de função, as opções que não podem ser implementadas na arquitetura ARM são:
- Cubra outras variáveis além de dst, mude a lógica do programa
- Substitua os dados da pilha para construir um ataque ROP
- Substituir a pilha de chamadas causa um segfault
O que pode ser alcançado é:
- Substitua o endereço de retorno para pular para o código malicioso copiado pelo invasor para o dst
9. Quais das seguintes tarefas são frequentemente usadas para análise de firmware de dispositivo inteligente:
- binwalk
10. A função no iOS é semelhante ao esquema de url, mas a segurança é melhor
- Links universais
11. xor% eax,% eax Qual é o valor de eax após a operação
- 0000 0000
12. Se houver uma vulnerabilidade de gravação arbitrária no Android, como converter a permissão de gravação em permissão de execução
- DexClassLoader carrega dinamicamente os arquivos executáveis dex que podem ser gravados pelo aplicativo
- O método java.lang.Runtime.exec executa o arquivo elf que o aplicativo pode escrever
- System.load e System.loadLibrary carregam dinamicamente os objetos compartilhados elf que podem ser gravados pelo aplicativo
- O código nativo usa sistema, popen e outras funções semelhantes para executar o arquivo elf que o aplicativo pode escrever
- O código nativo usa dlopen para carregar o objeto compartilhado elf gravável pelo aplicativo
- Utilizar mecanismo Multidex
13. Leia o seguinte código de montagem
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: O lado direito do código assembly na forma de gnu na questão é o operando de destino e o lado esquerdo é o operando de origem% rdi,% rsi correspondem ao primeiro parâmetro e ao segundo parâmetro, respectivamente
perguntar:
- Qual função de string o código provavelmente é (strcpy, strlen, strcmp, etc.), escreva o processo de análise.
- Como essa função é diferente da função string na biblioteca padrão C?
responda:
- forte
- O valor de retorno é diferente. A biblioteca padrão retorna o ponteiro de destino. A função retorna 0.