
Плагин IDA, который сопоставляет вызовы PPL с фактической нижележащей функцией PPL.
PPLorer — это плагин для IDA, который сопоставляет вызовы PPL с реальной нижележащей функцией PPL.
~/.idapro/plugins/pplorer.py на pplorer.py в клонированном репозиторииEdit -> Plugins -> PPLorer -> Analyse IDBTL;DR
CTRL-SHIFT-X или в подходящих местах откроют окно выбора
Right Click -> Jump to PAC XREFsОт места вызова к функции PPL
От функции PPL к местам вызова

У PPL есть шлюз, через который проходят все вызовы из ядра. Перед этим шлюзом каждый отдельный вызов помещает в предопределённый регистр (X15) селектор функции PPL, которую он хочет вызвать. Управление передаётся диспетчеру PPL, который проверяет, что была выбрана допустимая функция, а затем переходит к таблице функций PPL и вызывает её. Мы находим диспетчер, извлекаем размер таблицы функций PPL и её адрес. Затем мы обнаруживаем все вызовы шлюза со стороны ядра и получаем селектор PPL, помещаемый в X15. Для каждого вызова мы сопоставляем функцию из таблицы PPL, а для каждой функции в таблице PPL добавляем все соответствующие вызовы ядра.
Автор: Омер Поржецански из Cellebrite Labs.
Основано на pacXplorer от Оури Липнера, когда он работал в Cellebrite Labs.
Разработано и протестировано для IDA 8 на OS X, iOS 15.X+ для A12+
нажмите здесь (Приветствуются удалённые специалисты)