Description

Simple RPC service providing an API for controlling every aspect of the target machine. Thie swiss army knife can be used for:

  • QA Automation

  • Developement (simply test your APIs through python)

  • Software research (found an interesting OS API? try it out with no compilation required!)

This project includes two components:

  • Server binary written in C exposing a protocol to call native C functions.

  • Client written in Python3 to communicate with the server

The python client utilizes the ability to call native functions in order to provide APIs for different aspects:

  • Remote system commands (p.spawn())

  • Remote shell (p.shell())

  • Filesystem management (p.fs.*)

  • Network management (WiFi scan, TCP connect, etc…) (p.network.*)

  • Sysctl API (p.sysctl.*)

  • Darwin only:

    • Multimedia automation (recording and playing) (p.media.*)

    • Preferences managemnent (remote manage CFPreference and SCPreferences) (p.preferences.*)

    • Process management (kill, list, query open FDs, etc…) (p.processes.*)

    • Location services (p.location.*)

    • HID simulation (p.hid.*)

      • Control battery properties (current percentage and temperature)

      • Simulate touch and keyboard events

    • IORegistry API (p.ioregistry.*)

    • Reports management (Logs and Crash Reports) (p.reports.*)

    • Time settings (p.time.*)

    • Bluetooth management (p.bluetooth.*)

    • Location Services (p.location.*)

    • XPC wrappers (p.xpc.*)

    • iOS Only:

      • MobileGestalt (p.mobile_gestalt.*)

      • Backlight adjusting (p.backlight.*)

      • Dump decrypted applications (p.processes.get_by_basename(process_name).dump_app('/path/to/output'))

and much more…