Resumen ejecutivo
Los investigadores de la Unidad 42 han descubierto una familia de spyware para Android previamente desconocida, a la que hemos llamado LANDFALL. Para entregar el spyware, los atacantes explotaron una vulnerabilidad de día cero (CVE-2025-21042) en la biblioteca de procesamiento de imágenes de Android de Samsung. La falla específica que LANDFALL explotó, CVE-2025-21042, no es un caso aislado, sino parte de un patrón más amplio de problemas similares encontrados en múltiples plataformas móviles.
Esta vulnerabilidad fue explotada activamente in-the-wild (en ataques reales) antes de que Samsung la par_c_hara en abril de 2025, tras informes de ataques in-the-wild. Sin embargo, el exploit en sí —y el spyware de grado comercial utilizado con él— aún no han sido reportados y analizados públicamente.
LANDFALL estaba incrustado en archivos de imagen maliciosos (formato de archivo DNG) que parecen haber sido enviados a través de WhatsApp, permitiendo potencialmente una cadena de infección de cero clic (sin necesidad de interacción del usuario). Este método se asemeja mucho a una cadena de exploit que involucra a Apple y WhatsApp que llamó la atención en agosto de 2025. También se asemeja a una cadena de exploit que probablemente ocurrió usando una vulnerabilidad de día cero similar (CVE-2025-21043) revelada en septiembre. Nuestra investigación no identificó ninguna vulnerabilidad desconocida en WhatsApp.
Es importante destacar que nuestro hallazgo es anterior a estas divulgaciones: la campaña LANDFALL ya estaba operativa a mediados de 2024, utilizando la vulnerabilidad de día cero de Android/Samsung (CVE-2025-21042) meses antes de que fuera corregida.
La vulnerabilidad ha sido par_c_hada desde abril de 2025, por lo que no existe un riesgo continuo para los usuarios actuales de Samsung. En septiembre, Samsung también par_c_hó otra vulnerabilidad de día cero (CVE-2025-21043) en la misma biblioteca de procesamiento de imágenes, protegiendo aún más contra este tipo de ataque. Nuestra investigación no identificó ninguna vulnerabilidad en WhatsApp y todo indica que solo se utilizó como ruta de entrega, probablemente debido a su uso prevalente por parte de los objetivos de esta actividad.
Nuestra investigación analiza la explotación histórica que ocurrió antes del parche, proporcionando una visibilidad poco común de una operación de spyware avanzada que no se había informado públicamente.
Hallazgos clave:
- LANDFALL es un spyware de Android diseñado específicamente contra dispositivos Samsung Galaxy, utilizado en actividades de intrusión dirigidas en el Medio Oriente.
- LANDFALL permitió una vigilancia integral, incluida la grabación de micrófono, el seguimiento de la ubicación y la recopilación de fotos, contactos y registros de llamadas.
- El spyware se entrega a través de archivos de imagen DNG malformados que explotan CVE-2025-21042, una vulnerabilidad crítica de día cero en la biblioteca de procesamiento de imágenes de Samsung, que fue explotada in-the-wild.
- La cadena de exploit posiblemente implicó la entrega de cero clic a través de WhatsApp, utilizando imágenes maliciosamente diseñadas, similar a las cadenas de exploit recientes vistas en iOS y Samsung Galaxy.
- La campaña comparte infraestructura y patrones de tradecraft (tácticas, técnicas y procedimientos) con operaciones de spyware comercial en el Medio Oriente, lo que indica posibles vínculos con actores ofensivos del sector privado (PSOA, por private-sector offensive actors).
- LANDFALL permaneció activo y sin ser detectado durante meses.
Los clientes de Palo Alto Networks están mejor protegidos a través de los siguientes productos y servicios:
Si cree que puede haber sido comprometido o tiene un asunto urgente, comuníquese con el equipo de Respuesta a Incidentes de la Unit 42.
| Temas relacionados de Unit 42 | Samsung, Vulnerabilidades |
Descubrimiento del spyware LANDFALL
A mediados de 2025, tras la divulgación pública de una cadena de exploit dirigida a dispositivos iOS, buscamos muestras del exploit de iOS. Esto nos llevó a descubrir el spyware de Android que llamamos LANDFALL.
Específicamente, Unit 42 descubrió varias muestras de archivos de imagen DNG que contenían spyware de Android utilizado en una cadena de exploit dirigida a dispositivos Samsung Galaxy. Nuestro análisis confirmó que estas muestras explotan CVE-2025-21042 para entregar LANDFALL, posiblemente mediante exploits zero-click en aplicaciones de mensajería.
Comenzando la Cacería: La Cadena de Exploit de iOS y Cómo Nos Hizo Dudar
En agosto de 2025, Apple emitió actualizaciones de seguridad del sistema operativo para sus diversos productos para abordar CVE-2025-43300, una vulnerabilidad de día cero que afecta el análisis de imágenes DNG que, según se informa, los atacantes explotaron in-the-wild.
Ese mismo mes, WhatsApp reportó una vulnerabilidad de día cero para CVE-2025-55177 que se encadenó con la vulnerabilidad de procesamiento de imágenes para plataformas Apple en ataques sofisticados dirigidos a dispositivos iOS. La vulnerabilidad de WhatsApp permitía a los atacantes forzar a los dispositivos a procesar contenido de URL arbitrarias.
Cuando las dos vulnerabilidades se combinaron en una cadena de exploit, esto permitió la ejecución remota de código (remote code execution o RCE) zero-click a través de imágenes maliciosamente diseñadas enviadas a través de mensajes de WhatsApp.
Dada la divulgación de esta cadena de exploit in-the-wild y la ausencia de muestras de exploit disponibles públicamente, iniciamos una cacería (hunt) de esta actividad. Nuestra búsqueda llevó al descubrimiento de varios archivos de imagen DNG no detectados previamente que contenían spyware de Android incrustado, los cuales fueron subidos a VirusTotal a lo largo de 2024 y principios de 2025.
A juzgar por sus nombres de archivo (por ejemplo, WhatsApp Image 2025-02-10 at 4.54.17 PM.jpeg e IMG-20240723-WA0000.jpg), los atacantes probablemente entregaron estas muestras a través de WhatsApp. Nuestro análisis del spyware incrustado indica que está diseñado para dispositivos Samsung Galaxy.
Archivos de Imagen DNG Malformados: Una Nueva Tendencia de Vector de Ataque
Nuestro análisis del spyware LANDFALL comenzó con nuestro descubrimiento de archivos de imagen DNG malformados. DNG significa Digital Negative (Negativo Digital), y es un formato de archivo de imagen RAW basado en el formato de imagen TIFF. Los archivos de imagen DNG malformados que descubrimos tienen un archivo ZIP incrustado adjunto al final del archivo. La Figura 1 muestra una de estas muestras en un editor hexadecimal, indicando dónde comienza el contenido del archivo ZIP cerca del final del archivo.

