Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sylvia — 用于IDA 9.X的iOS系统调用浏览器 | Kitploit
Инструменты/GitHubGitHub/stolevchristian/sylvia
Статический анализБезопасность iOSАнализ уязвимостейОбратная инженерияОтладчикиСбор информацииМобильная безопасностьАнализ Бинарных Файлов
GitHubstolevchristian/sylvia

sylvia

用于IDA 9.X的iOS系统调用浏览器

Репозиторий
15163 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

iOS AArch64 Анализатор системных вызовов

Скрипт для IDA Pro, который сканирует AArch64-бинарник на наличие инструкций SVC, определяет номер системного вызова BSD из регистра X16 и отображает каждый результат в насыщенной закрепляемой панели с навигацией по вхождениям каждого системного вызова и динамической загрузкой man-страниц.

Разработан для реверс-инжиниринга iOS/macOS в IDA Pro 9.x.
Единственная причина, по которой я его создал — при реверс-инжиниринге платформ iOS с мерами защиты от модификации на уровне системных вызовов. Мне надоело печатать системные вызовы в консоль, хотелось иметь что-то удобное для просмотра с возможностью получать живую документацию.

Этот ReadMe полностью сгенерирован ИИ, как и большая часть скрипта. Я написал основу, а затем позволил Claude Opus 4.7 сделать свою магию и объединить всё в красивый пользовательский интерфейс.


Возможности

  • Полное сканирование бинарника — находит каждую инструкцию SVC #0x80 и определяет настройку MOV X16, #num с поиском до 8 инструкций назад
  • Карта системных вызовов на 556 записей — полная таблица системных вызовов iOS/macOS AArch64 BSD (Darwin XNU)
  • 9 цветных категорий — ввод/вывод файлов, сеть, память, процессы, потоки, IPC, безопасность, время, прочее; цвета используют палитру дизассемблера IDA
  • Закрепляемая панель — живёт внутри IDA как нативный инструмент; повторный запуск скрипта переключает фокус на то же окно
  • Фильтр в реальном времени — поиск по имени, номеру (0x5, 5) или имени функции; также фильтрация по категории из выпадающего списка
  • Таблица вхождений — перечисляет каждый адрес и RVA, где встречается данный системный вызов, отсортировано; двойной клик или клавиша Enter переходит к этому адресу в IDA
  • Живая документация — загружает полную страницу man 2 с man.freebsd.org в фоновом потоке (Darwin основан на BSD); результаты кэшируются в течение сессии
  • Встроенные описания — ~250 системных вызовов имеют однострочное описание, доступное сразу без сетевого запроса
  • Экспорт в JSON — выгружает все найденные системные вызовы (имя, номер, адрес, RVA, функция, категория) в JSON-файл
  • Контекстные меню по правому клику — копировать имя, копировать номер, перейти к первому вхождению, загрузить man-страницу (таблица системных вызовов); копировать адрес, копировать имя функции (таблица вхождений)
  • Горячие клавиши — Ctrl+F фокусирует поле поиска; Enter на выбранном вхождении переходит к нему

  • Требования

    ТребованиеВерсия
    IDA Pro9.x (протестировано на 9.3)
    Pythonвстроенный в IDA
    PySide6поставляется с IDA 9
    requestsопционально — требуется только для загрузки man-страниц

    Запасной вариант PyQt5 — скрипт также работает с прослойкой PyQt5 от IDA для старых версий.

    Чтобы установить requests в среду Python IDA, выполните в консоли Python IDA:

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

    Установка

    1. Скопируйте syscall_ios.py в любое место на вашем компьютере.
    2. Откройте целевой бинарник в IDA Pro.
    3. Запустите скрипт через File → Script file… или перетащите его в окно IDA.

    Панель анализатора откроется автоматически и начнёт сканирование.


    Использование

    Запуск скрипта

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

    Или используйте Script command (Shift+F2) IDA, чтобы вставить и выполнить напрямую.

    Обзор панели

    Pic 1 Pic 2


    Справочник цветов категорий

    Цвета повторяют палитру подсветки дизассемблера IDA, чтобы вывод выглядел естественно.

    КатегорияЦветАналог в IDA
    Ввод/вывод файлов#4EC9B0Тип / структура
    Сеть#569CD6Ключевое слово
    Память#DCDCAAИмя функции
    Процессы#CE9178Строковый литерал
    Потоки#9CDCFEПеременная
    IPC#C586C0Перечисление / макрос
    Безопасность#F44747Ошибка / предупреждение
    Время#6A9955Комментарий
    Прочее#858585—

    Формат экспорта

    Экспорт в JSON создает файл вида:

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

    Охват системных вызовов

    Встроенная таблица охватывает 556 системных вызовов из уровня BSD Darwin/XNU (класс 0x2000000), включая:

    • Стандартные POSIX (read, write, open, mmap, socket, …)
    • Расширения Darwin (csops, guarded_open_np, memorystatus_control, kevent_qos, …)
    • iOS-специфичные (pid_hibernate, abort_with_payload, necp_*, os_fault_with_payload, …)
    • Вспомогательные вызовы Pthread (psynch_mutexwait, psynch_cvwait, bsdthread_*, …)
    • GCD / workqueue (workq_open, workq_kernreturn, kqueue_workloop_ctl, …)
    • Фреймворки Audit и MAC (audit_*, __mac_*)

    Ловушки Mach и обёртки libsystem, использующие другой класс ловушек, не включены — покрыт только класс BSD (SVC #0x80 с X16 = 0x2000000 | num).


    Примечания

    • Номер системного вызова определяется сканированием в обратном направлении от инструкции SVC на наличие MOV X16, #imm в пределах 8 инструкций. Косвенные загрузки (например, LDR X16, [...]) будут отображаться как UNKNOWN.
    • Константа SLIDE в начале файла не влияет на отображаемые адреса — она оставлена как справочный комментарий для сопоставления с активной сессией lldb.
    • Повторное сканирование запускает полный анализ текущего загруженного бинарника; ранее загруженные man-страницы остаются кэшированными.
    Скачать инструмент