iOS逆向與安全-1.初識(shí)逆向工程

開(kāi)發(fā)的時(shí)候:

1.明確需求予跌、設(shè)計(jì)稿、交互稿
2.根據(jù)需求善茎、設(shè)計(jì)稿券册、交互稿編寫(xiě)出我們想要的應(yīng)用

逆向開(kāi)發(fā):

拿到目標(biāo)應(yīng)用去分析界面組成結(jié)構(gòu)、代碼邏輯、程序的執(zhí)行流程來(lái)了解內(nèi)部的原理烁焙。(從現(xiàn)有產(chǎn)品推導(dǎo)技術(shù)實(shí)現(xiàn)細(xì)節(jié)的過(guò)程)航邢。

在我們打開(kāi)應(yīng)用的時(shí)候可以看到不同的界面和不同的功能,如果我們想要了解某個(gè)功能骄蝇。比如過(guò)網(wǎng)易云音樂(lè)的聲音識(shí)別功能膳殷,那么我們就要用到逆向工程。在逆向工程中九火,首先我們要通過(guò)工具分析赚窃,對(duì)應(yīng)用的界面結(jié)構(gòu)、網(wǎng)絡(luò)請(qǐng)求岔激、文件操作等各個(gè)方面入手勒极,來(lái)尋找線(xiàn)索分析出我們想要的東西。這樣我們就會(huì)得到軟件界面的組成結(jié)構(gòu)虑鼎,可以進(jìn)一步通過(guò)某個(gè)按鈕去獲取響應(yīng)事件函數(shù)辱匿。這個(gè)時(shí)候,我們就要用到靜態(tài)分析炫彩,通過(guò)靜態(tài)分析我們可以針對(duì)某個(gè)響應(yīng)事件函數(shù)匾七,去分析它程序內(nèi)部功能具體實(shí)現(xiàn),調(diào)用了哪些函數(shù)江兢,執(zhí)行流程是怎么樣的昨忆。那么,我們通過(guò)對(duì)不同函數(shù)的分析可以得到應(yīng)用代碼的框架構(gòu)成划址。

通過(guò)靜態(tài)分析扔嵌,我們只能得到應(yīng)用里有哪些函數(shù),函數(shù)里面又執(zhí)行哪些代碼夺颤。但是痢缎,我們想要分析程序運(yùn)行的時(shí)候的代碼執(zhí)行流程以及參數(shù)的傳遞,那么這個(gè)時(shí)候我們就要用到動(dòng)態(tài)分析世澜。通過(guò)動(dòng)態(tài)分析独旷,我們可以對(duì)目標(biāo)程序進(jìn)行debug打印出它的參數(shù)寥裂,以及一步步調(diào)試他的執(zhí)行流程等等嵌洼。

(從現(xiàn)有產(chǎn)品推導(dǎo)技術(shù)實(shí)現(xiàn)細(xì)節(jié)的過(guò)程)

那么,通過(guò)上面的分析之后封恰,我們對(duì)程序的界面麻养、程序的具體流程有了一定的了解,那么這個(gè)時(shí)候诺舔,我們就可以根據(jù)目標(biāo)程序的功能來(lái)實(shí)現(xiàn)我們自己的一些功能和增強(qiáng)它的一些功能鳖昌,這就是逆向工程的魅力所在备畦。

逆向工程用用平臺(tái)與層次

windows
OllyDbgWindbg進(jìn)行動(dòng)態(tài)調(diào)試、 IDA進(jìn)行靜態(tài)分析

安卓
通過(guò)ApkTool \ dex2jar 對(duì)apk文件反編譯成dex文件许昨、資源文件對(duì)dex文件轉(zhuǎn)成jar文件懂盐,讓后進(jìn)一步得到jave偽代碼這樣就可以分析出安卓文件的實(shí)現(xiàn)原理實(shí)現(xiàn)邏輯

iOS
通過(guò)class-dump得到糕档,目標(biāo)程序的所有類(lèi)和類(lèi)里面的方法莉恼。通過(guò)Reveal可以得到目標(biāo)程序的界面層次和界面的構(gòu)成,我們還可以通過(guò)其它工具來(lái)動(dòng)態(tài)調(diào)試速那、跟蹤目標(biāo)程序俐银,得到我們想要的結(jié)果。

層次:

內(nèi)核驅(qū)動(dòng)層琅坡、硬件層
分析可以得到底層的具體實(shí)現(xiàn)實(shí)現(xiàn)原理悉患。

設(shè)備框架層
framework里面的具體代碼邏輯,或者說(shuō)我們想要了解我們調(diào)用了某個(gè)api函數(shù)后榆俺,底層實(shí)現(xiàn)了哪些操作

應(yīng)用層
我們可以對(duì)別人的應(yīng)用進(jìn)行分析,(界面組成結(jié)構(gòu)坞淮、某個(gè)功能茴晋、攔截它的數(shù)據(jù)等)

iOS逆向工程的作用

iOS逆向工程需要的基礎(chǔ)

相關(guān)工具

