參考文獻(xiàn):免越獄版 iOS 搶紅包插件
$ otool -L WeChatRedEnvelopesHelper.dylib
WeChatRedEnvelopesHelper.dylib (architecture armv7):
/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelopesHelper.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1450.14.0)
/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1450.14.0)
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.2.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
/System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/CoreLocation.framework/CoreLocation (compatibility version 1.0.0, current version 2237.0.22)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3698.33.6)
WeChatRedEnvelopesHelper.dylib (architecture arm64):
/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelopesHelper.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1450.14.0)
/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1450.14.0)
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.2.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
/System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/CoreLocation.framework/CoreLocation (compatibility version 1.0.0, current version 2237.0.22)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3698.33.6)
可以看到路徑下/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate 并不是有效執(zhí)行文件,因?yàn)檫@是越獄手機(jī)才有的,這時(shí)候應(yīng)該用越獄手機(jī)拷貝出來(lái),然后植入待簽名包中。
- 從越獄手機(jī)拷貝 CydiaSubstrate 到桌面
scp -P 2222 root@localhost:/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate ~/Desktop
重命名CydiaSubstrate 為 libsubstrate.dylib 然后執(zhí)行以下命令修改.dylib中CydiaSubstrate的路徑
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib WeChatRedEnvelopesHelper.dylib
然后cd 到optool文件路徑下(沒(méi)有可以去下載https://github.com/alexzielenski/optool.git
)進(jìn)行注入
./optool install -c load -p "@executable_path/WeChatRedEnvelopesHelper.dylib" -t WeChat.app/WeChat
然后注入成功就可以以下代碼
$ ./optool install -c load -p "@executable_path/WeChatRedEnvelopesHelper.dylib" -t WeChat.app/WeChat
Found FAT Header
Found thin header...
Found thin header...
Inserting a LC_LOAD_DYLIB command for architecture: arm
Successfully inserted a LC_LOAD_DYLIB command for arm
Inserting a LC_LOAD_DYLIB command for architecture: arm64
Successfully inserted a LC_LOAD_DYLIB command for arm64
Writing executable to WeChat.app/WeChat...
最后別忘了將libsubstrate.dylib WeChatRedEnvelopesHelper.dylib 拷貝到WeChat.app目錄下
cp libsubstrate.dylib WeChatRedEnvelopesHelper.dylib WeChat.app
最后就是簽名了。。。。