美文网首页
应用重签名

应用重签名

作者: Code_人生 | 来源:发表于2019-10-12 15:30 被阅读0次

    一、codesign

    Xcode提供了签名工具,codesign,我们通过几个命令就可以完成重签名

    终端命令

    $security find-identity -v -p codesigning 列出钥匙串里可签名的证书
    $codesign –fs "证书串(iPhone Developer: weibing yao (2J6EA7WS74))" 文件名 强制替换签名
    $chmod +x 文件名 给文件添加执行权限
    $security cms -D -i ../embedded.mobileprovision 查看描述文件
    $codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包
    $Zip –ry 输出文件 输入文件 将输入文件压缩为输出文件
    $codesign -vv -d WeChat.app 查看WeChat.app的信息
    $otool -l WeChat 读取可执行文件WeChat,MachO
    $otool -l WeChat > ~/Desktop/123.txt 读取可执行文件WeChat,重定向,到桌面的123.txt
    $otool -l WeChat | grep cry 读取可执行文件WeChat,管道输出,筛选cryptid

    运行的时候解密,所以一定要是高效的,解密到内存。如果安装的时候解密的话,直接从安装之后的磁盘复制出来不就好了。所以一定是运行是解密。每次运行都解密。

    二、重签名步骤

    1、删除插件和带有插件的.app包(比如Watch)
    2、对Frameworks里面的库进行重签名
    3、给可执行文件 +x(可执行)权限
    4、添加描述文件(新建工程,真机编译得到)
    5、替换BundleID
    6、通过授权文件(Entilements)重签.app包

    三、SHELL脚本

    3.1、shell基础知识

    bash是一种shell,zsh也是一种shell
    1、根目录下,执行cd /bin
    2、open .

    3、chsh -s /bin/bash 切换成bash

    4、chsh -s /bin/zsh 切换成zsh

    • .bash_profile bash的初始化文件 在(~)目录下
    • .zshrc zsh的初始化文件 在(~)目录下
    • ls 查看文件
    • ls -a 查看所有文件(包含隐藏文件)
    • ls -l 查看所有文件(不包含隐藏文件)(文件详情)
    • pwd 输出当前文件夹或文件的路径
    • ~/的区别,看下面代码
    dengyazhou-MacBook-Pro:~ dengyazhouPro$ pwd
    /Users/dengyazhouPro
    dengyazhou-MacBook-Pro:~ dengyazhouPro$ cd /
    dengyazhou-MacBook-Pro:/ dengyazhouPro$ pwd
    /
    dengyazhou-MacBook-Pro:/ dengyazhouPro$ 
    
    • mkdir 文件夹名 建文件夹
    • touch 123.txt 建文件
    • cd .. 返回文件上一级
    • cat 文件名 查看文件
    • rm -rf 文件夹名rm -r 文件夹名 删除文件夹,包含里面的内容
    • rm 文件名 删除文件
    • unzip 文件名 解压文件
    • 终端操作文本
      • 1、vim 123.txt 或者 vi 123.txt
      • 2、i
      • 3、esc
      • 4、:
      • 5、wq和x的操作一样
    • 创建一个shell脚本

    bash 123.sh 执行shell
    zsh 123.sh 执行shell
    source 123.sh 执行shell
    ./123.sh 执行shell

    • cat /private/etc/shells 查看shell,在(/)目录下
    • otool -f MachO文件:查看MachO胖二进制文件头信息
    3.2、shell

    shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中文件以及运行在系统上的进程的途径。Shell一般是指命令行工具。它允许你输入文本命令,然后解释命令,并在内核中执行。
    Shell脚本,也就是用各类命令预先放入到一个文本文件中,方便一次性执行的一个脚本文件。

    $source FileName
    意思:在当前shell环境中读取并执行FileName中的命令
    特点:
    命令可以强行让一个脚本去立即影响当前的环境(一般用于加载配置文件)。
    命令会强制执行脚本中的全部命令,而忽略文件的权限。

    $bash FileName、$zsh FileName
    意思:重新建立一个子shell,在子shell中执行脚本里面的句子。

    $./FileName
    意思:读取并执行文件中的命令。但有一个前提,脚本文件需要有可执行权限。

    四、用户、组、权限

    Unix和Linux都是多用户、多任务的系统,所以这样的系统里面就拥有了用户、组的概念。那么同样文件的权限也就有相应的所属用户和所属组了。

    • 目录结构
    • Mac文件属性
    • 文件类型与权限(permission)
    • 改变权限:chmod
      • chmod +x 文件名 默认给a加 ,等同于chmod a+x 文件名
      • chmod 561 文件名,分别给u设置为r-w、g设置为rw-、o设置为--x。注意数字类型改变的时候,里面没有u、g、o、a、+、-、=、r、w、x这些。

    相关文章

      网友评论

          本文标题:应用重签名

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