逆向工程

APP签名

Posted by JT on May 25, 2018

APP签名

Code Signature

codesign -dvvvv 可执行文件查看签名信息

签名流程:

1 在本地生成certificatesigningrequest.certsigningrequest给苹果服务器,然后苹果对其进行私钥加密,生成ios_develpment.cer的证书,然后用其对APP进行签名;在进行签名的时候会使用本地的私钥进行加密(其对应的公钥为certificatesigningrequest.certsigningrequest),ios系统在安装应用的时候会进行一个验证,验证证书是不是合法,会用一个公钥进行解密.

手动签名:

  • 找到电脑上可用于签名的证书列表 命令:security find-identity -v -p codesigning
  • 找到一个可用的证书之后,拷贝一个配置文件到目标app文件夹下边,可以在现有工程app包中找到 copy embedded.mobileprovision

    查看描述文件内容 security cms -D -i embedded.mobileprovision

    根据描述文件生成plist文件 security cms -D -i embedded.mobileprovision > enti.plist

  • 用证书的字符串和授权文件和app文件进行签名,如果app有extension和注入动态库,要对这两个进行重签名 重签名app:codesign -fs "iPhone Developer: 史超 王 (RRKUW9DNGU)" --no-strict --entitlements=环境文件位置 Payload/xxx.app 重签名extension:codesign -fs "iPhone Developer: 史超 王 (RRKUW9DNGU)" extension
  • 生成payload文件夹,将app拖到文件夹中,mkdir Payload
  • 对payload进行压缩生成ipa文件,zip -qry xxx.ipa ./Payload