Nuestro análisis indica que estos archivos DNG explotan CVE-2025-21042, una vulnerabilidad en la biblioteca de procesamiento de imágenes de Samsung libimagecodec.quram.so que Samsung parchó en abril de 2025. El exploit extrae archivos de biblioteca de objetos compartidos (.so) del archivo ZIP incrustado para ejecutar el spyware LANDFALL. La Figura 2 a continuación muestra un diagrama de flujo para este spyware.

La Tabla 1 muestra las muestras de imágenes DNG que descubrimos.
| Hash SHA256 | Nombre de archivo | Visto por primera vez |
| 9297888746158e38d320b05b27b0032b2cc29231be8990d87bc46f1e06456f93 | WhatsApp Image 2025-02-10 at 4.54.17 PM.jpeg | Feb. 10, 2025 |
| b06dec10e8ad0005ebb9da24204c96cb2e297bd8d418bc1c8983d066c0997756 | IMG-20250120-WA0005.jpg | Jan. 20, 2025 |
| c0f30c2a2d6f95b57128e78dc0b7180e69315057e62809de1926b75f86516b2e | WhatsApp Image 2024-08-27 at 11.48.40 AM.jpeg | Aug. 27, 2024 |
| b975b499baa3119ac5c2b3379306d4e50b9610e9bba3e56de7dfd3927a96032d | PHOTO-2024-08-27-11-48-41.jpg | Aug. 27, 2024 |
| 29882a3c426273a7302e852aa77662e168b6d44dcebfca53757e29a9cdf02483 | IMG-20240723-WA0001.jpg | July 23, 2024 |
| b45817ffb0355badcc89f2d7d48eecf00ebdf2b966ac986514f9d971f6c57d18 | IMG-20240723-WA0000.jpg | July 23, 2024 |
Tabla 1. Archivos DNG con malware incrustado.
Los nombres de archivo con cadenas como WhatsApp Image y WA000 implican que los atacantes podrían haber intentado entregar el spyware de Android incrustado a través de WhatsApp. Esto coincide con informes públicos anteriores de explotación similar basada en imágenes DNG a través de WhatsApp dirigida a dispositivos Apple. Además, los investigadores de WhatsApp identificaron y reportaron una vulnerabilidad DNG similar, CVE-2025-21043, a Samsung.
Distribución del spyware LANDFALL: Cadenas de exploits de malware para dispositivos móviles
Generalmente, el malware para dispositivos móviles distribuido mediante exploits requiere una cadena de exploits a través de diferentes vulnerabilidades para lograr una infección exitosa. Diversos estudios han documentado casos de al menos dos vulnerabilidades al distribuir spyware, pero las cadenas de exploits modernas para el spyware son mucho más complejas, vinculando múltiples vulnerabilidades para comprometer dispositivos móviles y ganar privilegios.
Aún no hemos descubierto ningún exploit adicional asociado a esta actividad.
Consulte la sección posterior, “Cómo LANDFALL encaja en el panorama general,” para obtener una descripción más completa de las vulnerabilidades conocidas involucradas en esta y otras cadenas de exploits similares.
Análisis del Spyware LANDFALL
LANDFALL es un spyware para Android diseñado específicamente para dispositivos Samsung Galaxy, probablemente utilizado en actividades de intrusión dirigidas en Medio Oriente. Este spyware modular está diseñado para el espionaje y la exfiltración de datos.
La cadena de infección de LANDFALL involucra un exploit para CVE-2025-21042, una vulnerabilidad en la biblioteca de procesamiento de imágenes de Samsung rastreada por el proveedor con el designador SVE (Samsung Vulnerabilities and Exposures) SVE-2024-1969. Creemos que una cadena de ataque completa seguiría un patrón de posible ejecución remota de código zero-click, comenzando con la entrega de las imágenes DNG malformadas.
Dos componentes del spyware LANDFALL están incrustados dentro de las imágenes DNG malformadas y serían extraídos y ejecutados, tras un exploit exitoso:
- Cargador (b.so): Un objeto compartido ELF ARM64 (106 KB, stripped y vinculado dinámicamente) que sirve como el backdoor principal.
- Manipulador de Políticas SELinux (l.so): Extraído de un binario ELF comprimido con XZ, este componente está diseñado para manipular la política SELinux del dispositivo para otorgar a LANDFALL permisos elevados y ayudar a la persistencia. (Apéndice A - Manipulación de la Política SELinux)
La Tabla 2 muestra los archivos componentes de LANDFALL incrustados dentro de las muestras DNG maliciosas.
| Hash SHA256 | Componente LANDFALL | Visto por primera vez |
| ffeeb0356abb56c5084756a5ab0a39002832403bca5290bb6d794d14b642ffe2 | Componente b.so | July 23, 2024 |
| d2fafc7100f33a11089e98b660a85bd479eab761b137cca83b1f6d19629dd3b0 | Componente b.so | Aug. 27, 2024 |
| a62a2400bf93ed84ebadf22b441924f904d3fcda7d1507ba309a4b1801d44495 | Componente b.so | Jan. 23, 2025 |
| 384f073d3d51e0f2e1586b6050af62de886ff448735d963dfc026580096d81bd | Componente b.so | Feb. 10, 2025 |
| 211311468f3673f005031d5f77d4d716e80cbf3c1f0bb1f148f2200920513261 | Archivo comprimido XZ (l) para el manipulador de políticas SELinux | July 23, 2024 |
| 69cf56ac6f3888efa7a1306977f431fd1edb369a5fd4591ce37b72b7e01955ee | Manipulador de políticas SELinux (l.so) extraído del archivo comprimido XZ | July 23, 2024 |
Tabla 2. Componentes de LANDFALL incrustados en los archivos de imagen DNG.
Nuestro análisis indica que LANDFALL es un spyware de Android multicomponente diseñado para monitoreo y exfiltración de datos.
Nuestro análisis se centra en el componente b.so, que sirve como el cargador inicial para un framework LANDFALL más amplio. En sus propios artefactos de depuración, el componente se refiere a sí mismo como "Bridge Head" (Cabeza de Puente). Esto será de interés más adelante cuando discutamos las posibles relaciones entre LANDFALL y grupos de spyware conocidos.
Capacidades Potenciales de LANDFALL
El componente b.so de LANDFALL contiene numerosas cadenas de depuración y estado, pero no contiene la lógica que realmente hace referencia a la mayoría de estas cadenas. Esto sugiere que b.so descargaría componentes adicionales para estas capacidades. Nuestro análisis de las cadenas de comando incrustadas y las rutas de ejecución dentro del archivo b.so proporciona información sobre las capacidades potenciales más amplias de LANDFALL.
Huella Digital del Dispositivo (Device Fingerprinting)
- Versión del SO
- ID de hardware (IMEI)
- ID de SIM/Suscriptor (IMSI)
- Serie de la tarjeta SIM
- Cuenta de usuario
- Número de correo de voz
- Configuración de red
- Inventario de aplicaciones instaladas
- Acceso a servicios de ubicación
- Estado de VPN
- Estado de depuración USB
- Bluetooth
Exfiltración de Datos
- Grabación de micrófono
- Grabación de llamadas
- Historial de llamadas
- Base de datos de contactos
- Datos de SMS/mensajería
- Fotos de la cámara
- Archivos arbitrarios
- Bases de datos en el dispositivo (historial de navegación, etc.)
Ejecución, Carga y Persistencia
- Carga de módulos de objetos compartidos nativos (.so)
- Carga y ejecución de archivos DEX desde memoria y disco
- Inyección de procesos
- Ejecución mediante LD_PRELOAD
- Ejecución de comandos arbitrarios
- Manipulación de SELinux
- Persistencia
- Modificación de la política SELinux mediante binario comprimido
- Monitoreo del directorio de medios de WhatsApp para payloads adicionales
- Registro del cliente web de WhatsApp
- Manipulación del sistema de archivos en directorios de aplicaciones de Android
- Manipulación del sistema de archivos
Evasión y Elusión de Defensas
- Detección del depurador TracerPid
- Detección del framework de instrumentación Frida
- Detección del framework Xposed
- Carga dinámica de bibliotecas con manipulación de namespaces
- Certificate pinning para comunicaciones C2
- Limpieza del payload de imágenes de WhatsApp
Modelos de dispositivos objetivo
- Galaxy S23 Series (S91[168]BXX.*)
- Galaxy S24 Series (S921BXXU1AWM9, S92[168]BXX.*)
- Galaxy Z Fold4 (F936BXXS4DWJ1)
- Galaxy S22 (S901EXXS4CWD1)
- Galaxy Z Flip4 (F721BXXU1CWAC)
La Figura 3 muestra un ejemplo de las cadenas de modelos de dispositivos objetivo en una muestra b.so de LANDFALL.

