A Swift library to manipulate load commands in Mach-O files
Find a file
Lilliana 0a0512f6f2 v1.1.1
- Refactoring and performance improvements
- Fix encryption checker
- Alphabetise struct properties
- Skip commands which aren’t used from being added to loadCommands

Signed-off-by: Lilliana <68789766+Paisseon@users.noreply.github.com>
2023-03-12 17:48:55 +01:00
Sources/AzulaKit v1.1.1 2023-03-12 17:48:55 +01:00
.gitignore Initial commit 2023-02-25 23:53:53 +01:00
LICENSE Initial commit 2023-02-25 23:52:15 +01:00
Package.swift v1.0.0 2023-03-05 02:04:30 +01:00
README.md v1.1 2023-03-07 21:32:04 +01:00

AzulaKit

A Swift library to manipulate load commands in 64-bit Mach-O binaries.

Prerequisites

  • macOS 11 or iOS 14 device
  • Xcode with Swift 5.5 or newer

Features

  • Inject multiple load commands at once
  • Remove multiple load commands at once
  • Nullify the code signature
  • Supports both thin and fat binaries
  • Parses load commands only once (per arch) for performance
  • Easy to integrate into your project
  • Example code in my Azula and AzulaApp repositories

Usage

Just add AzulaKit to your project with SPM and initialise an instance of the struct AzulaKit. You can now use inject(), remove(), and slice() functions. These take no arguments, and handle the values given during initialisation.

inject() adds a load command for each String in dylibs, returning true if all injections succeed and false if any fail.

remove() removes load commands for each String in remove, returning true if all removals succeed and false if any fail.

slice() nullifies the code signature, returning true if… well you get the idea.

Contributing

Fixing bugs, improving performance, etc. is always appreciated!

Credits