签名和动态库

196 阅读1分钟

签名

image.png

  1. CSR证书
  • 申请者信息
  • 申请者公钥(公钥M)
  • 摘要算法(公钥加密算法RSA)
  1. cer证书
  • 申请者信息、公钥:两者经过哈希算法生成“信息摘要”
  • 数字签名:信息摘要经过苹果私钥加密生成

公钥可信验证:本地一会生成信息摘要与数字签名解密的签名进行对比

  1. entitlements

查看授权列表

codesign -d --entitlements - InHouse.app
  1. 描述文件
  • APPID
  • 使用的证书
  • 功能授权列表
  • 可安装的授权列表(开发环境)
  • 苹果的签名
  1. 手动签名

如果有Plugins,需要对Plugins进行签名,首先需要砸壳解密

security find-identity -v -p codesigning   // 寻找可签名证书
codesign -fs "Apple Development: xxx (xxx)" plugins

security cms -D -i embedded.mobileprovision   // 查看描述文件信息

copy embedded.mobileprovision  // 复制描述文件到包内
codesign -fs "Apple Development: xxx (xxx)" --entitlments=xxx Payload/InHouse.app

image.png

动态库

简单生成动态库

image.png

可执行文件注入动态库,注入到LC_LOAD_DYLIB

otool -L // 查看动态库

insert_dylib 工具注入