Comunicación C2
El componente b.so de LANDFALL se comunica con su servidor C2 a través de HTTPS utilizando un puerto TCP efímero no estándar. Antes del tráfico HTTPS, puede iniciar tráfico de ping como se detalla en la sección Comunicación con el servidor C2 del Apéndice B. Para el tráfico HTTPS, b.so inicia el contacto con una solicitud POST que contiene información detallada del dispositivo y del spyware, como:
- ID del agente
- Ruta del dispositivo
- ID de usuario
La Figura 4 muestra una interpretación de esta solicitud POST inicial, donde usamos curl para mostrar cómo se estructuraría esta solicitud. Es de notar que LANDFALL no usa curl para generar este tráfico.

El tráfico de baliza (beacon) inicial es una solicitud HTTP POST al servidor C2 con los siguientes parámetros:
- protocol: La versión del protocolo (p. ej., A1.5.0)
- protocol_ver: La versión del protocolo (p. ej., "")
- type: El tipo de mensaje (p. ej., MSG_TYPE_GET_AGENT)
- agent_id: El identificador único del agente
- upload_id: Un identificador de carga
- command_id: Un identificador de comando
- source: La fuente de la solicitud (p. ej., bridge_head)
- incremental_build: La versión de compilación incremental (p. ej., v1.5.0)
- euid: El ID de usuario efectivo del proceso
- bh_path: La ruta al binario b.so en el dispositivo
- runner: El modo de ejecución (p. ej., I)
Configuración del archivo b.so
La configuración del archivo b.so se gestiona a través de una combinación de valores predeterminados codificados (hard-coded) y un objeto JSON cifrado incrustado dentro de sí mismo. Esta configuración incluye detalles de C2, claves criptográficas e identificadores únicos para el agente y los comandos.
La Figura 5 muestra un ejemplo de esta configuración.

