美文网首页
应用签名-脚本签名

应用签名-脚本签名

作者: yahibo | 来源:发表于2019-06-15 11:54 被阅读0次

签名原理熟悉了,又能够手动对应用签名,那么就可以将手动签名部分写成脚本,通过脚本,一步步实现手动签名过程。脚本签名中xcode会对.ipa做权限管理,因此不需要做权限签名。

破壳ipa获取:
1、通过越狱手机获取破壳应用;
2、通过PP助手获取越狱应用。

新建xcode工程,在工程文件中新建两个文件夹toolapp
1、tool文件存放签名脚本;
2、app文件存放要启动的.ipa破壳应用。

签名脚本:

shell.png

脚本:

#定义目录路径 ${SRCROOT}为当前工程的根目录
#定义临时目录变量,存放解.ipa后产生的临时文件
TEMP_PATH="${SRCROOT}/temp"
#tool路径
TOOL_PATH="${SRCROOT}/tool"
#定义APP资源目录变量,存放要重签名的APP
APP_PATH="${SRCROOT}/app"
#定义ipa包路径
IPA_PATH="${APP_PATH}/*.ipa"


#移除临时文件,并重新创建文件夹
rm -rf "${TEMP_PATH}"
mkdir -p "${TEMP_PATH}"


###########1、解压ipa到指定的文件下###########
unzip -o "$IPA_PATH" -d "$TEMP_PATH"
#获取临时app路径
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
echo ".app文件路径:$TEMP_APP_PATH"


###########2、修改应用info.plist的BundleId###########
# 设置 "Set :KEY Value" "Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TEMP_APP_PATH/Info.plist"


###########3、删除扩展应用及插件###########
echo "Removing PlugIns and Watch"
rm -rf "$TEMP_APP_PATH/PlugIns"
rm -rf "$TEMP_APP_PATH/Watch"


###########4、给可执行文件执行权限###########
#获取可执行文件路径
APP_BINARY=`plutil -convert xml1 -o - $TEMP_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#给可执行文件权限
chmod +x "$TEMP_APP_PATH/$APP_BINARY"


###########5、重新签名Frameworks下的所有动态库###########
#获取动态库路径
APP_FRAMEWORKS_PATH="$TEMP_APP_PATH/Frameworks"
#判断文件是否存在
if [ -d "$APP_FRAMEWORKS_PATH" ]
then
#遍历所有动态库
for FRAMEWORK in "$APP_FRAMEWORKS_PATH/"*
do
echo "framework: $FRAMEWORK"
#对动态库签名 $EXPANDED_CODE_SIGN_IDENTITY xcode上的证书
/usr/bin/codesign -fs "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi

###########6、将修改后的.app移动到xcode对应的Products下###########
#BUILT_PRODUCTS_DIR xcode生成的.app包路径
#TARGET_NAME 应用名称
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "目标代码路径:$TARGET_APP_PATH"
rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH/"
  • 需要将脚本路径添加到创建的Run Script
  • 注意:在工程中可能需要对SignApp.sh加可执行权限chmod +x SignApp.sh
shell.png

需要安装的应用:

ipa.png

以上步骤完成后几个运行工程,编译完后会自动执行脚本,在脚本中完成对应用的重签名。

运行安装:

iPhone.png

Xcode调试:

dy.png

通过这种方法,是不是就更方便了,直接对应用重签名, 通过xcode了解应用布局,层级关系。再也不用担心他们又背着我们做了哪些“见不得人的事”了。

《应用签名-手动签名》

相关文章

  • 应用签名-脚本签名

    签名原理熟悉了,又能够手动对应用签名,那么就可以将手动签名部分写成脚本,通过脚本,一步步实现手动签名过程。脚本签名...

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

    本文主要介绍通过shell脚本进行应用重签名 补充知识 在利用shell脚本重签名之前,需要了解以下知识:脚本常用...

  • iOS开发逆向之应用签名!

    本文主要讲解什么是代码签名,以及iOS中的应用签名 代码签名 代码签名是对可执行文件或脚本进行数字签名.用来确认软...

  • iOS逆向-RSA的使用:代码签名(手动签名、脚本自动签名 《二

    请先看下面?的文章 iOS逆向-RSA的使用-证书签名、代码签名(手动签名、脚本自动签名 《一》) 脚本重签名 ...

  • 046 Android签名机制

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

  • iOS IPA重签名入门教程

    方式一、resignIPA重签名 下载脚本resignIPA.py、这个python2脚本、直接签名即可,可重签名...

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

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

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

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

  • iOS代码注入

    上一片文章通过脚本对iOS应用进行重签名,我们已经知道了如何对应用进行重签名,那么如何才能让别人的app执行我们自...

  • iOS 应用签名原理

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

网友评论

      本文标题:应用签名-脚本签名

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