1.获取ipa包的渠道

a.助手下载,各种助手;例:PP助手(非加密的)
b.从越狱手机里面拷贝!(加密和非加密都有)
c.iTurns下载,要求iTurns版本 12.6.3以下,可以下载ipa包(官方包,加密了的)

iOS包,签名,核心利用的工具是 codesign,利用Xcode签名,其实核心也是用的codesign。
手里有一个微信-6.7.3(越狱应用) 的压缩包(密码:02xc),

一:解压这个压缩包:

解压

二:打开命令行工具,CD到关键目录:

CD到关键目录

三:根据不同命令,查看.APP文件:

我们利用codesign,查看一下该包的信息:

$ codesign -d WeChat.app 查看可执行文件路径;

$ codesign -d -v WeChat.app 查看更详细的信息;

$codesign -d -vv WeChat.app 查看更详细的信息,包含签名信息;


签名信息

附:相关命令合集
$security find-identity -v -p codesigning 列出钥匙串里可签名的证书

$Codesign –fs “证书串” 文件名   强制替换签名

$Chmod +x 可执行文件   给文件添加权限

$security cms -D -i ../embedded.mobileprovision 查看描述文件

$codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包

$Zip –ry 输出文件 输入文件  将输入文件压缩为输出文件

如何重新签名

一。需要我们自己的证书

$security find-identity -v -p codesigning 查看我们钥匙串里面的证书

二。cd到包目录下 $cd WeChat.app
三。显示包内容,看看目录结构

显示包内容


核心文件

四。利用otool查看核心文件,并在桌面生成详情文件123.txt,$otool -l Wechat > ~/Desktop/123.txt

东西太多,我们只看核心的东西。


是否加密


因为我们的压缩包是破解包,所以加密是0,正版的包,加密ID是1

也可以通过$otool -l Wechat | grep crypt 筛选关键词

两个ID

解答:通过$file Wechat


两种架构,通用二进制文件


因为包含两种架构,也叫胖二进制文件,可以拆分。

签名关键:

一:干掉不能签名的东西

干掉三方


QQ20190604-043139@2x.png

二:需要签名的列表:
1:Frameworks

a.Frameworks文件里面的所有文件


QQ20190604-043323@2x.png

b.CD到Frameworks文件夹下面,
c.之前通过命令:security find-identity -v -p codesigning 获取到的本地列表,取一个可用的证书,
我们这里取了图片上的例子:


核心部分打了马赛克


d.利用命令:$codesign -fs "上一条命令获取的字符串" ConfSDK.framework
(例子:上一条命令获取的字符串:" iPhone Distribution: Shenzhen Tencent Network Technology Co., Ltd. (F8RSBY6WWW) ”)


签名成功


签名成功。依次签Frameworks文件夹里面的所有文件
ConfSDK.framework
GPUImage.framework
mars.framework

....

2:描述文件

问题,描述文件哪里来:打开Xcode,我们签名的证书对应的项目最好。
a.拷贝签名对应的描述文件:


图A


显示包内容


描述文件


拿到这个描述文件,拷贝到


⚠️注意注意⚠️

b.修改需要签名文件夹里面的Info.plist文件,将之前Xcode里面的BundleID替换到Info.plist文件对应的地方:


修改的地方

c.描述文件里面,有一个重要的字典,需要我们拷贝出来:
1.命令行,CD到下图路径(描述文件的地址,也就是Frameworks文件夹同级)
2.$ security cms -D -i embedded.mobileprovision  查看描述文件


需要的字典

<key>Entitlements</key>
    <dict>
                        <key>application-identifier</key>
        <string>F8RSBY62RW.com.szlz.zhangshangCF</string>
                        <key>keychain-access-groups</key>
        <array>
                <string>F8RSBY62RW.*</string>
        </array>
                        <key>get-task-allow</key>
        <true/>
                        <key>com.apple.developer.team-identifier</key>
        <string>F8RSBY62RW</string>

    </dict>

3.新建一个plist文件,上述字典的plist文件,可以通过Xcode创建,文件名必须是entitlements.plist


plist文件格式

这个entitlements.plist是重要文件,我们就是用它来签名整个app包,


核心文件目录


返回到上级


目录结构

4.重签名来了。
a. cd到entitlements.plist和WeChat.app 同在目录;
b. $codesign -fs "获取的证书字符串" --no-strict --entitlements=entitlements.plist WeChat.app

成功

c.验证:$codesign -d -vv WeChat.app

成功!


d.WeChat.app转换成ipa文件,app文件无法直接安装到手机,我们手机安装需要的是ipa,先将entitlements.plist 文件和.app拆分,


拆分


通过命令$ zip -ry WeChat.ipa Payload

ipa包到手。任务完成!



作者:OXHO
链接:https://www.jianshu.com/p/ca6039cb5bb9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


评论(0条)

请登录后评论
admin

admin

0

0

0

( 利码汇站长感谢您的支持! )