Cod*_*odo 30 iphone asn.1 distribution signature
有没有办法以编程方式确定当前正在运行的应用程序是否仅为开发而构建和签名,或者是否为分发而构建?并且可以确定是否为应用商店或临时分发构建?
例如,是否可能访问代码签名并从那里获取信息?或者某些变体中是否存在某些不存在于其他变体中的文件?是捆绑信息的一部分吗?或者它可以从可执行文件派生?
任何提示都表示赞赏.
似乎embedded.mobileprovision文件是ASN.1格式.
tc.*_*tc. 29
最简单的检查方法是查看embedded.mobileprovision([[NSBundle mainBundle] pathForResource:@"embedded.mobileprovision" ofType:nil]):
openssl asn1parse -inform der),但糟糕的黑客只是寻找<plist和</plist>.<key>get-task-allow</key><true/>您可以检查的另一件事是嵌入在可执行文件中的权利(otool -l将其列为LC_CODE_SIGNATURE).解析这个更加繁琐(您需要解析Mach-O头和加载命令,对于现在是默认的"通用"二进制文件,您需要检查当前加载的体系结构或所有体系结构).
<key>get-task-allow</key><true/><key>get-task-allow</key><false/>我不认为权利区分Ad Hoc和App Store构建.
除了那些和它签署的证书之外,开发/ Ad Hoc/App Store应用程序之间没有区别(权利/配置文件中还有一些其他的东西,但我认为没有更可靠的东西).
这些都不难以规避.对于第一种方法,应用程序可能只是"混蛋" -[NSBundle pathForResource:ofType:].第二种方法有点困难,具体取决于您用于读取文件的API.
Bri*_*ing 12
openssl asn1parse -inform DEM -in *Mobile_Provision_File* -strparse 54 是访问我发现的数据的最简单方法.
编辑:
security cms -D -i *Mobile_Provision_File*实际上更容易.openssl命令在输出中留下一些垃圾.
| 归档时间: |
|
| 查看次数: |
8614 次 |
| 最近记录: |