美文网首页
应用签名

应用签名

作者: 喵喵粉 | 来源:发表于2019-08-04 18:41 被阅读0次

这里记录3种签名方式
1.手动签名
2.手动+Xcode签名
3.sh脚本签名

1. 准备工作,下好IPA包

IPA文件
  • 查看IPA包的可执行文件(MachO文件)
codesign -d WeChat.app
查看IPA包的可执行文件
  • 查看MachO、app的签名
codesign -d -vv WeChat.app/WeChat
codesign -d -vv WeChat.app
查看MachO的签名
查看app的签名
  • 查看MachO文件是否砸壳, 重签名是在砸壳的基础上进行的,这里用的都是cryptid=0的IPA包
otool -l WeChat.app/WeChat | grep crypt
MachO文件是否砸壳
  • 查看MAC上安装的证书,签名要用到
security find-identity -v -p codesigning
查看MAC上安装的证书

2. 手动签名

手动重签名步骤

进入WeChat.app,删除插件和带有插件的.app包(比如Watch和PlugIns文件夹)
对Frameworks里面的库进行重签名
给MachO文件 +x(可执行)权限
添加描述文件(新建工程,真机编译得到)
替换BundleID
通过授权文件(Entilements)重签.app包
Zip命令打包IPA包,安装Done
  • 对Frameworks里面的库进行重签名
//强制替换签名
codesign –fs “证书串” 文件名   
Frameworks
对Frameworks重签名
  • 添加描述文件
    xcode新建oc工程, BundleID为com.zz.huxiu,然后在手机上运行一遍 !

    工程目录
    Xcode
  • 替换wechat.app里面 Info.plist 的BundleID为com.zz.huxiu

    WeChat的Info.plist
    替换BundleID
  • 通过授权文件(entitlements.plist)重签.app包

编译工程拿到mobileprovision文件

编译工程拿到mobileprovision文件

通过下面命令获取到embedded.mobileprovision中的Entitlements字段

security cms -D -I embedded.mobileprovision
获取到Entitlements

Xcode中新建entitlements.plist文件,将上面的Entitlements字段复制进来


entitlements.plist
entitlements.plist

将entitlements.plist copy到wechat.app同级


copy entitlements.plist

对wechat.app签名

codesign -fs "iPhone Developer: dkdsj123@163.com (QRZLAJMA52)" --no-strict --entitlements=entitlements.plist Wechat.app
对wechat.app签名

查看签名后wechat.app的签名

codesign -d -vv WeChat.app
查看wechat.app的签名
  • 打IPA包
zip -ry wechat.ipa Payload
打IPA包
wechat.ipa

安装IPA包到手机 需要信任下证书 Done


image.png

3.手动+Xcode签名

步骤(与手动签名对比 少了几个步骤:对MachO签名+打包IPA)

进入WeChat.app,删除插件和带有插件的.app包(比如Watch和PlugIns文件夹)
对Frameworks里面的库进行重签名
替换BundleID (com.zz.huxiu)
将WeChat.app替换xcode生成的app
用xcode直接运行到手机 

xcode新建WeChat同名工程 bundleID为com.zz.huxiu 先在手机上跑一遍,信任下证书!
解压准备的IPA包=>WeChat.app

未动的WeChat.app
  • 对Frameworks里面的库进行重签名
//强制替换签名
codesign –fs “证书串” 文件名   
framework重签名
  • 将处理好的WeChat.app替换Xcode编译的app


    image.png
  • Xcode运行 done

4.sh脚本签名

步骤

xcode新建工程 BundleID为com.zz.huxiu,然后在手机上运行一遍 
Xcode添加脚本
工程目录新增sh、APP/ipa文件
Xcode 运行 done
xcode添加脚本
工程目录

相关文章

  • IOS 逆向开发(四)App重签名

    1. 应用签名 应用签名原理回顾 上一篇博客“IOS 逆向开发(三)应用签名”中详细讲解了IOS 应用签名,证书的...

  • iOS开发逆向之应用重签名(上)

    本文主要介绍重签名的几种方式,以及如何对应用进行重签名, 应用重签名 从之前《iOS逆向应用签名》中可知,签名是指...

  • 046 Android签名机制

    彻底搞懂Android签名机制 目录 应用签名的意义 应用签名方案类型 签名方案:v1 签名方案:v2 签名方案:...

  • iOS 应用签名原理

    本文将讲解苹果的应用签名原理,旨在理解了应用签名后可以对非自己的应用进行重签名。 下面将从三个方面去讲解应用的签名...

  • Android应用程序签名详解

    本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名...

  • Adb常用命令

    查看签名文件 查看第三方应用签名 给空白APK文件签名 查看应用某一标识的log 将应用日志输出到文件

  • Android NDK JNI 入门笔记-day05-NDK应用

    * Android NDK JNI 入门笔记目录 * 开头 NDK 实践-应用签名校验。 应用签名 Android...

  • 查看apk签名信息和第三方应用的签名信息

    Android如何查看应用签名信息 介绍Android如何查看自己的应用签名及三方APK或系统APK签名信息,包含...

  • Android权限

    签名 签名的作用主要是区分应用的主体,方便应用维护升级。 类型 sharedplatformreleasemedi...

  • 应用签名-签名原理

    HASH加密 将任意大小的数据通过散列算法变换成固定长度的字符,通常为32位的固定字符,又称hash值。特点:算法...

网友评论

      本文标题:应用签名

      本文链接:https://www.haomeiwen.com/subject/gwiydctx.html