美文网首页
四:App重签名

四:App重签名

作者: Ray_lawq | 来源:发表于2019-01-29 23:33 被阅读0次
    • 目的:把越狱的软件安装到非越狱的手机上(没有砸壳的APP 不行)
    • 原理:先创建一个新的应用,新应用(新的AppID)的描述文件包含你的手机UUID,这样新的App可以安装到你的手机上,然后越狱App使用新App的AppID,使得越狱App可以安装(使用新的描述文件,重新打包目标app,使其目标app成为你自己的应用)

    一:使用codesign (终端命令行)工具来实现

    1. 先查看App是否越狱(查看MachO文件),如果crytpid 为0越狱,非0,就是没有越狱(例如1,就是以 “1” 这种方式加密的)



      [注]:为什么cryptid 有2个?说明2个框架(arm64,arm),当前文件是一个胖二进制文件。

    2. 删除App包里边的 PlugIns 和 Watch 文件夹,里边库文件重签不了。

    3. 重新签名Frameworks里边的三方库(使用钥匙串里边你能用的证书)
      3.1查看钥匙串里边所有的证书:



      3.2 使用证书自己的证书重签名库全部的库文件


      3.3 查看App 包里边同名的执行文件是否有执行的权限(一般情况下是有的,如果没有,请修改文件的权限)

    4. 创建一个新的工程(或者使用一个老的工程)拿到你重签framework时候使用的证书对应的描述文件,并拷贝进入app包里边(显示原文件里边)

    5. 修改info.plist 文件的budle ID(因为描述文件和目标APP的ID不统一,想要重签,只能修改目标文件的budle ID)

    6. 创建权限文件
      6.1使用终端命令查看描述文件($security cms -D -i +描述文件)


      6.2找到权限文件(Entitlements 段落)


      6.3拷贝整个内容,新建一个plist文件(文件名字必须是entitlements.plist,否则后果自负)


    7. 把entitlements.plist 和 重签好的目标APP放到同一级目录下,重新签名整个APP(上边只是重签库文件)


    8. 到目前为止重签已经完成,把目标文件(App文件)打包成ipa文件,就可以安装了


    【注】codesign这种方法比较繁琐,易错,不推荐这么实现,但恰恰是重签的原理,后边的方法都是用的这种原理,只不过好多步骤都代办了。

    二:使用xcode

    前边的“3步”和codesign都是一样,不重复写了,直接第4步开干

    1. 新建一个空的工程,工程的名字和目标APP的名字相同,运行一次,保证新工程可以运行到你的手机上(新建的工程的描述文件写入的你的手机)

    2. 找到新建工程的包的地址


    3. 把修改好的目标APP.app 包直接覆盖新工程里边,再次运行就可以了


    【注】1. xcode代办了使用描述文件生成权限文件,再通过权限文件重签目标App

    1. 这种方法比较方便推荐使用

    三:使用shell脚本

    1. 在工程文件路径里边新建APP文件夹,把目标api 包放入到APP文件夹里边里边


    2. 将写好的shell 脚本文件,也放到工程目录里边

      可以在我的另一篇文章中了解shell脚本的知识(https://www.jianshu.com/p/8063f6c9ea0a

    3. 引用脚本文件(signApp.sh)


    4. 直接运行

    【注】1. 这种方法也比较推荐,但是脚本文件必须写的“健壮”,不一定适合所有的app(比如有的app文件路径写的和普通的不一样,这样脚本的处理路径必须修改)

    1. 脚本文件里边的内容其实就是使用shell 语句去实现方法1中的步骤
    2. 运行的时候有可能会出现signApp.sh 文件没有执行权限,请添加执行权限
    3. 可以在我的另一篇文章中查看文件权限的内容(https://www.jianshu.com/p/456e2ee978c0

    相关文章

      网友评论

          本文标题:四:App重签名

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