Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sylvia — Explorateur d'appels système iOS pour IDA 9.X | Kitploit
Outils/GitHubGitHub/stolevchristian/sylvia
Analyse StatiqueSécurité iOSAnalyse des VulnérabilitésRétro-ingénierieDébogueursCollecte d'InformationsSécurité MobileAnalyse de Binaires
GitHubstolevchristian/sylvia

sylvia

Explorateur d'appels système iOS pour IDA 9.X

Voir le dépôt
15165il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Analyseur de syscalls AArch64 pour iOS

Un script IDA Pro qui scanne un binaire AArch64 à la recherche d'instructions SVC, résout le numéro de syscall BSD à partir du registre X16 et présente chaque résultat dans une interface utilisateur riche et ancrable, avec navigation par occurrence de syscall et récupération en direct de la documentation man-page.

Conçu pour le reverse engineering iOS / macOS avec IDA Pro 9.x. La seule raison pour laquelle j'ai créé cela était lors du reverse engineering de plateformes iOS avec des mesures anti-altération au niveau des syscalls. J'en avais assez d'imprimer les syscalls dans la console et je voulais quelque chose de raisonnable à regarder tout en récupérant de la documentation en direct.

Ce ReadMe entier est généré par IA, de même que la plupart des parties du script. J'avais écrit la base, puis j'ai laissé Claude Opus 4.7 faire sa magie pour rassembler le tout avec une belle interface utilisateur.


Fonctionnalités

  • Analyse complète du binaire — trouve chaque instruction SVC #0x80 et résout la configuration MOV X16, #num jusqu'à 8 instructions en arrière
  • Table de syscalls de 556 entrées — table complète des syscalls BSD AArch64 iOS/macOS (Darwin XNU)
  • 9 catégories codées par couleur — E/S fichiers, Réseau, Mémoire, Processus, Threads, IPC, Sécurité, Temps, Divers ; les couleurs réutilisent la propre palette de désassemblage d'IDA
  • Panneau ancrable — vit à l'intérieur d'IDA comme un outil natif ; réexécutez le script pour recentrer la même fenêtre
  • Filtre en temps réel — recherchez par nom, numéro (0x5, 5) ou nom de fonction ; filtrez également par catégorie via une liste déroulante
  • Table des occurrences — liste chaque adresse et RVA où un syscall donné apparaît, triée ; double-cliquez ou appuyez sur Entrée pour sauter à cette adresse dans IDA
  • Documentation en direct — récupère la page man 2 complète depuis man.freebsd.org dans un thread d'arrière-plan (Darwin est dérivé de BSD) ; les résultats sont mis en cache par session
  • Descriptions intégrées — environ 250 syscalls ont une description d'une ligne disponible immédiatement sans requête réseau
  • Export JSON — exporte tous les syscalls trouvés (nom, numéro, adresse, RVA, fonction, catégorie) vers un fichier JSON
  • Menus contextuels clic droit — copier le nom, copier le numéro, aller à la première occurrence, récupérer la page man (table des syscalls) ; copier l'adresse, copier le nom de la fonction (table des occurrences)
  • Raccourcis clavier — Ctrl+F focalise la zone de recherche ; Entrée sur une occurrence sélectionnée y navigue

Prérequis

PrérequisVersion
IDA Pro9.x (testé sur 9.3)
Pythonfourni avec IDA
PySide6livré avec IDA 9
requestsoptionnel — nécessaire uniquement pour la récupération des pages man

Fallback PyQt5 — le script fonctionne également avec le shim PyQt5 d'IDA pour les versions plus anciennes.

Pour installer requests dans l'environnement Python d'IDA, exécutez ceci dans la console Python d'IDA :

import subprocess, sys
subprocess.run([sys.executable, "-m", "pip", "install", "requests"])

Installation

  1. Copiez syscall_ios.py n'importe où sur votre machine.
  2. Ouvrez votre binaire cible dans IDA Pro.
  3. Exécutez le script via Fichier → Fichier de script… ou faites-le glisser dans la fenêtre d'IDA.

Le panneau d'analyse s'ouvre automatiquement et commence l'analyse.


Utilisation

Exécution du script

File → Script file… → syscall_ios.py

Ou utilisez la Commande de script d'IDA (Maj+F2) pour coller et exécuter directement.

Aperçu du panneau

Pic 1 Pic 2


Référence des couleurs par catégorie

Les couleurs reflètent la propre palette de surbrillance de désassemblage d'IDA Pro pour que le résultat semble natif.

CatégorieCouleurÉquivalent IDA
E/S fichiers#4EC9B0Type / structure
Réseau#569CD6Mot-clé
Mémoire#DCDCAANom de fonction
Processus#CE9178Littéral chaîne
Threads#9CDCFEVariable
IPC#C586C0Énumération / macro
Sécurité#F44747Erreur / avertissement
Temps#6A9955Commentaire
Divers#858585—

Format d'exportation

Export JSON produit un fichier comme :

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

Couverture des syscalls

La table intégrée couvre 556 syscalls de la couche BSD Darwin/XNU (classe 0x2000000), notamment :

  • POSIX standard (read, write, open, mmap, socket, …)
  • Extensions Darwin (csops, guarded_open_np, memorystatus_control, kevent_qos, …)
  • Spécifiques à iOS (pid_hibernate, abort_with_payload, necp_*, os_fault_with_payload, …)
  • Assistances noyau Pthread (psynch_mutexwait, psynch_cvwait, bsdthread_*, …)
  • GCD / workqueue (workq_open, workq_kernreturn, kqueue_workloop_ctl, …)
  • Cadre d'audit et MAC (audit_*, __mac_*)

Les Mach traps et les wrappers libsystem qui passent par une classe de trap différente ne sont pas inclus — cela couvre uniquement la classe BSD (SVC #0x80 avec X16 = 0x2000000 | num).


Remarques

  • Le numéro de syscall est résolu en analysant en arrière à partir de l'instruction SVC pour un MOV X16, #imm dans les 8 instructions. Les chargements indirects (par ex. LDR X16, [...]) apparaîtront comme UNKNOWN.
  • La constante SLIDE en haut du fichier n'a aucun effet sur les adresses affichées — elle est conservée comme référence de commentaire pour la corrélation avec une session lldb en direct.
  • Une renumérisation relance l'analyse complète sur le binaire actuellement chargé ; les pages man précédemment récupérées restent en cache.
Télécharger l’outil