Este componente b.so de LANDFALL también contiene una serie de valores de configuración codificados. Estos se utilizan como valores predeterminados si no se proporcionan en el objeto JSON cifrado. Aún no entendemos completamente el propósito de algunos de estos valores. La Tabla 3 muestra estos valores de configuración predeterminados codificados.
| Nombre del campo | Valor predeterminado |
|---|---|
| allow_wifi | true |
| allow_mobile | true |
| allow_roaming | false |
| socket_timeout | 5 |
| sleep_time | 60 (0x3c) |
| sleep_time_between_retries | 35 (0x23) |
| suicide_time | 7200 (0x1c20) |
| live_mode_expiration | 0 |
| allow_min_battery | 0 |
| is_persistent | false |
Tabla 3. Valores de configuración predeterminados codificados para el malware LANDFALL.
Infraestructura C2 para el spyware LANDFALL
Basados en nuestro análisis de estas muestras, identificamos seis servidores C2 para LANDFALL, que se muestran a continuación en la Tabla 4.
| Dirección IP | Dominio | Visto por primera vez | Visto por última vez |
| 194.76.224[.]127 | brightvideodesigns[.]com | Feb. 7, 2025 | Sept. 19, 2025 |
| 91.132.92[.]35 | hotelsitereview[.]com | Feb. 3, 2025 | Sept. 16, 2025 |
| 92.243.65[.]240 | healthyeatingontherun[.]com | Oct. 11, 2024 | Sept. 2, 2025 |
| 192.36.57[.]56 | projectmanagerskills[.]com | Feb. 3, 2025 | Aug. 26, 2025 |
| 46.246.28[.]75 | Unknown | Unknown | Unknown |
| 45.155.250[.]158 | Unknown | Unknown | Unknown |
Tabla 4. Servidores C2 de LANDFALL.
Cómo Encaja LANDFALL en el Panorama General
LANDFALL es un ejemplo de un patrón más amplio de cadenas de exploit que afectan a dispositivos móviles, relacionadas con vulnerabilidades de procesamiento de imágenes DNG.
El uso de un archivo DNG malformado por parte de la campaña LANDFALL resalta un vector de ataque significativo y recurrente: el ataque a vulnerabilidades dentro de las bibliotecas de procesamiento de imágenes DNG. La falla específica que LANDFALL explotó, CVE-2025-21042, no es un caso aislado, sino parte de un patrón más amplio de problemas similares encontrados en múltiples plataformas móviles. De hecho, a principios de 2025, Samsung identificó otra falla DNG en la misma biblioteca de Samsung, CVE-2025-21043, y se identificó la cadena de exploit paralela en iOS que aprovechaba CVE-2025-43300 en Apple iOS y CVE-2025-55177 en WhatsApp.
Relación con CVE-2025-21043 (SVE-2025-1702)
Nuestro análisis reveló una posible conexión con una vulnerabilidad separada en la misma biblioteca, CVE-2025-21043 (SVE-2025-1702), que Samsung parchó en su actualización de seguridad de septiembre de 2025. Si bien no se explotó en las muestras de LANDFALL que descubrimos, las similitudes entre el exploit para LANDFALL (CVE-2025-21042) y esta vulnerabilidad (CVE-2025-21043) son sorprendentes. Ambas vulnerabilidades se divulgaron públicamente casi al mismo tiempo y ambas están conectadas al procesamiento de archivos de imagen DNG entregados a través de aplicaciones de comunicación móvil.
CVE-2025-43300 de Apple
En agosto de 2025, Apple abordó CVE-2025-43300, una vulnerabilidad de día cero que afectaba el análisis de imágenes DNG, que se explotó activamente in-the-wild, para permitir la ejecución remota de código zero-click a través de imágenes maliciosas enviadas a través de aplicaciones de comunicación móvil.
No podemos confirmar si esta cadena se utilizó para entregar un equivalente de LANDFALL a iOS, o si es el mismo actor de amenazas detrás de los dos. Sin embargo, este desarrollo paralelo en el ecosistema de iOS, combinado con la divulgación de las vulnerabilidades de Samsung y Apple con solo unas pocas semanas de diferencia, resalta un patrón más amplio de vulnerabilidades de procesamiento de imágenes DNG que se aprovechan en sofisticados ataques de spyware móvil.

