iOS 逆向ios 开发

iOS 重签名

2023-01-17  本文已影响0人  iOS小洁

重签名

如果希望将破坏了签名的安装包,安装到非越狱的手机上,需要对安装包进行重签名操作

安装包中的可执行文件必须是经过脱壳的,重签名才有效

.app包内部的所有动态库(.framework、.dylib)、APPExtension(PlugIns文件夹,拓展名是appex)、WatchApp(Watch文件夹)都需要重新签名

查看设备的日志信息

codesign重签名

  1. 准备embedded.mobileprovision文件,并放入app包中
    1. 可以通过xcode生成,然后再编译后的app包中找到
    2. 可以去开发者证书网站生成下载
  2. 从embedded.mobileprovision文件中提取出entitlements.plist权限文件
    1. security cms -D -i embedded.mobileprovision > temp.plist
    2. /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.plist > entitlements.plist
  3. 查看可用的证书
    1. security find-identity -v -p codesigning
  4. 对.app内部的动态库、APPExtension等进行签名
    1. codesign -fs 证书ID xxx.dylib
  5. 对.app 包进行签名
    1. codesign -fs 证书ID --entitlements entitlements.plist xxx.app

GUI 工具

1、iOS App Signer

可以对.app重签名打包成ipa

需要对.app包中提供对应的embedded.mobileprovision文件

2、iReSign

动态库注入

可以使用insert_dylib库将动态库注入到Mach-O文件中

用法:insert_dylib 动态库加载路径 Mach-O文件

两个参数选项:--weak,即使找不到动态库也不会报错;--all-yes 后面所有的选择都为yes

inser_dylib的本质是往动态库Mach-O文件的Load Commands 中添加了一个LC_LOAD_DYLIBLC_LOAD_WEAK_DYLIB

可以通过otool查看Mach-O的动态库依赖信息

otool -L Mach-O文件

更改动态库加载地址

可以通过install_name_tool 修改Mach-O中动态库的加载地址

install_name_tool -change 旧地址 新地址 Mach-O文件

通过Theos开发的动态库插件(dylib)

两个常用的环境变量

上一篇下一篇

猜你喜欢

热点阅读