标签归档:tweak

tweak项目ipa包重签名

1、参考链接:ipa包重签名
2、tweak项目修改部分是以插件的形式存在,因此需要将插件动态库与现在的ipa包重新打包签名;
3、找到tweak后生成的动态库,参考路径为:/Library/MobileSubstrate/DynamicLibarries/xxxTweak.dylib;
4、将该dylib文件放在现有包xx.app中,与二进文件同目录;
5、使用otool -L xxxxx查看Mach-O文件的动态库加载,这里面是没有tweak动态库的,需要将xxxTweak.dylib加进来;
6、工具来了,https://github.com/Tyilo/insert_dylib
6.1、使用release编译该git工程,得到一个inser_dylib工具,放在/usr/local/bin中;
6.2、insert_dylib @executable_path/xxxTweak.dylib xxxx

yusian@SianMac2:~$insert_dylib @executable_path/xxxTweak.dylib xxxx
LC_CODE_SIGNATURE load command found. Remove it? [y/n] y
Added LC_LOAD_DYLIB to lldb_patched

6.3、此时会生成一个xxxx_patched的Mach-O文件,使用otool -L xxxx查看能看到新加的动态库
7、修改xxxTweak.dylib中的库路径;
7.1、使用otool -L xxxTweak.dylib,可看到依赖的库有一个是与Cydia相关的
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
7.2、从越狱手机中将库拷贝出来存放到xxx.app目录中,与该动态库同目录;
7.3、修改动态库中CydiaSubstrate的路径

yusian@SianMac2:~$ install_name_tool xxxxtweak.dylib /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/CydiaSubstrate

8、将新加进来的两个动态库签名

yusian@SianMac2:~$ codesign -fs xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxtweak.dylib
lldbtweak.dylib: replacing existing signature
yusian@SianMac2:~$ codesign -fs xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx CydiaSubstrate
CydiaSubstrate: replacing existing signature

9、整包重签名:ipa包重签名

yusian@SianMac2:~$ codesign -fs xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --entitlements inh_entitlements.plist Payload/xxxx.app
Payload/lldb.app: replacing existing signature

10、两个环境变量说明:
10.1、@executable_path:可执行文件路径
10.2、@loader_path:当前加载库路径

Theos的安装及简单使用

1、Theos是iOS越狱插件开发的集成环境,它可以创建工程,调用XCode的命令行工具编译、ldid签名打包,并提供上传手机、安装等一系列操作,安装成功后可以Cydia的已安装插件中看到。

2、安装ldid&dpkg

2.1、安装ldid
2.1.1、参考链接:https://brewinstall.org/Install-ldid-on-Mac-with-Brew/
2.1.2、安装命令:

1
yusian@SianMac2:~/Documents/Reverse$ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
1
yusian@SianMac2:~/Documents/Reverse$brew install ldid

2.1.3、必须要说的是,第一条命令是安装Homebrew,也许你Mac上早安装过Homebrew了,但也强制建议再执行一次该命令,可将Homebrew升级到最新版本,这里可能会是个坑!!因为XCode10现在废弃了以前的libstd++这个c++库,取而代之的是libc++,如果是XCode10,并且没有升级到最新Homebrew,可能在brew install ldid时报错

2.2、安装dpkg
2.2.1、dpkg是Theos依赖的工具之一,dpkg是Debian Packager的缩写。我们可以使用dpkg来制作deb,Theos开发的插件都将会以deb的格式进行发布的。所以我在安装Theos之前要安装dpkg
2.2.2、安装命令

1
yusian@SianMac2:~/Documents/Reverse$brew install dpkg

2.2.3、这里又要啰嗦一句,如果不安装dpkg,可能后续你一切顺利,在最后关头要将deb打包安装到手机上时报错了,我踩到的坑是这样的: 继续阅读