- Julio 2024 – Febrero 2025: Las muestras iniciales de archivos de imagen DNG maliciosos que transportan LANDFALL se envían por primera vez a VirusTotal en julio de 2024, y aparecen muestras adicionales periódicamente durante los siguientes meses.
- Los archivos DNG explotan una vulnerabilidad en la biblioteca de procesamiento de imágenes de Android de Samsung (SVE-2024-1969, CVE-2025-21042)
- 25 sep. 2024: La vulnerabilidad que se convierte en CVE-2025-21042 se reporta privadamente a Samsung.
- Abril 2025: Samsung publica una actualización de firmware para abordar la vulnerabilidad, SVE-2024-1969, más tarde conocida como CVE-2025-21042 cuando se divulgó públicamente.
- Agosto 2025: Ocurren desarrollos paralelos.
- Apple parcha una vulnerabilidad de día cero que afecta el análisis de imágenes DNG, que fue explotada activamente in-the-wild (CVE-2025-43300) y encadenada con la vulnerabilidad de WhatsApp (CVE-2025-5177).
- WhatsApp revela una vulnerabilidad (CVE-2025-55177) que se encadenó con la vulnerabilidad de día cero de análisis de imágenes DNG de Apple (CVE-2025-43300).
- Descubrimos archivos de imagen DNG que explotan CVE-2025-21042 para entregar spyware de Android que identificamos como LANDFALL.
- Samsung publica CVE-2025-21043, otra vulnerabilidad de día cero relacionada con DNG.
- Septiembre 2025: Samsung emite actualizaciones de firmware de dispositivos móviles para CVE-2025-21043 (SVE-2025-1702). Al mismo tiempo, asigna CVE-2025-21042 (SVE-20254-1969) a la vulnerabilidad anterior que previamente no tenía designador CVE.
Víctimas potenciales
El análisis de los datos de envío de VirusTotal para los archivos DNG maliciosos indica objetivos potenciales en Irak, Irán, Turquía y Marruecos.
El CERT nacional de Turquía (en turco, USOM) reportó direcciones IP utilizadas por los servidores C2 de LANDFALL como maliciosas, relacionadas con móviles y APT, lo que también respalda el posible ataque a víctimas en Turquía.
Relación con grupos de spyware conocidos
Si bien no pudimos recuperar todos los componentes del framework LANDFALL, está claro que la herramienta es de grado comercial. Es posible que haya utilizado varios exploits de día cero en su cadena de infección.
Estas herramientas a menudo son desarrolladas y vendidas como spyware comercial y atribuidas a grupos conocidos como actores ofensivos del sector privado (PSOA), que a menudo son entidades legales legítimas. Según se informa, estos grupos brindan servicios a entidades gubernamentales.
En este momento no pudimos atribuir oficialmente la actividad de LANDFALL a un PSOA o actor de amenazas conocido. La Unit 42 rastrea la actividad relacionada con CVE-2025-21042 y LANDFALL como CL-UNK-1054.
Dos aspectos son notables y vale la pena destacar.
En primer lugar, la infraestructura C2 de LANDFALL y los patrones de registro de dominios comparten similitudes con la infraestructura asociada con Stealth Falcon, según lo observado por la Unit 42. Estas similitudes se basan en varios informes públicos, así como en la actividad de Stealth Falcon que hemos analizado para objetivos en Medio Oriente.
En segundo lugar, en sus propios artefactos de depuración, el componente de spyware que analizamos se refiere a sí mismo como "Bridge Head". Es de notar que el término Bridge Head (Cabeza de Puente) es un apodo común utilizado por algunas compañías ofensivas cibernéticas del sector privado (incluidas NSO, Variston, Cytrox y Quadream) para los cargadores (loaders) de primera etapa. Sin embargo, esta convención de nomenclatura por sí sola no constituye un vínculo de atribución directa.
Si bien este es un nombre común utilizado en el spyware móvil comercial para describir cargadores, presenta similitudes con el framework Heliconica. Este framework también contiene referencias a "BridgeHead", como informó Google TAG sobre el proveedor de spyware Variston. Google identificó a Variston como un PSOA con sede en Barcelona (proveedor de exploits). Análisis adicionales de Google y otros informes indicaron que las herramientas de Variston se suministraban a clientes en los Emiratos Árabes Unidos a través de un revendedor llamado Protect Electronic Systems (o Protected AE).
Este posible vínculo proveedor-cliente con los EAU es digno de mención, ya que Microsoft y otros informaron que Stealth Falcon también opera intensamente desde ese país. Variston supuestamente cesó sus operaciones a principios de 2025 luego de su exposición pública.
A fecha de octubre de 2025, excepto en la infraestructura, no hemos observado superposiciones directas entre las campañas móviles de LANDFALL y la actividad basada en endpoints de Stealth Falcon, ni vínculos fuertes directos con Stealth Falcon. Sin embargo, vale la pena discutir las similitudes.
Conclusión
El descubrimiento del spyware LANDFALL revela una campaña dirigida a dispositivos Android de Samsung. La cadena de exploit involucra CVE-2025-21042, una vulnerabilidad que fue parchada por Samsung en abril de 2025. La presencia de este spyware dentro de archivos de imagen DNG con convenciones de nomenclatura relacionadas con WhatsApp probablemente indica que los atacantes intentaron entregar el exploit a través de una aplicación de mensajería.
Desde la aparición inicial de muestras en julio de 2024, esta actividad resalta cómo los exploits sofisticados pueden permanecer en repositorios públicos durante un período prolongado antes de ser completamente comprendidos.
El análisis del cargador (loader) revela evidencia de actividad de grado comercial. Los componentes del spyware LANDFALL sugieren capacidades avanzadas de sigilo, persistencia y recopilación integral de datos de dispositivos Samsung modernos.
Sin embargo, no hemos analizado directamente los componentes de la siguiente etapa del spyware. Detalles adicionales sobre esto o sobre el método de entrega exacto proporcionarían aún más información sobre la actividad maliciosa.
Los clientes de Palo Alto Networks están mejor protegidos contra el spyware de Android LANDFALL a través de los siguientes productos:
- Los modelos de aprendizaje automático y las técnicas de análisis de Advanced WildFire han sido revisados y actualizados a la luz de los indicadores compartidos en esta investigación.
- Advanced URL Filtering y Advanced DNS Security identifican dominios y URL conocidos asociados con esta actividad como maliciosos.
- Advanced Threat Prevention tiene una detección incorporada basada en aprendizaje automático que puede detectar exploits en tiempo real.
Si cree que puede haber sido comprometido o tiene un asunto urgente, póngase en contacto con el equipo de Respuesta a Incidentes de la Unit 42 o llame:
- América del Norte: Línea gratuita: +1 (866) 486-4842 (866.4.UNIT42)
- Reino Unido: +44.20.3743.3660
- Europa y Medio Oriente: +31.20.299.3130
- Asia: +65.6983.8730
- Japón: +81.50.1790.0200
- Australia: +61.2.4062.7950
- India: 000 800 050 45107
Palo Alto Networks ha compartido estos hallazgos con nuestros colegas miembros de la Cyber Threat Alliance (CTA). Los miembros de la CTA utilizan esta inteligencia para desplegar rápidamente protecciones a sus clientes y para perturbar sistemáticamente a los ciberactores maliciosos. Obtenga más información sobre la Cyber Threat Alliance.
Indicadores de compromiso (IoC)
Muestras de malware
A continuación, en la Tabla 7, se muestra una lista de muestras de malware para la actividad LANDFALL.
| Hash SHA256 | Nombre de archivo | Tamaño |
|---|---|---|
| b06dec10e8ad0005ebb9da24204c96cb2e297bd8d418bc1c8983d066c0997756 | img-20250120-wa0005.jpg | 6.66 MB |
| c0f30c2a2d6f95b57128e78dc0b7180e69315057e62809de1926b75f86516b2e | 2.tiff | 6.58 MB |
| 9297888746158e38d320b05b27b0032b2cc29231be8990d87bc46f1e06456f93 | whatsapp image 2025-02-10 at 4.54.17 pm.jpeg | 6.66 MB |
| d2fafc7100f33a11089e98b660a85bd479eab761b137cca83b1f6d19629dd3b0 | b.so | 103.31 KB |
| 384f073d3d51e0f2e1586b6050af62de886ff448735d963dfc026580096d81bd | 103.31 KB | |
| b975b499baa3119ac5c2b3379306d4e50b9610e9bba3e56de7dfd3927a96032d | 1.jpeg | 5.66 MB |
| a62a2400bf93ed84ebadf22b441924f904d3fcda7d1507ba309a4b1801d44495 | 103.31 KB | |
| 29882a3c426273a7302e852aa77662e168b6d44dcebfca53757e29a9cdf02483 | img-20240723-wa0001.jpg | 6.58 MB |
| 2425f15eb542fca82892fd107ac19d63d4d112ddbfe698650f0c25acf6f8d78a | 6357fc.zip | 380.71 KB |
| b45817ffb0355badcc89f2d7d48eecf00ebdf2b966ac986514f9d971f6c57d18 | img-20240723-wa0000.jpg | 5.65 MB |
| 69cf56ac6f3888efa7a1306977f431fd1edb369a5fd4591ce37b72b7e01955ee | localfile~ | 1.42 MB |
| 211311468f3673f005031d5f77d4d716e80cbf3c1f0bb1f148f2200920513261 | l | 332.88 KB |
| ffeeb0356abb56c5084756a5ab0a39002832403bca5290bb6d794d14b642ffe2 | 103.31 KB |
Tabla 7. Muestras de malware para la actividad LANDFALL.
Direcciones IP
- 45.155.250[.]158
- 46.246.28[.]75
- 91.132.92[.]35
- 92.243.65[.]240
- 192.36.57[.]56
- 194.76.224[.]127
Nombres de dominio
- brightvideodesigns[.]com
- healthyeatingontherun[.]com
- hotelsitereview[.]com
- projectmanagerskills[.]com
Recursos adicionales
- NVD - CVE-2025-21042 – NIST
- NVD - CVE-2025-43300 – NIST
- NVD - CVE-2025-55177 – NIST
- Samsung Mobile Security Updates – Samsung
- WhatsApp Security Advisories 2025 – WhatsApp
- Stealth Falcon's Exploit of Microsoft Zero Day Vulnerability – Check Point Research
- Stealth Falcon preying over Middle Eastern skies with Deadglyph – ESET
- Buying Spying [PDF] – Google TAG
- New details on commercial spyware vendor Variston – Google TAG
- IP address entry for 91.132.92[.]35 – Turkish National CERT (USOM)
- CVE-2025-21043 Analysis: When DNG Opcodes Become Attack Vectors – Blog, Matt Suiche
- ELEGANT BOUNCER Detection Framework – Matt Suiche, GitHub
Apéndices
Apéndice A: Manipulación de políticas de SELinux
El componente de LANDFALL para la manipulación de políticas de SELinux es l.so. Este archivo proporciona la capacidad de eludir los controles de seguridad del sistema. Se descomprime de /data/data/com.samsung.ipservice/files/l a /data/data/com.samsung.ipservice/files/l.so y se ejecuta.
En lugar de contener reglas codificadas, l.so implementa un motor genérico que puede analizar y cargar dinámicamente nuevas declaraciones de política SELinux desde una fuente externa, modificando la política en ejecución en la memoria.
Funciones exportadas relevantes y únicas:
- sepolicy_from_data: Cargar política desde datos binarios
- sepolicy_add_statement: Agregar declaraciones de política individuales
- sepolicy_to_buffer: Serializar política modificada
- sepolicy_delete: Limpiar objetos de política
Apéndice B: Detalles adicionales sobre el análisis del spyware LANDFALL
Este apéndice detalla las capacidades observadas del componente cargador de LANDFALL, así como aquellas que inferimos que existen en otros módulos del framework completo de LANDFALL a los que aún no hemos accedido.
El Bridge Head de LANDFALL, nombrado en el disco como b.so, es cargado por un exploit en el dispositivo. Inmediatamente después de ser cargado post-exploit, LANDFALL analiza LD_PRELOAD del entorno para evitar heredar preloads ascendentes. Lee el ID de usuario efectivo a través de geteuid() y lo almacena globalmente para que las bifurcaciones posteriores puedan ajustar el comportamiento para root versus no-root. Luego llama a la rutina principal.
Recopila conceptos básicos del proceso (pid padre, euid, cadena de compilación de Android), lee un indicador (flag) de ejecutor de la variable de entorno R y toma una copia de él para acciones posteriores. Este valor (típicamente I para interactivo o P para pasivo) se informará al comando y control y determinará cómo lanza un payload en etapas posteriores. Resuelve su propia ruta mapeada, selecciona la base privada de la aplicación en /data/data/com.samsung.ipservice/files/ como su directorio de trabajo y luego construye dos rutas secundarias allí. Una ruta es para la descarga por etapas y otra es para el l.so final utilizado para la ejecución.
Configuración
LANDFALL lee y descifra con XOR una configuración JSON directamente desde su propio archivo. El spyware normaliza la configuración escribiendo valores predeterminados internos de nuevo en el objeto analizado: los campos numéricos se establecen de forma predeterminada cuando faltan o son cero, y ciertos booleanos se fuerzan a valores fijos independientemente de la configuración suministrada. Finalmente, comprueba que una clave pública (X.509 DER) esté presente en la configuración y sale si no es así.
La Tabla 9 resume la normalización de configuración realizada en esta etapa.
| Nombre de clave | Tipo de valor | Predeterminado | Requerido |
| allow_wifi | booleano | Forzado a true (sobrescribe false/faltante a true) | No |
| allow_mobile | booleano | Forzado a true (sobrescribe false/faltante a true)) | No |
| allow_roaming | booleano | Predeterminado false si falta/false; true permanece true | No |
| allow_min_battery | integer | 0 si el valor es 0 o falta | No |
| sleep_time | integer (seconds) | 60 si el valor es 0 o falta | No |
| sleep_time_between_retries | integer (seconds) | 35 si el valor es 0 o falta | No |
| suicide_time | integer (seconds) | 7200 si el valor es 0 o falta | No |
| live_mode_expiration | integer (seconds) | 0 si el valor es 0 o falta | No |
| socket_timeout | integer (seconds) | 5 si el valor es 0 o falta | No |
| is_persistent | booleano | Predeterminado false si falta/false; true permanece true | No |
| bridge_head_version_major | integer | Establecido en 2 (siempre) | No |
| bridge_head_version_minor | integer | Establecido en 1 (siempre) | No |
| cnc_hostname | string | Ninguno; debe estar presente | Sí |
| cnc_port | integer | Ninguno; debe ser distinto de cero | Sí |
| cnc_base_url | string | Ninguno; debe estar presente | Sí |
| agent_id | string (UUID) | Ninguno; debe estar presente | Sí |
| command_id | string (UUID) | Ninguno; debe estar presente | Sí |
| commands | array | Debe existir; leído y liberado (estructura no retenida aquí) | Sí |
| public_key | X.509 DER (bytes) | Ninguno; debe estar presente y ser válido | Sí |
Tabla 9. Claves y valores para el malware LANDFALL.
Comunicación con el servidor C2
Una vez completada la configuración, b.so carga las funciones de red y cifrado necesarias, configura su entorno SSL y prepara un contexto de cliente seguro para futuras comunicaciones HTTPS. Si alguna parte de esta configuración falla, sale limpiamente en lugar de arriesgarse a una configuración parcial.
Antes de entrar en el bucle de baliza (beaconing) C2, opcionalmente emite telemetría. Si se está ejecutando como root, formatea una línea concisa de "iniciado" que incluye:
- Un marcador de versión fijo (p. ej., v1.5.0)
- pid
- euid
- Modo de ejecutor
Luego envía eso a través de una solicitud POST al servidor C2, como se muestra a continuación.

