-
-
[旧帖] [原创]IOS 越狱开发 0.00雪花
-
发表于: 2014-3-10 19:19 1650
-
用theos完成一个简单的越狱程序hook:
参考了以下链接
http://joeyio.com/ios/2014/01/01/make-a-mobile-substrate-tweak-using-theos/
http://wufawei.com/2013/08/iOS-jailbroken-programming-1/
http://wufawei.com/2013/08/iOS-jailbroken-programming-2/
http://wufawei.com/2013/08/iOS-jailbroken-programming-3/
http://wufawei.com/2013/08/iOS-jailbroken-programming-4/
问题处理:
1.安装软件包除了macport ,brew也是个不错的选择,用macport往Lion安装dpkg
比macport更轻量级
http://linfan.info/blog/2012/02/25/homebrew-installation-and-usage/
安装源:
http://brew.sh/
2.make package install时报错遇到的问题:
dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz , giving up
修改 /opt/theos/makefiles/package/deb.mk
- $(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
+ $(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
3.编译弹出对话框时的hook程序报错:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_UIAlertView", referenced from:
objc-class-ref in Tweak.xm.30520078.o
ld: symbol(s) not found for architecture armv7
修改Makefile,增加如下条目解决:
XXX_FRAMEWORKS = UIKit
4.在Xcode 4.5环境下 编译两种hook程序成功,其中遇到一些问题基本可以解决,ios6版本上均正常显示,在ios7中未能显示
在Xcode5.0.2环境下,编译两种hook程序失败
5.关于lipo的介绍:
ios开发中使用lipo用来合并模拟器和真机通用静态库
通常在项目中静态库都有两个版本,一个用于模拟器,一个用于真机,mac和iphone的CPU不同造成的
为了方便模拟器和真机间切换调试方便,制作通用版非常有必要
现在有两个版本的静态库libSQLite_i386.a(模拟器)与libSQLite_arm.a(真机)
执行:lipo -create libSQLite_i386.a libSQLite_arm.a -output libSQLite.a
我们可以lipo -info libSQLite.a命令,查看是否是通用的
6.关于在ios7及arm64上跑hook程序,跟进中···
跟进链接在ios7上编译没有问题,但是在真机上不起效果
http://iphonedevwiki.net/index.php/Updating_extensions_for_iOS_7
Xcode5还不支持工具链···,所以还要在Xcode4上搞···
参考了以下链接
http://joeyio.com/ios/2014/01/01/make-a-mobile-substrate-tweak-using-theos/
http://wufawei.com/2013/08/iOS-jailbroken-programming-1/
http://wufawei.com/2013/08/iOS-jailbroken-programming-2/
http://wufawei.com/2013/08/iOS-jailbroken-programming-3/
http://wufawei.com/2013/08/iOS-jailbroken-programming-4/
问题处理:
1.安装软件包除了macport ,brew也是个不错的选择,用macport往Lion安装dpkg
比macport更轻量级
http://linfan.info/blog/2012/02/25/homebrew-installation-and-usage/
安装源:
http://brew.sh/
2.make package install时报错遇到的问题:
dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz , giving up
修改 /opt/theos/makefiles/package/deb.mk
- $(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
+ $(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
3.编译弹出对话框时的hook程序报错:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_UIAlertView", referenced from:
objc-class-ref in Tweak.xm.30520078.o
ld: symbol(s) not found for architecture armv7
修改Makefile,增加如下条目解决:
XXX_FRAMEWORKS = UIKit
4.在Xcode 4.5环境下 编译两种hook程序成功,其中遇到一些问题基本可以解决,ios6版本上均正常显示,在ios7中未能显示
在Xcode5.0.2环境下,编译两种hook程序失败
5.关于lipo的介绍:
ios开发中使用lipo用来合并模拟器和真机通用静态库
通常在项目中静态库都有两个版本,一个用于模拟器,一个用于真机,mac和iphone的CPU不同造成的
为了方便模拟器和真机间切换调试方便,制作通用版非常有必要
现在有两个版本的静态库libSQLite_i386.a(模拟器)与libSQLite_arm.a(真机)
执行:lipo -create libSQLite_i386.a libSQLite_arm.a -output libSQLite.a
我们可以lipo -info libSQLite.a命令,查看是否是通用的
6.关于在ios7及arm64上跑hook程序,跟进中···
跟进链接在ios7上编译没有问题,但是在真机上不起效果
http://iphonedevwiki.net/index.php/Updating_extensions_for_iOS_7
Xcode5还不支持工具链···,所以还要在Xcode4上搞···
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: