逆向APP的思路

一屎慢、APP從開發(fā)到安裝到手機(jī)的過程

屏幕快照 2018-11-18 下午11.16.43.png

屏幕快照 2018-11-18 下午11.18.10.png

二、逆向APP的思路

  • 界面分析
    Cycript、Reveal

  • 代碼分析
    對(duì)Mach-O文件的靜態(tài)分析
    MachOView棕诵、class-dump、Hopper Disassembler凿将、ida等

  • 動(dòng)態(tài)調(diào)試
    對(duì)運(yùn)行中的APP進(jìn)行代碼調(diào)試
    debugserver校套、LLDB

  • 代碼編寫
    注入代碼到APP中
    必要時(shí)還可能需要重新簽名、打包ipa

三牧抵、class-dump

  • 顧名思義笛匙,它的作用就是把Mach-O文件的class信息給dump出來(把類信息給導(dǎo)出來),生成對(duì)應(yīng)的.h頭文件

  • 官方地址:http://stevenygard.com/projects/class-dump/

  • 下載完工具包后將class-dump文件復(fù)制到Mac的/usr/local/bin目錄膳算,這樣在終端就能識(shí)別class-dump命令了

  • 常用格式
    class-dump -H Mach-O文件路徑 -o 頭文件存放目錄
    -H表示要生成頭文件
    -o用于制定頭文件的存放目錄

四、代碼的編譯過程

屏幕快照 2018-11-18 下午11.28.38.png

不同的OC代碼弛作,編譯出來的匯編代碼可能是一樣的


屏幕快照 2018-11-18 下午11.30.03.png

五、Hopper Disassmbler

Hopper Disassmbler能夠?qū)ach-O文件的機(jī)器語言代碼反編譯成匯編代碼映琳、OC偽代碼或者Swift偽代碼

常用快捷鍵
Shift + Option + X
找出哪里引用了這個(gè)方法

六、動(dòng)態(tài)庫(kù)共享緩存(dyld shared cache)

從iOS3.1開始萨西,為了提高性能,絕大部分的系統(tǒng)動(dòng)態(tài)庫(kù)文件都打包存放到了一個(gè)緩存文件中(dyld shared cache)

緩存文件路徑:/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armX

dyld_shared_cache_armX的X代表ARM處理器指令集架構(gòu)

  • v6
    iPhone谎脯、iPhone3G
    iPod Touch、iPod Touch2

  • v7
    iPhone3GS源梭、iPhone4娱俺、iPhone4S
    iPad、iPad2废麻、iPad3(The New iPad)
    iPad mini
    iPod Touch3G、iPod Touch4烛愧、iPod Touch5

  • v7s
    iPhone5油宜、iPhone5C
    iPad4

  • arm64
    iPhone5S掂碱、iPhone6、iPhone6 Plus慎冤、iPhone6S疼燥、iPhone6S Plus
    iPhoneSE、iPhone7蚁堤、iPhone7 Plus醉者、iPhone8、iPhone8 Plus违寿、iPhoneX
    iPad5湃交、iPad Air、iPad Air2藤巢、iPad Pro搞莺、iPad Pro2
    iPad mini with Retina display、iPad mini3掂咒、iPad mini4
    iPod Touch6

所有指令集原則上都是向下兼容的

動(dòng)態(tài)庫(kù)共享緩存一個(gè)非常明顯的好處是節(jié)省內(nèi)存

現(xiàn)在的ida才沧、Hopper反編譯工具都可以識(shí)別動(dòng)態(tài)庫(kù)共享緩存

七、動(dòng)態(tài)庫(kù)的加載

在Mac\iOS中绍刮,是使用了/usr/lib/dyld程序來加載動(dòng)態(tài)庫(kù)

  • dyld
    dynamic link editor温圆,動(dòng)態(tài)鏈接編輯器
    dynamic loader,動(dòng)態(tài)加載器

dyld源碼
https://opensource.apple.com/tarballs/dyld/

可以使用dyld源碼中的launch-cache/dsc_extractor.cpp
將#if 0前面的代碼刪除(包括#if 0)孩革,把最后面的#endif也刪掉

編譯dsc_extractor.cpp
clang++ -o dsc_extractor dsc_extractor.cpp

使用dsc_extractor
./dsc_extractor 動(dòng)態(tài)庫(kù)共享緩存文件的路徑 用于存放抽取結(jié)果的文件夾


圖片 1.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岁歉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子膝蜈,更是在濱河造成了極大的恐慌锅移,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饱搏,死亡現(xiàn)場(chǎng)離奇詭異非剃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)推沸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門备绽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鬓催,你說我怎么就攤上這事肺素。” “怎么了深浮?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵宝穗,是天一觀的道長(zhǎng)警绩。 經(jīng)常有香客問我,道長(zhǎng)收夸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任布卡,我火速辦了婚禮雨让,結(jié)果婚禮上栖忠,老公的妹妹穿的比我還像新娘。我一直安慰自己庵寞,他們只是感情好薛匪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布逸尖。 她就那樣靜靜地躺著,像睡著了一般岩齿。 火紅的嫁衣襯著肌膚如雪苞俘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天乞封,我揣著相機(jī)與錄音基协,去河邊找鬼。 笑死陷揪,一個(gè)胖子當(dāng)著我的面吹牛杂穷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播飞蚓,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼趴拧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼溅漾!你這毒婦竟也來了添履?” 一聲冷哼從身側(cè)響起脑又,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤问麸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后严卖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺亮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年脚曾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了启具。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拷沸,死狀恐怖撞芍,靈堂內(nèi)的尸體忽然破棺而出跨扮,到底是詐尸還是另有隱情,我是刑警寧澤衡创,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布璃氢,位于F島的核電站,受9級(jí)特大地震影響一也,放射性物質(zhì)發(fā)生泄漏喉脖。R本人自食惡果不足惜动看,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一爪幻、第九天 我趴在偏房一處隱蔽的房頂上張望须误。 院中可真熱鬧,春花似錦奶甘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽携茂。三九已至,卻和暖如春讳苦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背膝藕。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工咐扭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人览绿。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓穗慕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親怀各。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倔韭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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