GithubHelp home page GithubHelp logo

loader's Introduction

ParasiteLoader.dylib

After the kext inserts a LC_LOAD_WEAK_DYLIB command pointing to ParasiteLoader.dylib into the MachO header of the currently launching process, dyld will load this library and call __ParasiteInit. That function makes sure it is safe to continue by checking a list of blacklisted processes and then goes on to loop through every bundle in the folder /Library/Parasite/Extensions to see which bundles should be loaded into the process.

Extension Format

Each extension is a .bundle located in /Library/Parasite/Extensions. In each bundle is an Info.plist file containing metadata about the creator of the bundle, version, etc. This is where the filters go. Add a key into your Info.plist file called PSFilters of type dictionary.

Here are the types of filters that can go into the PSFilters dictionary. You may recognize these from MobileSubstrate filters. That's because it's the same with a few extensions.

Key Type Description
CoreFoundationVersion array An array of one or two reals. The first one is the minimum CoreFoundation version of a system this bundle should load on and the second value, if it exists refers to the maximum verison.
Bundles array An array of bundle identifiers or SIMBL-style bundle entries that if are loaded into the current process will cause the bundle to be loaded, too.
Executables array List of executable names to load into. This is useful for loading into processes that do not have a bundle identifier
Classes array An array of zero or more strings of the names of classes that, if present, will cause the bundle to load.
Mode String Any is the only allowed option if this key is present. If Mode is not set to Any then all of the above filters must match for this bundle to be loaded.

For more detailed information on the filter format, check out CydiaSubstrate, Parasite supports all of it.

A key difference is that the Bundles key not only allows strings of bundle id's but also dictionaries that follow the same format as SIMBL. Example:

Key Type Description
BundleIdentifier string identifier of bundle to load into
MinBundleVersion real seems straightforward enough
MaxBundleVersion real see above

Parasite also supports SIMBL bundles themselves, though this feature is experimental and not guaranteeed to work. You should prefer to use extensions that were developed for Parasite over SIMBL alternatives if you can.

loader's People

Contributors

alexzielenski avatar

Stargazers

Mark Villacampa avatar Adel ezzat avatar Derek Hartley avatar Andreas avatar Thatchapon Unprasert avatar Tanner Bennett avatar Zhang avatar jmpews(AKA.zz) avatar Mikal avatar  avatar  avatar John Coates avatar Jevin Sweval avatar

Watchers

Jevin Sweval avatar Mikal avatar  avatar James Cloos avatar

Forkers

mstg mikalv

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.