iOS黑客攻防秘籍(第2版)
上QQ阅读APP看书,第一时间看更新

1.3 代码签名

代码签名(code signing)是 iOS 一个重要的安全机制,所有二进制文件都必须经过签名才能被执行。在内存中,只执行签名来源为自己的页,这样应用就不能自我升级或者动态改变行为。我们可以使用 codesign 命令来验证应用的签名信息是否被破坏。输入下面的命令,如果没有输出信息,就表示签名信息没有被破坏:

codesign --verify testSandbox.app/

此外,使用下面的命令还可以查看签名的相关信息:

$ codesign -vv -d testSandbox.app/
Executable=/Users/exchen/Library/Developer/Xcode/DerivedData/testSandbox-fzalslvcpprgiodycqxzblqe-
    ztql/Build/Products/Debug-iphoneos/testSandbox.app/testSandbox
Identifier=net.exchen.testSandbox
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20200 size=694 flags=0x0(none) hashes=14+5 location=embedded
Signature size=4701
Authority=iPhone Developer: exchen99@qq.com (248BRN4CNL)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=2018 年 4 月 8 日 01:27:40
Info.plist entries=26
TeamIdentifier=QQ4RE63T4U
Sealed Resources version=2 rules=13 files=7
Internal requirements count=1 size=188