Parte 1
- FRIDA
Varios métodos de operación:
- Injected:
- Usando port bind
- El dispositivo remoto frida-server
- Embedded:
- Corre en local o remoto
- Completamente autónomo
- Injected:
Componentes para FRIDA:
- core
- Languages bindings (C, Python, Node, .NET, etc.)
- Runtime bridges para ObjC y Java. (Centradas en plataformas móviles)
- cli tools
- (frida, frida-ps, frida-trace, etc).
Diferencias entre spawning y attaching:
- Spawning lanzará y pausará la aplicación, está bien para una early instrumentation.
- Inject Frida to a running process(usando PTRACE) lanzando un nuevo hilo para usar instrumentation.
Hacer Spawning a una aplicación con frida:
1 | frida ./pew |
1 | [Local::pew]-> Process.id; |
Con %resume, se ejecuta, y para matarlo kill -9 $(pidof pew)
- Ejemplos de lanzamiento de Frida REPL(Read-eval-print loop):
1 | frida ./pew # spawnea la app |
La lógica de instrumentation está escrita en JavaScript.
frida expone su propia API en una librería en JavaScript.
Scripts externas con recarga automática:
1 | cat index.js |