Si el modo de ejecutor es I, prepara primero el ayudante de SELinux: localiza el ayudante de política comprimido (/data/data/com.samsung.ipservice/files/l), lo infla a través de un decodificador XZ interno en un búfer nuevo y escribe el resultado en data/data/com.samsung.ipservice/files/l.so. Luego hace baliza al servidor C2 enviando un ping usando el agent_id sin guiones como payload. El resultado no condiciona el resto del flujo y sirve como telemetría del operador.
Un ejemplo de código para un ping en modo I es el siguiente.

Solo entonces comienza el bucle principal de baliza C2. Registra el tiempo cero y aplica un presupuesto estricto de tiempo de reloj de pared de aproximadamente 7200 segundos (suicide_time) para toda la sesión.
Pone a cero dos búferes de ruta grandes y reutilizables: uno para el blob sin procesar que puede llegar del servidor y otro hermano para el objeto compartido descomprimido. Ambas rutas viven bajo el directorio de trabajo privado de la aplicación (p. ej., /data/data/com.samsung.ipservice/files/). Con las rutas listas, contacta al servidor de comando y control construyendo un cuerpo compacto estilo codificado en URL de pares key=value:
- Una etiqueta de protocolo/variante; el tipo de mensaje de baliza
- El agent_id, command_id y un upload_id nuevo (UUIDv4) para correlación
- source=bridge_head
- Euid
- El indicador de ejecutor y su ruta de instalación en disco
Cuando corresponde, calcula un SHA-1 sobre parte del mensaje y lo adjunta. Utiliza la siguiente cadena de Agente de Usuario (User-Agent) de Chrome:
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36.
Las solicitudes se dirigen a la ruta base configurada (p. ej., POST /is/ HTTP/1.0). Antes de enviar cualquier dato de aplicación, fija (pins) la conexión TLS.
Mientras lee la respuesta del servidor C2, LANDFALL comprueba el código de estado de la respuesta y mira a través de las cabeceras para determinar la longitud y el tipo del mensaje. Algunos códigos de estado, particularmente tiempos de espera y un conjunto enmascarado de 4xx/5xx (p. ej., 408, 504), se tratan como transitorios y desencadenan sleep(sleep_time_between_retries) (predeterminado 35 segundos) antes de reintentar con una conexión nueva. Una respuesta de no encontrado (p. ej., 404) se considera terminal para esta ejecución y sale del bucle. Si el estado indica éxito y hay un cuerpo presente, LANDFALL procede a la preparación (staging).
Payloads de siguiente etapa
La preparación comienza limpiando el estado del sistema de archivos. Si existe un blob sin procesar antiguo en la ruta temporal, lo elimina. Escribe los bytes sin procesar en un archivo de preparación llamado aa.so bajo el directorio de trabajo y luego intenta descomprimirlos usando un decodificador XZ/LZMA incorporado que se infla en un búfer preasignado de aproximadamente 5 MiB.
Si tiene éxito, escribe los bytes descomprimidos en dec_a.so (la ruta final .so) bajo el directorio de trabajo, borra el aa.so temporal y establece el modo de archivo en dec_a.so a 777 para asegurar que sea cargable en varios contextos.
Ejemplo de inflador XZ (recortado):

