es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rastreo de creación de archivos mediante análisis dinámico de aplicaciones de iOS (utilizando Frida)

Usando FRIDA (http://frida.re), estoy depurando / ingeniería inversa una aplicación de iOS. El objetivo es rastrear todos los archivos o carpetas creados en el dispositivo por la aplicación durante la ejecución. Hasta ahora, he intentado ejecutar este fragmento de código en javascript que encontré en línea a través de Frida:

var fileExistsAtPath = ObjC.classes.NSFileManager["- fileExistsAtPath:"];

Interceptor.attach(fileExistsAtPath.implementation, {
    onEnter: function(args) {
      var path = ObjC.Object(args[2]);
      send("[NSFileManager fileExistsAtPath:] " + path.toString());

    },
  }
});

El código javascript funciona, sin embargo, la función que se rastrea solo verifica si un archivo existe o no (como se indica en la documentación: https://developer.apple.com/documentation/foundation/nsfilemanager/1415645-fileexistsatpath). No soy un desarrollador experimentado de iOS, por lo que si alguien tiene sugerencias sobre bibliotecas y funciones de iOS que se utilizan para crear (o escribir datos en) archivos / carpetas por aplicaciones, estaría muy agradecido. He encontrado el método “createFileAtPath” en la documentación de Apple Developer, pero no puedo encontrar ninguna instancia de este método en la aplicación en ejecución.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en ingeniería inversa de iOS, hay varias sugerencias que puedo hacer para rastrear cada archivo o carpeta creado en el dispositivo por la aplicación durante la ejecución.

    En primer lugar, puedes intentar interceptar los métodos que son responsables de crear o escribir datos en archivos o carpetas en la aplicación utilizando FRIDA. Aquí hay algunos métodos potenciales que pueden ser utilizados por la aplicación:

    • ObjC.classes.NSFileManager[“- createFileAtPath:contents:attributes:”]
    • ObjC.classes.NSFileManager[“- createDirectoryAtPath:withIntermediateDirectories:attributes:error:”]
    • ObjC.classes.NSData[“- writeToFile:atomically:”]
    • ObjC.classes.NSFileHandle[“- writeData:”]

    Puedes utilizar el mismo enfoque que el fragmento de código JavaScript que encontraste en línea para interceptar estos métodos y registrar información sobre los archivos o carpetas que se están creando o escribiendo.

    Otro enfoque que puedes intentar es utilizar una herramienta como iOS App Sandbox Analyzer (https://github.com/iosre/iOSAppSandboxAnalyzer) para analizar el sistema de archivos del sandbox de la aplicación. Esta herramienta te permite explorar el sistema de archivos de la aplicación e inspeccionar el contenido de archivos y directorios, lo cual puede ayudarte a identificar qué archivos o carpetas se están creando o escribiendo.

    Finalmente, también puedes intentar decompilar el código de la aplicación utilizando una herramienta como Hopper (https://www.hopperapp.com/) o IDA (https://www.hex-rays.com/products/ida/). Esto te permitirá examinar el código fuente de la aplicación e identificar los métodos responsables de crear o escribir datos en archivos o carpetas. Sin embargo, este enfoque es más avanzado y requiere más experiencia en ingeniería inversa.

Comments are closed.