└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # What is Parasite? 2 | Parasite is a powerful code insertion platform for OS X. It enables developers to easily create extensions which change the original behavior of functions. For users Parasite provides an easy way to install these extensions and tweak their OS. 3 | 4 | # How does Parasite work? 5 | Parasite consists of various components which altogether provide a safe and smooth experience. Here’s a short overview: 6 | 7 | ## Parasite.kext 8 | This is the core component of Parasite, a kernel extension. It injects ParasiteLoader.dylib into every process that is executed after the kext is loaded. 9 | 10 | ## ParasiteLoader.dylib 11 | This is the trampoline that gets injected by the kext. It handles extensions loading and excludes blacklisted processes and root processes. 12 | 13 | ## ParasiteRuntime.framework 14 | This is a framework that makes developing extensions easy. It includes some nice macros, ZKSwizzle for hooking Obj-C functions and substitute by comex for hooking C functions. 15 | 16 | # How do I install Parasite? 17 | That’s pretty easy actually. Just disable kext validation via csrutil and paste ```curl -fsSL https://github.com/ParasiteTeam/installer/raw/master/install.sh | sudo bash``` into your terminal prompt. 18 | 19 | # How do I install Extensions? 20 | Extensions can be .bundle files or just a .plist. Installing them is mainly just putting them into their designated directory. 21 | 22 | ## I want to install an extension via bundle, bro?! 23 | No problem, extensions are located at ```/Library/Parasite/Extensions```. Just put the .bundle file in there and it will be automatically loaded when the process it should inject into gets executed. 24 | 25 | ## I want to install a an extension via plist, bro?! 26 | That’s cool. Runtime modification via a .plist is supported by Crucible. Crucible takes the information provided by the .plist and transforms them to code, so to say. The .plist files are located at ```/Library/Parasite/Crucible```. 27 | 28 | # How do I create an extension? 29 | You have two options to create extensions, which are the following: 30 | ## Bundle extension 31 | TODO 32 | 33 | ## Crucible extension 34 | TODO 35 | 36 | # Something I didn’t think of 37 | Soon, ayy. --------------------------------------------------------------------------------