Con el objeto compartido en su lugar (dec_a.so), elige una estrategia de ejecución basada en el indicador de ejecutor. Para configuraciones interactivas (I), exporta dos variables de entorno y lanza una herramienta de sistema benigna de forma sincrónica:
- LD_PRELOAD=<final.so> PRELOAD_PATH=/data/data/com.samsung.ipservice/files/l.so /system/bin/id (donde <final.so> es dec_a.so).
El PRELOAD_PATH apunta a la ruta del dispositivo donde se espera el contenido de la política SELinux, permitiendo que el código precargado encuentre y aplique la política al inicio. Tenga en cuenta que este PRELOAD_PATH solo se usa en modo interactivo, la ruta de ejecución pasiva lo omite.
Para ejecuciones pasivas (P), lanza la misma herramienta en segundo plano:
- LD_PRELOAD=<final.so> /system/bin/id (con <final.so> es dec_a.so)
Esto se hace para que el control regrese rápidamente mientras el ayudante se inicializa en otro proceso. Internamente, ambos se despachan a través de un wrapper de shell (/system/bin/sh -c <cmd>). En ambos casos, acepta solo resultados de éxito estrechos:
- código de salida 0 o un 0x15 específico; cualquier otra cosa se trata como falla y rompe el bucle
Tras una carga exitosa, formatea y envía una línea de "finalizado" que refleja el mensaje de apertura, incluyendo:
- Marcador de versión
- pid
- incremental_build
- ejecutor

