
IDA-Plugin, das PPL-Aufrufe zur tatsächlichen zugrunde liegenden PPL-Funktion auflöst.
PPLorer ist ein IDA-Plugin, das PPL-Aufrufe in die tatsächliche zugrunde liegende PPL-Funktion auflöst.
~/.idapro/plugins/pplorer.py symbolisch auf pplorer.py im geklonten RepositoryEdit -> Plugins -> PPLorer -> Analyse IDBTL;DR
CTRL-SHIFT-X oder Right Click -> Jump to PAC XREFs an geeigneten Stellen öffnet ein Auswahlfenster
Von der Aufrufstelle zur PPL-Funktion
Von der PPL-Funktion zu den Aufrufstellen

PPL hat ein Gate, das alle Aufrufe vom Kernel erreichen. Vor diesem Gate legt jeder einzelne Aufruf in einem vorbestimmten Register (X15) den Selektor der PPL-Funktion ab, die er aufrufen möchte. Die Steuerung wird an den PPL-Dispatch übergeben, der prüft, ob eine gültige Funktion ausgewählt wurde, und dann zur Tabelle der PPL-Funktionen geht und sie aufruft. Wir finden den Dispatch, extrahieren die Größe der PPL-Funktionstabelle und ihre Adresse. Dann erkennen wir alle Aufrufe an das Gate von der Kernel-Seite und erhalten den PPL-Selektor, der in X15 gelegt wird. Für jeden Aufruf ordnen wir eine Funktion aus der PPL-Tabelle zu, und für jede Funktion in der PPL-Tabelle fügen wir alle passenden Kernel-Aufrufe hinzu.
Verfasst von Omer Porzecanski von Cellebrite Labs.
Basiert auf pacXplorer von Ouri Lipner, damals bei Cellebrite Labs.
Entwickelt und getestet für IDA 8 unter OS X, iOS 15.X+ für A12+
hier klicken (Remote-Talente willkommen)