逆向工程iOS逆向工程Swift&Objective-C

越狱开发整理文档(一)配置theos环境与第一个Demo

2017-02-15  本文已影响324人  NBeanN

刚开始配置Theos环境的时候各种踩坑,装好了又卸载,各种问题,各种尝试之后总结出了一下的方法,也是收集各方大神的资料综合,做一个记录方便以后自己使用也分享给各位。

1.如果有多个Xcode选择一个Xcode路径,只有一个Xcode可忽略此步骤

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

2.下载Theos

export THEOS=/opt/theos   配置环境变量

sudo git clone git://github.com/DHowett/theos.git $THEOS  下载Theos

注:后面使用可能还需要更新Theos

3.下载ldid

http://joedj.net/ldid 

复制下载的ldid到/opt/theos/bin

sudo chmod 777 /opt/theos/bin/ldid  给ldid赋权限

4.配置CydiaSubstrate

用iFile连上iPhone,将iOS上

/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate

拷贝到电脑上然后改名为libsubstrate.dylib 

拷贝到/opt/theos/lib 中.

5.配置dkpg

sudo port install dpkg

如果是下载的dpkg-deb需要执行 sudo chmod 777 /opt/theos/bin/dpkg-deb  给dpkg-deb赋权限

二、创建Tweak工程

1.cd到某一个自己想要保存的文件夹执行下面语句

/opt/theos/bin/nic.pl

注:这里可能会报错出现Theos过期需要执行git指令,有提示,cd到these文件夹下,然后根据提示输入sudo git submodule update --init --recursive 【命令根据提示粘贴】执行完这句话再回到创建工程/opt/theos/bin/nic.pl步骤

出现下面这个

NIC 2.0 - New Instance Creator

------------------------------

[1.] iphone/activator_event

[2.] iphone/application_modern

[3.] iphone/cydget

[4.] iphone/flipswitch_switch

[5.] iphone/framework

[6.] iphone/ios7_notification_center_widget

[7.] iphone/library

[8.] iphone/notification_center_widget

[9.] iphone/preference_bundle_modern

[10.] iphone/tool

[11.] iphone/tweak

[12.] iphone/xpc_service

Choose a Template (required): 11  【选择你想要构建的工程类型,这里选的Tweak】

Project Name (required): tweak  【工程名】

Package Name [com.yourcompany.tweak]: com.app.tweak 【包名,相当于bundleId】

Author/Maintainer Name [apple2015]: bean 【作者】

[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.apple.spingboard 

[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: SpringBoard

Instantiating iphone/tweak in tweak/...

Done.

工程目录

2.修改Makefile

THEOS_DEVICE_IP = 192.168.1.128 【iP改成自己手机的iP,手机和电脑必须在同一wifi下】

ARCHS = armv7 arm64

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = tweak

tweak_FILES = Tweak.xm  【tweak这里的名字是工程名】

include $(THEOS_MAKE_PATH)/tweak.mk

after-install::

install.exec "killall -9 SpringBoard"

3.修改Tweak.xm

#import <UIKit/UIKit.h>

#import <SpringBoard/SpringBoard.h>

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome"

message:@"First Blood"

delegate:nil

cancelButtonTitle:@"OK"

otherButtonTitles:nil];

[alert show];

%orig;

}

%end

注:这里代码的意思是勾出springboard的初始化方法。

之所以勾springboard是因为它是越狱手机一直在后台运行的东西。

4.配置环境变量

export THEOS=/opt/theos/

export THEOS_DEVICE_IP=192.168.1.128 【手机的ip地址】

注:在之后执行make package install命令中出现了tool.mk notfound 或者xx.mk notfound就需要配置这个东西了。

5.打包安装工程到手机

cd 到有makeFile的文件路径下

make package install 

也可以分解步骤一步一步走

make

make package

make install

注:如果出现错误,一个可能是刚刚第4步提到的错误,还有一个就是第1步提到的错误,进行相应的修改即可

这里还会提示你输入两次密码,如果手机没有设置过密码的话,就是初始的密码:alpine

执行完成你就等着手机重新加载,然后露出你得意的微笑。

三、小总结

1.如果你安装完成之后发现/opt/theos/vendor/这里面是空的,就说明需要执行第二步骤的第1步注意事项;

2.如果你发现make成功之后还想make 发现报了Nothing to be done for `internal-library-compile,那就把你刚才创建出来的obj删掉和packages删掉 , 然后显示隐藏文件, 你就会发现和obj同一个目录有一个.theos , 吧.theos里面的东西删掉就好了

或者最狠的就是重新开始工程,或者make clean

3.有正向经验的小伙伴可以简单理解为makefile相当于plist文件,Tweak.xm相当于要写代码的工程。

四、开启你的逆向之路吧!!!

注:以上提到的文件如需要下载的可以用我的github下载,好用的话给个start吧。

https://github.com/BeanMan/tweakPackage

参考文章:http://blog.csdn.net/app_ios/article/details/52596230

http://www.jianshu.com/p/3c1d71c880ca

站在巨人的肩膀上才有这些总结

菜鸟走向大牛,大家共同前进,如果觉得不错,请给个赞/关注。

一起交流学习,有问题随时欢迎联系,邮箱:383708669@qq.com

上一篇下一篇

猜你喜欢

热点阅读