Luego libera cadenas y búferes transitorios. Si no había payload disponible, o si ocurrió un error transitorio, comprueba el tiempo de reloj de pared transcurrido contra su presupuesto de aproximadamente 7200 segundos. Si queda tiempo, duerme (sleep) el intervalo configurado e intenta de nuevo.
Finalmente, cuando el bucle termina, ya sea después de una carga exitosa de la siguiente etapa o debido al presupuesto de tiempo o errores irrecuperables, se desenrolla limpiamente. Si se está ejecutando como root, prefiere una ruta directa _exit(status) en lugar de un retorno normal para minimizar los efectos secundarios en el tiempo de ejecución. En todos los casos, su objetivo es dejar atrás solo los artefactos mínimos necesarios para que el código preparado continúe.
Capacidades no referenciadas
Durante la ingeniería inversa, identificamos múltiples rutinas compiladas en el componente b.so que no son invocadas por su flujo de control observado. Estas características latentes parecen diseñadas para ser utilizadas por los módulos siguientes cargados.
También es muy probable que algunas de estas funciones sean restos de versiones anteriores de LANDFALL. Revelan comportamientos concretos orientados en torno a las rutas de medios de WhatsApp, descubrimiento de DCIM, preparación del sistema de archivos e higiene de procesos en Android:
- Una rutina prepara una línea de telemetría "iniciado" y luego interactúa con el subsistema de medios del dispositivo. Formatea la línea:
- BH v1.5.0 started - pid: , euid=, incremental_build: v1.5.0, runner:
- Si sus comprobaciones internas pasan, ejecuta una transmisión (broadcast) para forzar un reescaneo de la galería usando el shell exacto:
- am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/hacked.jpg
- En el mismo flujo, también construye una sonda de "foto más reciente" sobre DCIM usando:
- find /sdcard/DCIM -type f -exec ls -t1 {} + | grep -v hacked| head -1
- Este patrón es consistente con la recolección del último elemento de la cámara mientras excluye un artefacto que puede plantar. Esta rutina está compilada pero no es llamada por ningún otro código en la muestra.
- Plantador de ruta de medios de WhatsApp. Otra rutina decodifica un PNG 1x1 codificado en Base64 (iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ…JRU5ErkJggg==) y busca en los directorios de medios de WhatsApp en el almacenamiento externo una ruta de archivo reciente que coincida con el identificador del agente (al UUID primero se le quitan los guiones). Construye y ejecuta una tubería (pipeline) de búsqueda a través de las rutas predeterminadas (ID 0) y multiusuario (ID 95):
- find /storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp\ Images/ /storage/emulated/95/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp\ Images/ -type f -atime -720m -maxdepth 1 -exec grep -lo '.*<agentIdNoHyphens>.*' {} \; -quit 2>/dev/null.
- Si se devuelve dicha ruta, escribe el PNG decodificado allí textualmente. Esto parece ser un artefacto de cobertura o una etapa de marcador encubierto dirigida específicamente a las imágenes de WhatsApp.
- Otro ayudante toma un directorio base y una cadena y devuelve una ruta JPEG coincidente ejecutando:
- find <base> -name '*.jpg' -exec grep -le '.*<pattern>.*' {} \;
- Recorta las nuevas líneas finales y verifica que la ruta exista antes de devolverla.
- Comprobación de evasión de Zygote: Un ayudante de higiene de procesos asigna un búfer para su propia línea de comandos (cmdline) y devuelve éxito solo cuando el nombre no coincide con zygote o zygote64. Está diseñado para evitar los procesos anfitriones especiales de Android.
- Resolvedor de símbolos SELinux y limpieza: Dos pequeñas rutinas manejan la plomería (plumbing) dinámica de SELinux.
- Una hace dlopen a /system/lib64/libselinux.so y resuelve getfilecon y setfilecon en punteros de función globales.
- La otra desmonta esto y borra los punteros.
- Ambas existen para admitir el trabajo de política/contexto de archivo pero no son referenciadas por la ruta de código observada.
- Una rutina más sustancial acepta una lista de rutas del sistema de archivos. Para cada una, guarda la etiqueta actual a través de getfilecon, invoca un etiquetador interno en la ruta, aplica la propiedad a través de chown y luego restaura la etiqueta guardada con setfilecon. Devuelve códigos negativos distintos cuando chown o setfilecon fallan.
- Hay una sonda de archivo que intenta abrir una ruta y mapea el resultado a códigos de estado internos (éxito, permiso denegado, no encontrado, error genérico). También restablece el estado interno de la biblioteca (incluyendo cualquier manejador SELinux previamente abierto).
- Mapear resultado de ejecución de proceso a estado de mensaje: Un pequeño mapeador convierte el resultado de un ayudante interno de ejecución de comandos en códigos de catálogo de mensajes (p. ej., mapeando un retorno específico (1) al código CMD_STAT_* 0x0C y 2–3 a 0x51). Estandariza los informes para los ayudantes, pero no es alcanzado por la lógica actual.
- Construir un array JSON de informe de dispositivo: Otra rutina inactiva construye un array cJSON donde cada entrada lleva device_path, un campo binario codificado en Base64, un booleano last_updated y un estado textual derivado de la tabla interna CMD_STAT_*. Recorre un vector de entrada, lee el archivo referenciado en la memoria, lo codifica en Base64 y lo adjunta al array.
- Un pequeño ayudante de plantillas de cadenas encuentra ocurrencias del token --working_dir-- dentro de un valor JSON y las reemplaza con la ruta de tiempo de ejecución rastreada por b.so.
- Adjuntar TracerPid a la telemetría: Un ayudante de diagnóstico analiza /proc/self/status, extrae la línea TracerPid, la convierte a un entero y, si es mayor que cero, adjunta una clave/valor formateado en el cuerpo de la solicitud a través del constructor de cadenas de b.so.
- Un ayudante de preparación concatena un búfer existente con un bloque pseudoaleatorio derivado de una cadena de entrada:
- Siembra un byte con rand()
- Hace XOR a cada byte subsiguiente de la entrada en un acumulador rodante
- Escribe los bytes del acumulador como sufijo
- Luego escribe el búfer combinado en una ruta de archivo dada a través del escritor de b.so
- Un par de instalador/desinstalador de dos pasos utiliza tres claves de configuración: persistency_origin, persistency_payload y persistency_backup. La rutina principal comprueba que las tres estén configuradas, copia la copia de seguridad de nuevo al origen si es necesario y luego elimina el archivo de payload. Devuelve códigos de estado distintos (0x4B/0x4C/0x4D) que se mapean a las entradas del catálogo de mensajes para "sin configuración", "movimiento fallido" y "desvinculación fallida". Una rutina hermana crea o trunca condicionalmente el archivo de copia de seguridad (fopen con modo "w") cuando se establece un indicador global de persistencia.
- Porcentaje de batería a través de sysfs: Una utilidad lee la capacidad de la batería desde el sysfs de suministro de energía del sistema, comprobando dos ubicaciones comunes: /sys/class/power_supply/battery/capacity y /sys/class/power_supply/Battery/capacity.
- Dos rutinas configuran y finalizan el directorio de trabajo bajo el almacenamiento privado de la aplicación.
- La primera crea el árbol de directorios, aplica el modo 0771 (0x1F9), agrega temporalmente ejecución al padre y copia la ruta resuelta en la configuración. Y, cuando se ejecuta como root, intenta montar un tmpfs en esa ubicación para mantener los artefactos en memoria.
- La segunda (limpieza/finalización) puede, cuando es root y el directorio existe, ejecutar lsof | grep <working_dir> y enviar el resultado a casa. Luego restaura el modo original del directorio padre y libera el búfer de ruta.
- Descubrimiento de procesos por contexto SELinux y por línea de comandos: Dos ayudantes de búsqueda iteran /proc, construyendo y leyendo archivos por PID.
- Uno compara /proc/%d/attr/current contra un contexto SELinux objetivo y luego confirma que el proceso tiene PPID 1.
- El otro compara /proc/%d/cmdline contra una línea de comandos objetivo.
- Si hay coincidencia, escriben el PID en un parámetro de salida y devuelven éxito.
- Impresión de depuración de un array variante: Una rutina orientada al desarrollador imprime una pequeña estructura de array tipado. Formatea nombres de tipo desde una tabla, vuelca pequeños arrays de bytes dentro de corchetes y emite un solo carácter para un tipo específico, un elemento por línea. Esto parece ser depuración sobrante y no es invocado por el código activo.
Ninguno de estos ayudantes es ejecutado por el bucle de ejecución principal de este componente. Su presencia es consistente con una arquitectura por etapas en la que los objetos compartidos cargados posteriormente, que forman el framework LANDFALL completo, expanden la recopilación y la persistencia utilizando capacidades ya compiladas en este cargador.