在逆向 App Store 的 Apple ID 注册流程,卡在签名算法最后一步。 ### 已完成 1. 完整抓包了注册流程(51 条 HTTP 请求),流程如下: - GET setup.icloud.com/setup/qualify/cert → 拿服务端证书 - GET setup.icloud.com/setup/qualify/session → 拿 session-info - GET buy.itunes.apple.com/.../signupWizard → 注册页 - POST .../validateFields (多次) → 表单验证 - POST .../generateAndSendHSA2SecCodeSrv → 发送验证码 2. 签名格式已分析:X-MMe-Nas-Qualify 是 90 字节 base64 - 解密后:32 字节 ECDSA DER 签名 + 58 字节元数据 - 算法确认:ECDSA P-256 + SHA-256 3. 签名链路:AMSAbsintheSession.signData:bag:error: → _prepareContextWithBag:error: → AuthKit 的 t1Uu 函数(IDA 反编译 814 行) 4. Keychain 里搜不到私钥,应该是 qualify/session 响应里的 session-info 包含的 ### 卡住的问题 session-info 是 170 字节的二进制数据(base64 解码后), 开头 02 2e 是 ASN.1 INTEGER(46 字节),但后面的数据 用 asn1crypto 解析报 "indefinite length" 错误, 不像标准 SEC1/PKCS8 格式。 试过 SecKeyCreateWithData 直接导入也返回 nil。 求大佬帮忙看这个 170 字节到底是什么格式,怎么提取出 ECDSA 的私钥(P-256)。 ### 附数据 session-info (170B hex): 022e0b80fd62e09a84d82900d88f4c1782000000407940a87722504490 0b3b94dce1f5e1eddffe6548ed60d8440bd6bf18da97af18b459712304 393359af1c0450dad1d8a28680d48d45761bf2ad7a6e2578241eec01807 1a70076960e575e65d850498f7b24e1f4838d000000360205ffbaa7d6f5 0467445c0fa21f56df277f6a19afa90050855ca57a62d872f4654ff146f 85aa1f6e345dcebe9f936e684430ae4830a57004c003800 测试向量(signupWizard URL): URL: /WebObjects/MZFinance.woa/wa/signupWizard ?&guid=d069542bd56778a8f7e424ce966882b246286089 签名 (90B hex): 02047e52651b841dc0368e54ef946f51f89b1d7d56ad 1669f426976e0a6c804c65000000f00600000000000000807e4b68cd2f44 566ac2f3fa928daeb75a772ecb4eb627d25f909fa4352cad5859004aead4 a404d84a0c36c8b4 签名 (base64): AgR+UmUbhB3ANo5U75RvUfibHX1WrRZp9CaXbgpsgExlAAAA8AYAAAAA AAAAgH5LaM0vRFZqwvP6ko2ut1p3LstOtifSX5CfpDUsrVhZAErq1KQE 2EoMNsi0
[内核课程]《Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。