Análise dinâmica com tracing no QEMU
TL;DR
- Use o tracing embutido do QEMU (
-d) para registrar o fluxo de instruções. - Combine logs de trace com
objdumppara correlação rápida. - Não é preciso hardware real; o QEMU dá saída determinística.
1. Compile um alvo para trace
Crie:
| |
Compile:
| |
2. Trace de instruções com QEMU
| |
Agora inspecione build/trace.log para ver o fluxo de instruções.
3. Correlacione linhas do trace com o disassembly
| |
Use os valores de PC no log para saltar para as linhas de disassembly correspondentes.
Exercícios
- Adicione outra função e verifique se ela aparece no trace.
- Compile com
-O2e compare o comprimento do trace. - Adicione um branch condicional e veja como isso muda o trace.
Resumo
- Traces do QEMU dão uma forma leve de análise dinâmica.
- Disassembly + logs de trace permitem raciocinar sobre o fluxo de controle com precisão.
- Essa abordagem funciona totalmente em emulação, sem hardware necessário.