Parte 2
La primera parte de la API de frida que trataremos será el:
- Interceptor.attach(target, callbacks);
target to attach to offsets || symbols
Resolviendo sleep() estáticamente:
1 | nm pew | grep sleep |
Podemos ver que sleep se encuentra en la dirección 0xcb340
- Confirmar el offset de sleep():
- Iniciar una sesión de debugeo de pew.
- Poner un breakpoint en main y correr programa con r.
- Buscar info proc map/vmmap para libc.
- Coger el mapped offset y añadir 0xcb340 dentro de info symbol 0x00007f8565226000 + 0xcb340
Al sumar al inicio la dirección en la que comienza la ejecución, conseguimos el punto donde se da la llamada a sleep.
Resolver sleep() con Frida:
- Calcular el offset y add() a Module.getBaseAddress()
- Usar Module.getExportByName()
- Usar Debug.Symbol.getFunctionByName()
sleep() con frida y offset
1 | frida pew |
1 | [Local::pew]-> Process.enumerateModulesSync().filter(r => r.name == "libc-2.30.so"); |
Ó
1 | [Local::pew]-> Process.getModuleByName("libc-2.31.so"); |
- Enumerar los exports del módulo:
1 | Local::pew]-> Process.getModuleByName("libc-2.31.so").enumerateExports(); |
- Debugear symbol:
1 | [Local::pew]-> DebugSymbol.getFunctionByName("sleep"); |
Llegados a este punto tenemos el target, ahora faltan las callbacks
- Callbacks:
1 | Interceptor.attach(sleepPtr, { |
- interceptor-attach.js
1 | var sleep = Module.getExportByName(null, "sleep"); // Obtener el offset |
Ahora debemos ejecutarlo tal que (Al se attach, debe estar corriendo):
1 | frida pew -l interceptor-attach.js |
Que le hace el attach a sleep():
- attach gdb a la instancia que corre de pew, mientras la intrumentación está corriendo con gdb -q -p $(pidof pew)
Desensamblar la función sleep y echar un ojo al comienzo con
1
disas sleep
Si nos damos cuenta, la dirección de sleep ha cambiado, y tenemos 0x7f5124fec340 que es la que obtuvimos con Module.getExportByName(null, “sleep”);
Si detenemos la instrumentación de interceptor-attach.js, veremos que la dirección y código máquina cambian.
- CON INSTRUMENTACION
- SIN INSTRUMENTACION
