Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sylvia — Explorador de Syscalls de iOS para IDA 9.X | Kitploit
Herramientas/GitHubGitHub/stolevchristian/sylvia
Análisis EstáticoSeguridad iOSAnálisis de VulnerabilidadesIngeniería InversaDepuradoresRecopilación de InformaciónSeguridad MóvilAnálisis de Binarios
GitHubstolevchristian/sylvia

sylvia

Explorador de Syscalls de iOS para IDA 9.X

Ver Repositorio
151hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Analizador de Syscalls AArch64 para iOS

Un script de IDA Pro que escanea un binario AArch64 en busca de instrucciones SVC, resuelve el número de syscall BSD desde el registro X16 y presenta todos los resultados en una interfaz acoplable enriquecida, con navegación por ocurrencias de cada syscall y obtención de documentación man en vivo.

Diseñado para la ingeniería inversa de iOS / macOS en IDA Pro 9.x. La única razón por la que creé esto fue la ingeniería inversa de plataformas iOS con medidas anti-manipulación hasta el nivel de las syscalls. Estaba aburrido de imprimir las syscalls en la consola y quería algo agradable a la vista que, al mismo tiempo, pudiera obtener documentación en vivo.

Todo este ReadMe está generado por IA, al igual que la mayor parte del script. Yo escribí la base y luego dejé que Claude Opus 4.7 hiciera su magia para unirlo todo con una hermosa interfaz de usuario.


Características

  • Escaneo completo del binario — encuentra cada instrucción SVC #0x80 y resuelve la configuración MOV X16, #num hasta 8 instrucciones atrás
  • Mapa de syscalls de 556 entradas — tabla completa de syscalls BSD AArch64 de iOS/macOS (Darwin XNU)
  • 9 categorías codificadas por colores — File I/O, Network, Memory, Process, Threading, IPC, Security, Time, Misc; los colores reutilizan la propia paleta de desensamblado de IDA
  • Panel acoplable — vive dentro de IDA como una herramienta nativa; vuelve a ejecutar el script para volver a enfocar la misma ventana
  • Filtro en tiempo real — busca por nombre, número (0x5, 5) o nombre de función; también filtra por categoría desde un menú desplegable
  • Tabla de ocurrencias — enumera, ordenadas, todas las direcciones y RVA donde aparece una syscall determinada; haz doble clic o pulsa Enter para saltar a esa dirección en IDA
  • Documentación en vivo — obtiene la página completa de man 2 desde man.freebsd.org en un hilo en segundo plano (Darwin deriva de BSD); los resultados se guardan en caché por sesión
  • Descripciones integradas — ~250 syscalls tienen una descripción de una línea disponible de inmediato sin necesidad de solicitud de red
  • Exportar JSON — vuelca todas las syscalls encontradas (name, number, address, RVA, function, category) a un archivo JSON
  • Menús contextuales con clic derecho — copiar nombre, copiar número, saltar a la primera ocurrencia, obtener página man (tabla de syscalls); copiar dirección, copiar nombre de función (tabla de ocurrencias)
  • Atajos de teclado — Ctrl+F enfoca el cuadro de búsqueda; Enter sobre una ocurrencia seleccionada navega hasta ella

Requisitos

RequisitoVersión
IDA Pro9.x (probado en 9.3)
Pythonincluido con IDA
PySide6se incluye con IDA 9
requestsopcional — solo necesario para obtener páginas man

Alternativa PyQt5 — el script también funciona con el shim PyQt5 de IDA para versiones anteriores.

Para instalar requests en el entorno Python de IDA, ejecuta esto en la consola Python de IDA:

root@kitploit:~
import subprocess, sys
subprocess.run([sys.executable, "-m", "pip", "install", "requests"])

Instalación

  1. Copia syscall_ios.py en cualquier lugar de tu máquina.
  2. Abre tu binario objetivo en IDA Pro.
  3. Ejecuta el script mediante File → Script file… o arrástralo a la ventana de IDA.

El panel del analizador se abre automáticamente y comienza el escaneo.


Uso

Ejecutar el script

root@kitploit:~
File → Script file… → syscall_ios.py

O usa el Script command de IDA (Shift+F2) para pegar y ejecutar directamente.

Vista general del panel

Imagen 1 Imagen 2


Referencia de colores por categoría

Los colores imitan la paleta de resaltado de desensamblado de IDA Pro para que el resultado se sienta nativo.


Formato de exportación

Exportar JSON produce un archivo como este:

root@kitploit:~
[
  {
    "name": "read",
    "number": 3,
    "number_hex": "0x3",
    "address": "0x1001a4bc",
    "rva": "0x4bc",
    "function": "sub_1001A0000",
    "category": "File I/O"
  },
  ...
]

Cobertura de syscalls

La tabla integrada cubre 556 syscalls de la capa BSD de Darwin/XNU (clase 0x2000000), incluyendo:

  • POSIX estándar (read, write, open, mmap, socket, …)
  • Extensiones de Darwin (csops, guarded_open_np, memorystatus_control, kevent_qos, …)
  • Específicas de iOS (pid_hibernate, abort_with_payload, necp_*, os_fault_with_payload, …)
  • Asistencias de kernel Pthread (psynch_mutexwait, psynch_cvwait, , …)

Las trampas Mach y los envoltorios de libsystem que pasan por una clase de trampa diferente no están incluidos — esto cubre únicamente la clase BSD (SVC #0x80 con X16 = 0x2000000 | num).


Notas

  • El número de syscall se resuelve escaneando hacia atrás desde la instrucción SVC en busca de un MOV X16, #imm dentro de 8 instrucciones. Las cargas indirectas (p. ej. LDR X16, [...]) se mostrarán como UNKNOWN.
  • La constante SLIDE al principio del archivo no tiene efecto sobre las direcciones mostradas — se mantiene como referencia de comentario para correlacionar con una sesión de lldb en vivo.
  • Volver a escanear re-ejecuta el análisis completo sobre el binario cargado actualmente; las páginas man obtenidas previamente permanecen en caché.
Descargar herramienta
CategoríaColorEquivalente en IDA
File I/O#4EC9B0Tipo / struct
Network#569CD6Palabra clave
Memory#DCDCAANombre de función
Process#CE9178Literal de cadena
Threading#9CDCFEVariable
IPC#C586C0Enum / macro
Security#F44747Error / advertencia
Time#6A9955Comentario
Misc#858585—
bsdthread_*
  • GCD / workqueue (workq_open, workq_kernreturn, kqueue_workloop_ctl, …)
  • Framework de auditoría y MAC (audit_*, __mac_*)