frida_ios_intercept
Intercept iOS app traffic using Frida dynamic instrumentation to inspect and debug HTTP(S) communications, with automatic certificate pinning bypass for jailbroken devices.
Instructions
Intercept a specific iOS app using Frida dynamic instrumentation. Automatically disables most certificate pinning. Requires a jailbroken device running Frida Server connected via USB.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| proxyPort | Yes | Proxy port to route traffic through | |
| hostId | Yes | Frida host ID. Use get_interceptor_metadata with id "ios-frida" to list available hosts. | |
| targetId | Yes | Target app identifier. Use get_interceptor_metadata with id "ios-frida" and subId set to the hostId to list available app targets. | |
| enableSocks | No | Enable SOCKS proxy support (default: false) |
Implementation Reference
- src/index.ts:275-291 (registration)Registration of the 'frida_ios_intercept' tool, including input schema and handler function calling client.activateInterceptor.
server.registerTool( 'frida_ios_intercept', { title: 'Intercept iOS App via Frida', description: 'Intercept a specific iOS app using Frida dynamic instrumentation. Automatically disables most certificate pinning. Requires a jailbroken device running Frida Server connected via USB.', inputSchema: z.object({ proxyPort: z.number().describe('Proxy port to route traffic through'), hostId: z.string().describe('Frida host ID. Use get_interceptor_metadata with id "ios-frida" to list available hosts.'), targetId: z.string().describe('Target app identifier. Use get_interceptor_metadata with id "ios-frida" and subId set to the hostId to list available app targets.'), enableSocks: z.boolean().optional().describe('Enable SOCKS proxy support (default: false)'), }), }, async ({ proxyPort, hostId, targetId, enableSocks }) => jsonResult(await client.activateInterceptor('ios-frida', proxyPort, { action: 'intercept', hostId, targetId, enableSocks })) );