iOS逆向工程工具之Theos

昨天開始安裝theos,網(wǎng)上資料好多吏口,不知是好還是不好统台,開始根據(jù)【ios應用逆向工程的書】安裝雕擂,發(fā)現(xiàn)已經(jīng)過時。贱勃。然后各種百度井赌,遇到很多坑谤逼,都不知從何說起~

先將參考鏈接附到下面供參考:

http://blog.csdn.net/woaizijiheni/article/details/49332851
http://www.cnblogs.com/ludashi/p/5714095.html
https://my.oschina.net/iq19900204/blog/618713

一、下面分享下環(huán)境搭建過程:

1仇穗、給xcode安裝 command line tools

https://developer.apple.com/downloads/?=Command%20Line%20Tools%20

2流部、安裝dpkg、ldid

sudo brew install dpkg ldid

有些推薦用macports安裝dpkg,我安裝了macports纹坐,發(fā)現(xiàn)安裝過程比較復雜枝冀,坑比較多,不是很推薦耘子。

3果漾、下載libsubstrate.dylib 拷貝到 /opt/theos/lib

https://github.com/kokoabim/iOSOpenDev/blob/master/lib/libsubstrate.dylib

4、Theos安裝

 git clone --recursive https://github.com/theos/theos.git

下載好Theos后谷誓,要修改一下文件的權限绒障,如下命令

sudo chown $(id -u):$(id -g) theos

至此,Theos安裝完畢捍歪,就可以開啟你的Theos之旅了户辱。(希望你也如此)

二、使用Theos創(chuàng)建糙臼、編譯焕妙、安裝使用工具

上面我們搭建好Theos的環(huán)境后,接下來就開始使用我們的Theos來做些事情了弓摘。接下來我們將要使用Theos來創(chuàng)建一個使用工具焚鹊,并進行編譯,編譯后安裝到我們的越獄手機上韧献。接下來來看一下這一系列的步驟

1.配置$THEOS

export THEOS=theos文件所在路徑

例如:

export THEOS=/opt/theos

2.新建工程

用終端cd到你工程文件夾下末患,

$THEOS/bin/nic.pl

有12個模版,我們直接建tweak锤窑,選11璧针,之后按照提示填寫就好,??盡量不要用字母和+-號之外的符號渊啰,否則后面編譯有可能報錯探橱。

3、編譯打包前的準備工作

export SDKVERSION=9.3
export THEOS_DEVICE_IP=ios_device_ip

接著我們要做一些編譯打包前的準備工作绘证,SDKVERSION是編譯工程時所使用的SDK隧膏,因為本機Xcode中是9.3的SDK,所以我們知道的SDKVERSION是9.3嚷那。指定完編譯所需的SDK后胞枕,我們需要指定打包后的文件所安裝設備的IP地址,使用THEOS_DEVICE_IP來指定魏宽。下方的IP地址是一個越獄手機的IP地址腐泻。
我感覺直接寫到Makefile文件中也是可以的决乎。
在指定這個設備IP之前,你要保證你的越獄設備安裝了OpenSSH派桩,并且可以在Mac的終端上進行ssh登錄构诚。
mac連接iphone,在終端輸入

ssh root@192.168.30.xx

之后讓輸入密碼,密碼默認alpine,可以連接就ok.

2.創(chuàng)建成功后铆惑,在工程目錄下范嘱,修改MakeFile 修改添加頭部

THEOS_DEVICE_IP=192.168.30.xx
ARCHS = armv7 arm64
TARGET = iphone:latest:8.0
THEOS_DEVICE_IP = 192.168.30.xx

3.編寫TWeak.xm文件代碼

%hook SBLockScreenDateViewController //需要hook的頭文件,以%end結尾,以下方法就是我們要掛鉤子的方法

- (void)setCustomSubtitleText:(id)arg1 withColor:(id)arg2{
//%orig;執(zhí)行該方法原始代碼,如果去掉就執(zhí)行了.還可以修改原始參數(shù);
%orig(@"iOS 8 App Reverse Engineering", arg2);
NSLog(@"askMe:reboot springBoard");
}
%end

%hook SpringBoard

- (void)applicationDidFinishLaunching:(id)application{
%orig;
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"HelloWorld!" delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil];
[alert show];
[alert release];
NSLog(@"askMe:CheckID starting!");
}
%end

4.進行編譯

make

5.進行打包

make package

