Mobile Enhancer does not provide any hooking APIs.
Extensions for Mobile Enhancer are packages as bundles with path extension .men. They can be located in /var/MobileEnhancer/ or /Library/MobileEnhancer/.
The bundle must define an external C function,
int MENModuleMain(CFBundleRef extension_bundle, CFBundleRef main_bundle, int argc, char* argv);
which does the hooking. If this function returns 0, extension_bundle will be retained.
Mobile Enhancer supports filtering by the bundle's Info.plist. The Info.plist should have a key called MENMatchInfo which is a dictionary that can contain these values:
- CFBundleIdentifier (string or array): Loads the extension only when the running application matches the specified bundle ID.
PseudoSubstrate was a wrapper on top of Mobile Enhancer that can load MobileSubstrate extensions. This package seems no longer available.