iOS_逆向(5)_Objective-C相關(guān)的iOS逆向理論基礎(chǔ)

一丶.tweak在Objective-C中的工作方式

tweak指的是對(duì)電子系統(tǒng)進(jìn)行輕微調(diào)整來增強(qiáng)其功能的工具;
在iOS中绞呈,tweak特指那些能夠增強(qiáng)其他進(jìn)程功能的dylib收恢,是越獄iOS的最重要組成部分旦装。

iOS是由一個(gè)個(gè)小的組件構(gòu)成的泥栖,這些組件其實(shí)就是一個(gè)個(gè)對(duì)象,
在Objective-C里幸斥,我們稱對(duì)象的功能為“方法”峭拘,“方法”的具體行為則稱為“實(shí)現(xiàn)”俊庇。
在Objective-C里,方法和實(shí)現(xiàn)的關(guān)系不是在編譯時(shí)決定的鸡挠,而是在運(yùn)行時(shí)決定的辉饱。
“對(duì)象、方法和實(shí)現(xiàn)的關(guān)系拣展,就是tweak大做文章的地方鞋囊。”

二丶tweak的編寫套路

2.1編寫tweak會(huì)用到C瞎惫、C++和Objective-C三種語言
2.2定位目標(biāo)文件

dylib溜腐、bundle或daemon译株,它們?cè)谙到y(tǒng)中的位置幾乎是固定的

2.2.1.1 dylib

基于CydiaSubstrate的dylib全部位于“/Library/MobileSubstrate/DynamicLibraries/”下

2.2.1.2bundle主要分為App和framework兩類

AppStore App全部位于“/var/mobile/Containers/Bundle/Application/”下
Framework全部位于“/System/Library/Frameworks”或“/System/Library/PrivateFrameworks”下

2.2.1.3 daemon的配置文件

“/System/Library/LaunchDaemons/”、
“/Library/Launch-Daemons”或“/Library/LaunchAgents/”下
是一個(gè)plist格式的文件挺益。其中的“ProgramArguments”字段歉糜,即是daemon可執(zhí)行文件的絕對(duì)路徑

2.2.2 Cydia定位

1.通過“dpkg-i”命令安裝的deb包,其內(nèi)容會(huì)被Cydia如實(shí)記錄望众,若要查看匪补,在Cydia的“Installed”項(xiàng)中選擇“Expert”
2.然后選擇目標(biāo)軟件,進(jìn)入“Details”界面
3.之后選擇“Filesystem Content”烂翰,即可瀏覽軟件包里的所有文件

2.2.3 PreferenceBundle

PreferenceBundle是寄生在Settings應(yīng)用里的App夯缺,它的功能界定有些模糊,既可以作為單純的配置文件甘耿,由別的進(jìn)程讀取后執(zhí)行

編寫格式:
Preferences specifier plist : http://iphonedevwiki.net/index.php/Preferences_specifier_plist

2.2.4 grep命令

grep是一個(gè)來自UNIX系統(tǒng)的命令行工具踊兜,能夠搜索文件中是否含有給定的正則表達(dá)式。

格式 grep [options]

主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)佳恬。
-I:不區(qū)分大 小寫(只適用于單字符)捏境。
-h(huán):查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名毁葱。
-n:顯示匹配行及 行號(hào)垫言。
-s:不顯示不存在或無匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行倾剿。
pattern正則表達(dá)式主要參數(shù):
\: 忽略正則表達(dá)式中特殊字符的原有含義筷频。
^:匹配正則表達(dá)式的開始行。
$: 匹配正則表達(dá)式的結(jié)束行前痘。
\<:從匹配正則表達(dá) 式的行開始截驮。
\>:到匹配正則表達(dá)式的行結(jié)束。
[ ]:?jiǎn)蝹€(gè)字符际度,如[A]即A符合要求 葵袭。
[ - ]:范圍,如[A-Z]乖菱,即A坡锡、B、C一直到Z都符合要求 窒所。
鹉勒。:所有的單個(gè)字符。
* :有字符吵取,長(zhǎng)度可以為0禽额。

學(xué)習(xí)地址:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

2.3 定位目標(biāo)函數(shù)

在找到含有目標(biāo)功能的二進(jìn)制文件之后,可以通過class-dump導(dǎo)出頭文件,在里面尋找自己感興趣的函數(shù)脯倒。

2.3.1用OS X 系統(tǒng)自帶
Paste_Image.png
2.3.2用grep命令
2.4 測(cè)試

Objective-C函數(shù)的功能測(cè)試相對(duì)于C/C++函數(shù)來說要簡(jiǎn)單得多实辑,有CydiaSubstrate和Cycript兩種方法可供選擇。

2.4.1ydiaSubstrate
2.4.2Cycript

2.5 解析函數(shù)參數(shù)
2.6 class-dump的局限性

“class-dump提供了可以落腳的小屋藻丢,但要走出這片森林剪撬,還需要一張地圖和一個(gè)指南針——它們就是IDA和LLDB。這兩款工具就像兩座擋在我們面前的大山悠反,絕大多數(shù)逆向工程初學(xué)者都沒能成功翻越它們残黑,爬到半山腰就打道回府了,而翻越大山的人們順利跨過逆向工程的門檻斋否,欣賞到了別樣的風(fēng)景。夢(mèng)想還是要有的茵臭,萬一實(shí)現(xiàn)了呢疫诽?我們鼓起勇氣,試試看能不能征服它們笼恰∮环校”

摘錄來自: 沙梓社 吳航 著. “iOS應(yīng)用逆向工程(第2版)pdf”歇终。 iBooks.

三丶實(shí)例演示

iOS_逆向?qū)嵺`(1)_微信到此一游
http://www.reibang.com/p/b2421b368e2c

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末社证,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子评凝,更是在濱河造成了極大的恐慌追葡,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奕短,死亡現(xiàn)場(chǎng)離奇詭異宜肉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)翎碑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門谬返,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人日杈,你說我怎么就攤上這事遣铝。” “怎么了莉擒?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵酿炸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我涨冀,道長(zhǎng)填硕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任鹿鳖,我火速辦了婚禮扁眯,結(jié)果婚禮上壮莹,老公的妹妹穿的比我還像新娘。我一直安慰自己恋拍,他們只是感情好垛孔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著施敢,像睡著了一般周荐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上僵娃,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天概作,我揣著相機(jī)與錄音,去河邊找鬼默怨。 笑死讯榕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匙睹。 我是一名探鬼主播愚屁,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼痕檬!你這毒婦竟也來了霎槐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤梦谜,失蹤者是張志新(化名)和其女友劉穎丘跌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唁桩,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闭树,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荒澡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片报辱。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖单山,靈堂內(nèi)的尸體忽然破棺而出碍现,到底是詐尸還是另有隱情,我是刑警寧澤饥侵,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布鸵赫,位于F島的核電站,受9級(jí)特大地震影響躏升,放射性物質(zhì)發(fā)生泄漏辩棒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望一睁。 院中可真熱鬧钻弄,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瘤泪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間育八,已是汗流浹背对途。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留髓棋,地道東北人实檀。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像按声,于是被迫代替她去往敵國(guó)和親膳犹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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