編譯完成后,我們要講項目進行打包鸭津,這樣我們的越獄設備才能進行安裝彤侍。下方是調(diào)用make package命令進行項目的打包肠缨。打包后會生成后綴名為deb的安裝包逆趋。

$6.安裝

make install

手機重啟之后,是不是多了一個alertView,鎖屏界面的日期是不是變成了"iOS 8 App Reverse Engineering"

坑一:

一般情況下會安裝失敗 ,錯誤是:


error1.png

解決的辦法是:

https://github.com/moloch--/theos/blob/master/makefiles/package/deb.mk

下載下來替換到目錄

/opt/theos/makefiles/package/

坑二:

如果報以下錯誤

error2.png

下載dm.pl文件

https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pl

然后重命名為dpkg-deb.pl,放到目錄下面

/opt/theos/bin/

坑三:

如果還是報錯:

error3.png

參考

http://stackoverflow.com/questions/21013325/dpkg-error-contains-ununderstood-data-member

我雖然沒找到一模一樣的那行晒奕,但是我把
$(ECHO_NOTHING)COPYFILE_DISABLE...這行直接換成

$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)

就好了闻书。

坑四:

記得還報了一個錯,

Obsolete compression type ‘lzma’; use xz instead

解決辦法:
修改

opt/theos/makefiles/package/deb.mk
第六行:THEOSPLATFORM_DPKG_DEB_COMPRESSION ?= lzma
把最后lzma 改成 xz 就可以了

但是如果坑一填了(deb.mk都換了)好像就解決這個問題了脑慧。

ps.......關于輸入密碼太麻煩一事請移駕

http://www.reibang.com/writer#/notebooks/7512122/notes/7503499

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魄眉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闷袒,更是在濱河造成了極大的恐慌坑律,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囊骤,死亡現(xiàn)場離奇詭異晃择,居然都是意外死亡,警方通過查閱死者的電腦和手機也物,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門宫屠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滑蚯,你說我怎么就攤上這事浪蹂。” “怎么了告材?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵坤次,是天一觀的道長。 經(jīng)常有香客問我斥赋,道長浙踢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任灿渴,我火速辦了婚禮洛波,結果婚禮上胰舆,老公的妹妹穿的比我還像新娘。我一直安慰自己蹬挤,他們只是感情好缚窿,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著焰扳,像睡著了一般倦零。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吨悍,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天扫茅,我揣著相機與錄音,去河邊找鬼育瓜。 笑死葫隙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的躏仇。 我是一名探鬼主播恋脚,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焰手!你這毒婦竟也來了糟描?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤书妻,失蹤者是張志新(化名)和其女友劉穎船响,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躲履,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡见间,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了崇呵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缤剧。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖域慷,靈堂內(nèi)的尸體忽然破棺而出荒辕,到底是詐尸還是另有隱情,我是刑警寧澤犹褒,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布抵窒,位于F島的核電站,受9級特大地震影響叠骑,放射性物質(zhì)發(fā)生泄漏李皇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掉房。 院中可真熱鬧茧跋,春花似錦、人聲如沸卓囚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哪亿。三九已至粥烁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝇棉,已是汗流浹背讨阻。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留篡殷,地道東北人钝吮。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像贴唇,于是被迫代替她去往敵國和親搀绣。 傳聞我的和親對象是個殘疾皇子飞袋,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一戳气、介紹及安裝 1.簡介 Theos是一個越獄開發(fā)包。與其它工具相比巧鸭,它的特點就是簡單:下載安裝簡單瓶您、Logos語...
    華南虎閱讀 10,840評論 5 52
  • 主要學習資料:《iOS應用逆向工程(第二版)》 class-dump下載地址:http://stevenygard...
    夜間尋路人閱讀 941評論 0 0
  • 建立tweak工程,最重要的就是配置theos纲仍。 這里插一段話呀袱,上一章講了從無到用usbmuxd連接越獄手機,網(wǎng)上...
    pro_cookies閱讀 5,633評論 8 6
  • 如果你對iOS逆向工程有所了解郑叠,那么你對Tweak并不陌生夜赵。那么由Tweak我們又會引出Theos, 那么什么是T...
    Macanzy閱讀 4,987評論 14 10
  • 可不可以把問號拿開, 我的真心不容疑猜乡革; 你若還相信真愛寇僧, 請多給我一點青睞。 可不可以把思戀郵差沸版, 你走之后的后...
    混是魔王閱讀 502評論 0 3