[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GZPNEJQHKWV48XWDPABYMX":3,"skill-same:01M6GZPNEJQHKWV48XWDPABYMX":111},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6GZPNEJQHKWV48XWDPABYMX","reverse-engineering-ios-app-with-frida",null,"Reverse engineers iOS applications using Frida dynamic instrumentation to understand internal logic, extract encryption keys, bypass security controls, and discover hidden functionality without source code access. Use when performing authorized iOS penetration testing, analyzing proprietary protocols, understanding obfuscated logic, or extracting runtime secrets from iOS binaries. Activates for requests involving iOS reverse engineering, Frida iOS hooking, Objective-C\u002FSwift method tracing, or iOS binary analysis.","micsapp\u002Fmicstec-skills","micsapp","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F82411001?v=4","01M6GWCFQ6D3PV8EHNY62NN5VW","01M6GWCFVE1PA5HG0DKC7AMFJ3",4,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"reverse engineering ios app with frida","reverse","reverse engineering","with","app","ios app","frida","ios","engineering","encryption","analysis","secrets","testing","access","mobile","discover","reverse-engineering","extracting","code","cybersecurity","2026-11-10 10:12:30",false,"---\nname: reverse-engineering-ios-app-with-frida\ndescription: >\n  Reverse engineers iOS applications using Frida dynamic instrumentation to understand internal\n  logic, extract encryption keys, bypass security controls, and discover hidden functionality\n  without source code access. Use when performing authorized iOS penetration testing, analyzing\n  proprietary protocols, understanding obfuscated logic, or extracting runtime secrets from\n  iOS binaries. Activates for requests involving iOS reverse engineering, Frida iOS hooking,\n  Objective-C\u002FSwift method tracing, or iOS binary analysis.\ndomain: cybersecurity\nsubdomain: mobile-security\nauthor: mahipal\ntags: [mobile-security, ios, frida, reverse-engineering, owasp-mobile, penetration-testing]\nversion: 1.0.0\nlicense: Apache-2.0\n---\n# Reverse Engineering iOS App with Frida\n\n## When to Use\n\nUse this skill when:\n- Analyzing iOS app internals during authorized security assessments without source code\n- Extracting encryption keys, API secrets, or proprietary protocol details from running iOS apps\n- Understanding obfuscated Swift\u002FObjective-C logic through runtime method tracing\n- Bypassing complex security mechanisms (jailbreak detection, anti-tampering, anti-debugging)\n\n**Do not use** this skill for unauthorized reverse engineering that violates terms of service or intellectual property law.\n\n## Prerequisites\n\n- Jailbroken iOS device with Frida server installed via Cydia\u002FSileo, or non-jailbroken device with Frida Gadget-injected IPA\n- Python 3.10+ with `frida-tools` (`pip install frida-tools`)\n- USB connection to iOS device\n- class-dump or dsdump for Objective-C header extraction\n- Hopper Disassembler or Ghidra for static binary analysis (complementary)\n- Knowledge of Objective-C runtime and Swift name mangling\n\n## Workflow\n\n### Step 1: Extract and Analyze the Binary\n\n```bash\n# On jailbroken device, find app binary\nssh root@\u003Cdevice_ip>\nfind \u002Fvar\u002Fcontainers\u002FBundle\u002FApplication\u002F -name \"TargetApp\" -type f\n\n# Pull decrypted binary (apps from App Store are encrypted with FairPlay)\n# Use frida-ios-dump or Clutch for decryption\npip install frida-ios-dump\ndump.py com.target.app\n\n# Extract Objective-C class headers\nclass-dump -H decrypted_binary -o headers\u002F\nls headers\u002F  # Lists all class header files\n```\n\n### Step 2: Enumerate Classes and Methods at Runtime\n\n```javascript\n\u002F\u002F enumerate_classes.js - List all loaded classes\nJava.perform(function() {});  \u002F\u002F N\u002FA for iOS\n\n\u002F\u002F iOS uses ObjC runtime\nif (ObjC.available) {\n    var classes = ObjC.classes;\n    for (var className in classes) {\n        if (className.indexOf(\"Target\") !== -1 ||\n            className.indexOf(\"Auth\") !== -1 ||\n            className.indexOf(\"Crypto\") !== -1) {\n            console.log(\"[Class] \" + className);\n\n            \u002F\u002F List methods\n            var methods = classes[className].$ownMethods;\n            for (var i = 0; i \u003C methods.length; i++) {\n                console.log(\"  [Method] \" + methods[i]);\n            }\n        }\n    }\n}\n```\n\n```bash\nfrida -U -n TargetApp -l enumerate_classes.js\n```\n\n### Step 3: Trace Method Calls with frida-trace\n\n```bash\n# Trace all methods of a class\nfrida-trace -U -n TargetApp -m \"*[TargetAuth *]\"\n\n# Trace specific patterns\nfrida-trace -U -n TargetApp -m \"*[*Crypto* *]\"\nfrida-trace -U -n TargetApp -m \"*[*KeyChain* *]\"\nfrida-trace -U -n TargetApp -m \"*[*Token* *]\"\n\n# Trace Swift methods (mangled names)\nfrida-trace -U -n TargetApp -m \"*[*$s*Auth*]\"\n```\n\n### Step 4: Hook and Modify Method Behavior\n\n```javascript\n\u002F\u002F hook_auth.js - Intercept authentication logic\nif (ObjC.available) {\n    \u002F\u002F Hook Objective-C method\n    var AuthManager = ObjC.classes.AuthManager;\n    if (AuthManager) {\n        Interceptor.attach(AuthManager[\"- validateToken:\"].implementation, {\n            onEnter: function(args) {\n                \u002F\u002F args[0] = self, args[1] = selector, args[2+] = method args\n                var token = new ObjC.Object(args[2]);\n                console.log(\"[Auth] validateToken called with: \" + token.toString());\n            },\n            onLeave: function(retval) {\n                console.log(\"[Auth] validateToken returned: \" + retval);\n                \u002F\u002F Optionally modify return value\n                \u002F\u002F retval.replace(ptr(1));  \u002F\u002F Force return true\n            }\n        });\n    }\n\n    \u002F\u002F Hook CommonCrypto for encryption analysis\n    var CCCrypt = Module.findExportByName(\"libcommonCrypto.dylib\", \"CCCrypt\");\n    if (CCCrypt) {\n        Interceptor.attach(CCCrypt, {\n            onEnter: function(args) {\n                this.operation = args[0].toInt32();  \u002F\u002F 0=encrypt, 1=decrypt\n                this.algorithm = args[1].toInt32();  \u002F\u002F 0=AES128, 1=DES, 2=3DES\n                this.keyLength = args[4].toInt32();\n                this.key = Memory.readByteArray(args[3], this.keyLength);\n                console.log(\"[CCCrypt] Op:\" + (this.operation === 0 ? \"Encrypt\" : \"Decrypt\"));\n                console.log(\"[CCCrypt] Key: \" + hexify(this.key));\n            },\n            onLeave: function(retval) {\n                console.log(\"[CCCrypt] Status: \" + retval);\n            }\n        });\n    }\n}\n\nfunction hexify(buffer) {\n    var bytes = new Uint8Array(buffer);\n    var hex = [];\n    for (var i = 0; i \u003C bytes.length; i++) {\n        hex.push((\"0\" + bytes[i].toString(16)).slice(-2));\n    }\n    return hex.join(\"\");\n}\n```\n\n### Step 5: Analyze Swift Code\n\n```javascript\n\u002F\u002F swift_analysis.js - Hook Swift methods\n\u002F\u002F Swift methods use name mangling: $s\u003Cmodule>\u003Cclass>\u003Cmethod>\n\u002F\u002F Use frida-trace to discover actual mangled names first\n\nif (ObjC.available) {\n    \u002F\u002F Swift classes that inherit from NSObject are accessible via ObjC runtime\n    var swiftClasses = Object.keys(ObjC.classes).filter(function(name) {\n        return name.indexOf(\"_TtC\") === 0 || name.indexOf(\"TargetApp.\") !== -1;\n    });\n\n    swiftClasses.forEach(function(className) {\n        console.log(\"[Swift] \" + className);\n        var methods = ObjC.classes[className].$ownMethods;\n        methods.forEach(function(method) {\n            console.log(\"  \" + method);\n        });\n    });\n}\n\n\u002F\u002F For pure Swift (non-ObjC-bridged), use Module.enumerateExports\nModule.enumerateExports(\"TargetApp\", {\n    onMatch: function(exp) {\n        if (exp.name.indexOf(\"Auth\") !== -1 || exp.name.indexOf(\"Crypto\") !== -1) {\n            console.log(\"[Export] \" + exp.name + \" @ \" + exp.address);\n        }\n    },\n    onComplete: function() {}\n});\n```\n\n### Step 6: Extract Secrets and Proprietary Data\n\n```javascript\n\u002F\u002F extract_secrets.js\nif (ObjC.available) {\n    \u002F\u002F Hook NSUserDefaults\n    var NSUserDefaults = ObjC.classes.NSUserDefaults;\n    Interceptor.attach(NSUserDefaults[\"- objectForKey:\"].implementation, {\n        onEnter: function(args) {\n            this.key = new ObjC.Object(args[2]).toString();\n        },\n        onLeave: function(retval) {\n            if (retval.isNull()) return;\n            var value = new ObjC.Object(retval);\n            console.log(\"[NSUserDefaults] \" + this.key + \" = \" + value.toString());\n        }\n    });\n\n    \u002F\u002F Hook Keychain access\n    var SecItemCopyMatching = Module.findExportByName(\"Security\", \"SecItemCopyMatching\");\n    Interceptor.attach(SecItemCopyMatching, {\n        onEnter: function(args) {\n            var query = new ObjC.Object(args[0]);\n            console.log(\"[Keychain] Query: \" + query.toString());\n        },\n        onLeave: function(retval) {\n            console.log(\"[Keychain] Result: \" + retval);\n        }\n    });\n}\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|-----------|\n| **Objective-C Runtime** | Dynamic runtime enabling method dispatch, class introspection, and method swizzling at runtime |\n| **Swift Name Mangling** | Compiler-applied encoding of Swift function signatures into linker-compatible symbol names |\n| **FairPlay DRM** | Apple's encryption applied to App Store binaries; must be decrypted before static analysis |\n| **class-dump** | Tool extracting Objective-C class declarations from Mach-O binaries for header-level analysis |\n| **CommonCrypto** | Apple's C-level cryptographic library; primary target for encryption key extraction via Frida hooks |\n\n## Tools & Systems\n\n- **Frida**: Dynamic instrumentation framework for iOS runtime hooking and method interception\n- **frida-trace**: Automated tracing utility that generates handler stubs for matched methods\n- **frida-ios-dump**: Tool for decrypting FairPlay-protected iOS apps via memory dumping\n- **class-dump \u002F dsdump**: Objective-C header extraction from Mach-O binaries\n- **Ghidra**: NSA's reverse engineering framework for static ARM64 binary analysis of iOS apps\n\n## Common Pitfalls\n\n- **FairPlay encryption**: Apps downloaded from the App Store are encrypted. You must decrypt before static analysis. Use frida-ios-dump on a jailbroken device.\n- **Swift-only classes**: Pure Swift classes without `@objc` annotation are not visible through `ObjC.classes`. Use `Module.enumerateExports()` instead.\n- **Stripped binaries**: Release builds strip debug symbols. Combine frida-trace with class-dump output for effective analysis.\n- **Anti-Frida measures**: Sophisticated apps check for Frida artifacts (frida-server process, Frida agent strings in memory, injected libraries in dyld). Use stealthy Frida builds or Frida Gadget injection.\n","# Reverse Engineering iOS App with Frida\n\n## When to Use\n\nUse this skill when:\n- Analyzing iOS app internals during authorized security assessments without source code\n- Extracting encryption keys, API secrets, or proprietary protocol details from running iOS apps\n- Understanding obfuscated Swift\u002FObjective-C logic through runtime method tracing\n- Bypassing complex security mechanisms (jailbreak detection, anti-tampering, anti-debugging)\n\n**Do not use** this skill for unauthorized reverse engineering that violates terms of service or intellectual property law.\n\n## Prerequisites\n\n- Jailbroken iOS device with Frida server installed via Cydia\u002FSileo, or non-jailbroken device with Frida Gadget-injected IPA\n- Python 3.10+ with `frida-tools` (`pip install frida-tools`)\n- USB connection to iOS device\n- class-dump or dsdump for Objective-C header extraction\n- Hopper Disassembler or Ghidra for static binary analysis (complementary)\n- Knowledge of Objective-C runtime and Swift name mangling\n\n## Workflow\n\n### Step 1: Extract and Analyze the Binary\n\n```bash\n# On jailbroken device, find app binary\nssh root@\u003Cdevice_ip>\nfind \u002Fvar\u002Fcontainers\u002FBundle\u002FApplication\u002F -name \"TargetApp\" -type f\n\n# Pull decrypted binary (apps from App Store are encrypted with FairPlay)\n# Use frida-ios-dump or Clutch for decryption\npip install frida-ios-dump\ndump.py com.target.app\n\n# Extract Objective-C class headers\nclass-dump -H decrypted_binary -o headers\u002F\nls headers\u002F  # Lists all class header files\n```\n\n### Step 2: Enumerate Classes and Methods at Runtime\n\n```javascript\n\u002F\u002F enumerate_classes.js - List all loaded classes\nJava.perform(function() {});  \u002F\u002F N\u002FA for iOS\n\n\u002F\u002F iOS uses ObjC runtime\nif (ObjC.available) {\n    var classes = ObjC.classes;\n    for (var className in classes) {\n        if (className.indexOf(\"Target\") !== -1 ||\n            className.indexOf(\"Auth\") !== -1 ||\n            className.indexOf(\"Crypto\") !== -1) {\n            console.log(\"[Class] \" + className);\n\n            \u002F\u002F List methods\n            var methods = classes[className].$ownMethods;\n            for (var i = 0; i \u003C methods.length; i++) {\n                console.log(\"  [Method] \" + methods[i]);\n            }\n        }\n    }\n}\n```\n\n```bash\nfrida -U -n TargetApp -l enumerate_classes.js\n```\n\n### Step 3: Trace Method Calls with frida-trace\n\n```bash\n# Trace all methods of a class\nfrida-trace -U -n TargetApp -m \"*[TargetAuth *]\"\n\n# Trace specific patterns\nfrida-trace -U -n TargetApp -m \"*[*Crypto* *]\"\nfrida-trace -U -n TargetApp -m \"*[*KeyChain* *]\"\nfrida-trace -U -n TargetApp -m \"*[*Token* *]\"\n\n# Trace Swift methods (mangled names)\nfrida-trace -U -n TargetApp -m \"*[*$s*Auth*]\"\n```\n\n### Step 4: Hook and Modify Method Behavior\n\n```javascript\n\u002F\u002F hook_auth.js - Intercept authentication logic\nif (ObjC.available) {\n    \u002F\u002F Hook Objective-C method\n    var AuthManager = ObjC.classes.AuthManager;\n    if (AuthManager) {\n        Interceptor.attach(AuthManager[\"- validateToken:\"].implementation, {\n            onEnter: function(args) {\n                \u002F\u002F args[0] = self, args[1] = selector, args[2+] = method args\n                var token = new ObjC.Object(args[2]);\n                console.log(\"[Auth] validateToken called with: \" + token.toString());\n            },\n            onLeave: function(retval) {\n                console.log(\"[Auth] validateToken returned: \" + retval);\n                \u002F\u002F Optionally modify return value\n                \u002F\u002F retval.replace(ptr(1));  \u002F\u002F Force return true\n            }\n        });\n    }\n\n    \u002F\u002F Hook CommonCrypto for encryption analysis\n    var CCCrypt = Module.findExportByName(\"libcommonCrypto.dylib\", \"CCCrypt\");\n    if (CCCrypt) {\n        Interceptor.attach(CCCrypt, {\n            onEnter: function(args) {\n                this.operation = args[0].toInt32();  \u002F\u002F 0=encrypt, 1=decrypt\n                this.algorithm = args[1].toInt32();  \u002F\u002F 0=AES128, 1=DES, 2=3DES\n                this.keyLength = args[4].toInt32();\n                this.key = Memory.readByteArray(args[3], this.keyLength);\n                console.log(\"[CCCrypt] Op:\" + (this.operation === 0 ? \"Encrypt\" : \"Decrypt\"));\n                console.log(\"[CCCrypt] Key: \" + hexify(this.key));\n            },\n            onLeave: function(retval) {\n                console.log(\"[CCCrypt] Status: \" + retval);\n            }\n        });\n    }\n}\n\nfunction hexify(buffer) {\n    var bytes = new Uint8Array(buffer);\n    var hex = [];\n    for (var i = 0; i \u003C bytes.length; i++) {\n        hex.push((\"0\" + bytes[i].toString(16)).slice(-2));\n    }\n    return hex.join(\"\");\n}\n```\n\n### Step 5: Analyze Swift Code\n\n```javascript\n\u002F\u002F swift_analysis.js - Hook Swift methods\n\u002F\u002F Swift methods use name mangling: $s\u003Cmodule>\u003Cclass>\u003Cmethod>\n\u002F\u002F Use frida-trace to discover actual mangled names first\n\nif (ObjC.available) {\n    \u002F\u002F Swift classes that inherit from NSObject are accessible via ObjC runtime\n    var swiftClasses = Object.keys(ObjC.classes).filter(function(name) {\n        return name.indexOf(\"_TtC\") === 0 || name.indexOf(\"TargetApp.\") !== -1;\n    });\n\n    swiftClasses.forEach(function(className) {\n        console.log(\"[Swift] \" + className);\n        var methods = ObjC.classes[className].$ownMethods;\n        methods.forEach(function(method) {\n            console.log(\"  \" + method);\n        });\n    });\n}\n\n\u002F\u002F For pure Swift (non-ObjC-bridged), use Module.enumerateExports\nModule.enumerateExports(\"TargetApp\", {\n    onMatch: function(exp) {\n        if (exp.name.indexOf(\"Auth\") !== -1 || exp.name.indexOf(\"Crypto\") !== -1) {\n            console.log(\"[Export] \" + exp.name + \" @ \" + exp.address);\n        }\n    },\n    onComplete: function() {}\n});\n```\n\n### Step 6: Extract Secrets and Proprietary Data\n\n```javascript\n\u002F\u002F extract_secrets.js\nif (ObjC.available) {\n    \u002F\u002F Hook NSUserDefaults\n    var NSUserDefaults = ObjC.classes.NSUserDefaults;\n    Interceptor.attach(NSUserDefaults[\"- objectForKey:\"].implementation, {\n        onEnter: function(args) {\n            this.key = new ObjC.Object(args[2]).toString();\n        },\n        onLeave: function(retval) {\n            if (retval.isNull()) return;\n            var value = new ObjC.Object(retval);\n            console.log(\"[NSUserDefaults] \" + this.key + \" = \" + value.toString());\n        }\n    });\n\n    \u002F\u002F Hook Keychain access\n    var SecItemCopyMatching = Module.findExportByName(\"Security\", \"SecItemCopyMatching\");\n    Interceptor.attach(SecItemCopyMatching, {\n        onEnter: function(args) {\n            var query = new ObjC.Object(args[0]);\n            console.log(\"[Keychain] Query: \" + query.toString());\n        },\n        onLeave: function(retval) {\n            console.log(\"[Keychain] Result: \" + retval);\n        }\n    });\n}\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|-----------|\n| **Objective-C Runtime** | Dynamic runtime enabling method dispatch, class introspection, and method swizzling at runtime |\n| **Swift Name Mangling** | Compiler-applied encoding of Swift function signatures into linker-compatible symbol names |\n| **FairPlay DRM** | Apple's encryption applied to App Store binaries; must be decrypted before static analysis |\n| **class-dump** | Tool extracting Objective-C class declarations from Mach-O binaries for header-level analysis |\n| **CommonCrypto** | Apple's C-level cryptographic library; primary target for encryption key extraction via Frida hooks |\n\n## Tools & Systems\n\n- **Frida**: Dynamic instrumentation framework for iOS runtime hooking and method interception\n- **frida-trace**: Automated tracing utility that generates handler stubs for matched methods\n- **frida-ios-dump**: Tool for decrypting FairPlay-protected iOS apps via memory dumping\n- **class-dump \u002F dsdump**: Objective-C header extraction from Mach-O binaries\n- **Ghidra**: NSA's reverse engineering framework for static ARM64 binary analysis of iOS apps\n\n## Common Pitfalls\n\n- **FairPlay encryption**: Apps downloaded from the App Store are encrypted. You must decrypt before static analysis. Use frida-ios-dump on a jailbroken device.\n- **Swift-only classes**: Pure Swift classes without `@objc` annotation are not visible through `ObjC.classes`. Use `Module.enumerateExports()` instead.\n- **Stripped binaries**: Release builds strip debug symbols. Combine frida-trace with class-dump output for effective analysis.\n- **Anti-Frida measures**: Sophisticated apps check for Frida artifacts (frida-server process, Frida agent strings in memory, injected libraries in dyld). Use stealthy Frida builds or Frida Gadget injection.\n",{"name":5,"tags":48,"author":52,"domain":42,"license":14,"version":53,"subdomain":49,"description":54},[49,30,29,39,50,51],"mobile-security","owasp-mobile","penetration-testing","mahipal","1.0.0","Reverse engineers iOS applications using Frida dynamic instrumentation to understand internal logic, extract encryption keys, bypass security controls, and discover hidden functionality without source code access. Use when performing authorized iOS penetration testing, analyzing proprietary protocols, understanding obfuscated logic, or extracting runtime secrets from iOS binaries. Activates for requests involving iOS reverse engineering, Frida iOS hooking, Objective-C\u002FSwift method tracing, or iOS binary analysis.\n","master","3f5d983eb4ef375b749adcd6b07ec03bd82ae8a8","_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida",0,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills","https:\u002F\u002Fgithub.com\u002Fmicsapp","2026-03-20 11:24:18",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add micsapp\u002Fmicstec-skills --skill reverse-engineering-ios-app-with-frida",{"tool":68,"command":69},"bunx","bunx skills add micsapp\u002Fmicstec-skills --skill reverse-engineering-ios-app-with-frida",{"tool":71,"command":72},"pnpm","pnpm dlx skills add micsapp\u002Fmicstec-skills --skill reverse-engineering-ios-app-with-frida","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002FSKILL.md",true,[76,82,87,93,97,101,107],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"assets\u002Ftemplate.md","ASSET","资产文件",1116,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Fassets\u002Ftemplate.md",{"path":83,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002FLICENSE",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fapi-reference.md","REFERENCE","参考文档",1750,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Freferences\u002Fapi-reference.md",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fstandards.md",1432,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Freferences\u002Fstandards.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fworkflows.md",1724,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Freferences\u002Fworkflows.md",{"path":102,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Fagent.py","SCRIPT","脚本",6049,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Fscripts\u002Fagent.py",{"path":108,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":109,"sourceHtmlUrl":110},"scripts\u002Fprocess.py",4141,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Freverse-engineering-ios-app-with-frida\u002Fscripts\u002Fprocess.py",[112,148,177,197,217,242],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":127,"publishedAt":43},"01M6HBTJ02FXBFG9NYEHHYAP52","azure-apim-architecture","Analyzes and explains Azure API Management architecture decisions for enterprise API marketplace implementations using VNet Internal mode, Front Door, hybrid authentication, and multi-environment strategies. Use when discussing APIM component selection, network topology, cost optimization, or comparing alternatives like workspaces vs instances, VNet Internal vs External mode, or Front Door vs Application Gateway.","MIT","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fazure-apim-architecture\u002FSKILL.md",[119,122],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147],"architecture","azure","azure apim architecture","component","authentication","gateway","topology","Optimization","network","api","team","environment","multi-environment","workspaces","instances","selection","strategies","azure api management","mode","for",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":162,"publishedAt":43},"01M6HBT7J4H082JEEA670B3EQ9","apiops-deployment","Guides deployment of Azure API Management infrastructure using Infrastructure as Code (Bicep\u002FTerraform), CI\u002FCD pipelines (GitHub Actions\u002FAzure DevOps), and APIOps workflows. Use when deploying APIM, creating pipelines, or implementing dev→test→prod promotion strategies.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapiops-deployment\u002FSKILL.md",[154,155,158,161],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":156,"categoryName":157,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":159,"categoryName":160,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},[163,164,165,166,129,167,41,168,169,170,171,172,137,138,144,173,174,145,175,176],"deployment","apiops deployment","workflows","azure devops","infrastructure","infrastructure as code","actions","ci","github actions","github-actions","as","guides","CI\u002FCD","implementing",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":184,"publishedAt":43},"01M6HBT2HEA23THNE9E00GYQBE","apim-policy-authoring","Creates production-ready Azure API Management policy XML for authentication (OAuth 2.0, JWT validation, subscription keys), rate limiting, CORS configuration, error handling, and API transformations. Use when implementing API security, access control, or request\u002Fresponse processing logic.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapim-policy-authoring\u002FSKILL.md",[183],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},[185,186,187,188,129,132,137,138,36,189,190,191,192,193,194,145,195,196,176,147],"policy","authoring","apim policy authoring","security","use","ready","api security","Access Control","error","processing","cors configuration","production-ready",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":205,"publishedAt":43},"01M6HBSY65SB29J9WE9KYD0K6T","api-security-review","Reviews Azure API Management configurations for security vulnerabilities, OWASP API Security Top 10 compliance, VNet Internal mode validation, Private Link verification, and Azure Security Benchmark alignment. Use when performing security audits, pre-deployment validation, or compliance reviews.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapi-security-review\u002FSKILL.md",[203,204],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},[206,188,207,137,191,208,129,163,209,210,211,212,138,213,145,214,215,216,146,147],"review","security review","api security review","benchmark","verification","owasp","owasp-api","alignment","azure security","reviews","top",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":43},"01M6HBSRW4PDFE6K4F8JYPZQ05","jira-cli","Interact with Jira from the command line to create, list, view, edit, and transition issues, manage sprints and epics, and perform common Jira workflows. Use when the user asks about Jira tasks, tickets, issues, sprints, or needs to manage project work items.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fjira-cli\u002FSKILL.md",[],[224,225,226,165,227,228,229,230,137,231,232,233,234,235,236,237,238,239,240,241],"cli","jira","jira cli","init","tasks","create","issues","common","work","command","edit","list","view","project","project work","token","line","sprints",{"skillNo":243,"name":244,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":116,"licenseFileUrl":6,"sourceHtmlUrl":246,"categories":247,"keywords":248,"publishedAt":43},"01M6HBSNS3JHMW603G47TWE31H","calculator","Performs arbitrary-precision arithmetic calculations including addition, subtraction, multiplication, division, and exponents. Use when the user asks to calculate, compute, or evaluate math expressions, or when precise decimal arithmetic is needed to avoid floating-point errors.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fcalculator\u002FSKILL.md",[],[244,249,250,251,252,253,254,189,255,256],"npm","js","calculate","node","math","user","compute","errors"]