文章为学习hank的视频笔记
一 开发者调试安装app到手机的签名过程
1. Mac电脑生成公钥M和私钥M2. 公钥M传给苹果服务器,苹果服务器的私钥A对公钥M进行加密生成证书返回给xcode
3. Xcode下载profile等描述文件,用公钥M对app进行加密生成app签名,然后把app签名和证书以及profile文件一起打包成ipa
4. 手机进行两次解密,手机用手机系统里的公钥A对证书进行解密得到公钥M,然后对比profile描述文件,查看权限,看是否合法;然后用公钥M对app签名进行解密
5. 手机里的公钥A与苹果服务器私钥A相对应
过程如下图:
二 加密和重签名相关的命令
1.base64加密文件:base64 test.txt -o new.txt
2. base64解密: base64 new.txt -o abc.txt -D
3. openssl生成私钥: openssl genrsa -out private.pem 512
4. 由私钥生成公钥: openssl rsa -in private.pem -out public.pem -pubout
5. 查看rsa的明文:openssl rsa -in private.pem -text -out private.text
6. 查看csr解密信息:openssl asn1parse -i -in CertificateSigningRequest.certSigningRequest
7. 查看profile文件信息: /Users/mac/Library/MobileDevice/Provisioning\ Profiles 然后security cms -D -i e871987c-b4c5-4658-8338-f6e4cabaff8e.mobileprovision
8. 查看签名信息:ipa包解压打开,进入Payload,查看.app的签名信息 codesign -vv -d QQMusic.app
9. 查看所有证书:security find-identity -v -p codesigning
10. 查看可执行文件macho的加密信息:.app显示包内容,找到同名的可执行文件otool -l QQMusic | grep crypt得到以下结果:
cryptoff 16384cryptsize 50085888cryptid 0cryptoff 16384cryptsize 55115776cryptid 0
两个架构的cryptid都是0,都没有加密
三 重签名方式之一 手动重签名
1. 新建工程codesignDemo,选择证书和真机调试
2. 进入包内容