通過(guò)Reveal可以得到界面結(jié)構(gòu)、界面層次以及界面構(gòu)成回窘。打印界面結(jié)構(gòu)诺擅,通過(guò)界面結(jié)構(gòu),我們可以得到某個(gè)控件的對(duì)象進(jìn)而得倒control對(duì)象啡直,讓后對(duì)control進(jìn)行跟蹤調(diào)試分析得到具體的執(zhí)行函數(shù)烁涌。

通過(guò)snoop-it,得到一個(gè)類(lèi)里面的所有方法酒觅,然后手動(dòng)去調(diào)用它的方法撮执,還可以得到它的文件操作、keychine操作舷丹、網(wǎng)絡(luò)操作以及一些加密函數(shù)操作等等這樣就可以根據(jù)不同層次對(duì)應(yīng)用進(jìn)行分析抒钱。

通過(guò)Hopper,可以把二進(jìn)制的代碼翻譯成匯編代碼颜凯,通過(guò)匯編代碼進(jìn)行分析谋币,可以知道函數(shù)內(nèi)部調(diào)用了哪些函數(shù)以及這些函數(shù)的名稱(chēng)是什么症概。

通過(guò)IDA進(jìn)行分析蕾额,同樣這兩款工具可以轉(zhuǎn)成成高級(jí)語(yǔ)言的偽代碼,通過(guò)偽代碼為們可以很清楚的知道一個(gè)函數(shù)的內(nèi)部調(diào)用可哪些函數(shù)以及它的參數(shù)是什么彼城。

調(diào)試跟蹤

使用lldb附加到手機(jī)上的應(yīng)用诅蝶,讓程序去斷下來(lái)逼友,在我們想要設(shè)置斷點(diǎn)的地方設(shè)置一個(gè)斷點(diǎn),讓程序繼續(xù)運(yùn)行秤涩。當(dāng)程序運(yùn)行到我們的斷點(diǎn)的時(shí)候帜乞,就會(huì)自動(dòng)斷下來(lái),這個(gè)時(shí)候我們就可以打印程序的參數(shù)筐眷,以及在某個(gè)跳轉(zhuǎn)的地方黎烈,判斷程序的執(zhí)行方向執(zhí)行流程和執(zhí)行邏輯等匀谣。

除了調(diào)試工具照棋,還有其它工具,對(duì)程序的運(yùn)行進(jìn)行動(dòng)態(tài)的跟蹤武翎,打印內(nèi)部函數(shù)的調(diào)用方法以及參數(shù)烈炭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宝恶,隨后出現(xiàn)的幾起案子符隙,更是在濱河造成了極大的恐慌,老刑警劉巖垫毙,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霹疫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡综芥,警方通過(guò)查閱死者的電腦和手機(jī)丽蝎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)膀藐,“玉大人屠阻,你說(shuō)我怎么就攤上這事《罡鳎” “怎么了国觉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)臊泰。 經(jīng)常有香客問(wèn)我蛉加,道長(zhǎng),這世上最難降的妖魔是什么缸逃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任针饥,我火速辦了婚禮,結(jié)果婚禮上需频,老公的妹妹穿的比我還像新娘丁眼。我一直安慰自己,他們只是感情好昭殉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布苞七。 她就那樣靜靜地躺著藐守,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹂风。 梳的紋絲不亂的頭發(fā)上卢厂,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音惠啄,去河邊找鬼慎恒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撵渡,可吹牛的內(nèi)容都是我干的融柬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趋距,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粒氧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起节腐,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤外盯,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后铜跑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體门怪,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年锅纺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肋殴。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡囤锉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出护锤,到底是詐尸還是另有隱情官地,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布烙懦,位于F島的核電站驱入,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏氯析。R本人自食惡果不足惜亏较,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掩缓。 院中可真熱鬧雪情,春花似錦、人聲如沸你辣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至宴凉,卻和暖如春誊锭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弥锄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工丧靡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叉讥。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓窘行,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親图仓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罐盔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,076評(píng)論 25 707
  • 有一個(gè)人特別不會(huì)說(shuō)話(huà)惶看,一張嘴就噎死人,屬于那種開(kāi)口就把天聊死的那種六孵。只要他一開(kāi)口纬黎,對(duì)方就會(huì)氣的半死。于是劫窒,村里人都...
    博琳達(dá)閱讀 7,058評(píng)論 0 0
  • 我曾短暫喜歡過(guò)一個(gè)人本今,短到不及我生命的六分之一,短到我還沒(méi)有意識(shí)到她已經(jīng)悄然離開(kāi)主巍」谙ⅲ總之,歲月綿長(zhǎng)孕索,謝謝你在我的生命...
    E圭韋閱讀 187評(píng)論 0 0
  • 最近幾天逛艰,被陜西榆林產(chǎn)婦跳樓自殺的事件刷屏了……醫(yī)院和其丈夫各執(zhí)一詞,網(wǎng)上輿論一千搞旭,但是我是一個(gè)俗人散怖,一個(gè)女人,一...
    掌中痧閱讀 178評(píng)論 0 0
  • 青鋼影·卡蜜爾是英雄聯(lián)盟第134位英雄偏灿。 一位優(yōu)雅的特工精英,一臺(tái)精密的人形兵器钝的,游走于法律已然失效的邊緣地帶翁垂,小...
    未陌生過(guò)閱讀 862評(píng)論 0 5