iOS逆向工程:OSX工具集的安裝配置(二)

iOS逆向工程:OSX工具集的安裝配置(一)中是關于class-dump和Theos的安裝配置,這篇文章介紹 Reveal, IDA, dyld_decache的安裝配置.

一.Reveal

Reveal: 由 ITTY BITTY 出品的UI分析工具,可以直觀地查看App的UI布局.
破解地址
下載安裝完成之后,還需要在終端輸入,再打開軟件即可

$ sudo spctl --master-disable

要查看別人App的布局,還需要做以下配置:
1.安裝RevealLoader
在Cydia中搜索并安裝RevealLoader,然后查看iOS上的"/Library/"目錄下有沒有一個名為"RHRevealLoader"的文件夾,如果沒有,則需要手動創建.

root# mkdir /Library/RHRevealLoader

2.使用Cydia安裝兩個軟件:OpenSSHCydiaSubstrate
(1)SSH是一種可以保證用戶加密遠程登錄到系統的協議,OpenSSH是一個通過SSH接入iOS的連接傳輸工具。
如果在安裝OpenSSH后沒有修改密碼,則默認密碼為alphine,為了降低信息泄露的風險還是重設密碼保險.

查看IP地址的途徑,如下圖第一個就是IP地址

查看IP地址

iOS上的用戶有2個,分別是root和mobile,修改密碼命令如下:

ssh root@iOS設備IP地址
root# passwd root
Changing password for root.
New password:
Retype new password:
root# passwd mobile
Changing password for mobile.
New password:
Retype new password:

(2)CydiaSubstrate是大部分tweak正常工作的基礎,只有安裝了CydiaSubstrate之后才會有MobileSubstrate目錄(此目錄必須存在才可以繼續下面的步驟)。
MobileSubstrate是一個公共庫,可以用來動態替換內存中的代碼、數據等。基本上越獄機下比較有用的系統工具都需要這個庫,是Cydia同一個作者維護的,可以放心裝。
3.打開mac上的Reveal,在標題欄"Help"選項下,選擇"Show Reveal Library in Finder"子選項.然后把libReveal.dylib通過scp或者iFunBox等方式拷貝到剛才創建的RHRevealLoader目錄下.

使用scp命令的步驟如下:
ssh root@iOS設備IP地址(回車輸入yes,然后輸入密碼)
cd /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries
scp libReveal.dylib root@iOS設備IP地址:/Library/MobileSubstrate/DynamicLibraries/

4.將Mac上創建libReveal.plist文件,通過iFunBox拷貝到Library/MobileSubstrate/DynamicLibraries中。格式如下:

libReveal.plist

5.保證設備和Mac在同一局域網(Wi-Fi)內,也就是都選擇同一個Wi-Fi,不必設置http代理,如果App已經運行,需在后臺殺死進程重新打開,保持App在前臺運行,然后在Mac中打開Reveal即可.

二.Hopper

破解地址
按照操作步驟進行破解

三.dyld_decache

dyld_decache:提取iOS系統內的二進制文件
從iOS 3.1開始,包括frameworks在內的許多庫文件被放入了位于/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armx(dyld_shared_cache_armv7,dyld_shared_cache_armv7s,dyld_shared_cache_arm64),可使用dyld_decache將其中的二進制文件提取出來.

1.用iFunBox(不能用scp)從iOS中拷貝dyld_deache到OSX中,查找路徑如下:

System/Library/Caches/com.apple.dyld/dyld_shared_cache_armx

2.下載提取工具dyld_decache

https://github.com/downloads/kennytm/Miscellaneous/dyld_decache[v0.1c].bz2

解壓之后可將dyld_decache[v0.1c] 重命名為dyld_decache

3.賦予其執行權限

chmod +x dyld_decache(后面加上dyld_decache具體路徑)

4.開始提取二進制文件(dyld_decache路徑/二進制提取之后存放路徑/armx路徑)

/Users/yuhan/Documents/appReverse/dyld_decache -o /Users/yuhan/Documents/appReverse/binarys /Users/yuhan/Documents/appReverse/dyld_shared_cache_armv7s 

四.dumpdecrypted砸殼工具

由于從AppStore下載的App是被蘋果加密過的,class-dump無法作用于加密過的App,所以想要獲取頭文件,需要先解密App的可執行文件,俗稱"砸殼",dumpdecrypted就是一款砸殼工具.
1.下載dump decrypted源碼 依次執行下面的命令

1)cd本地存儲路徑
2)git clone git://github.com/stefanesser/dumpdecrypted/
3)下載完成后 cd dumpdecrypted的路徑 
4)make
  make命令執行完畢,會在當前目錄生成dumpdecrypted.dylib文件,用于砸殼

2.關閉所有應用 開啟需要砸殼的App

bogon:~ yuhan$ ssh root@iOSIP地址
ximengde-iPhone:~ root# ps -e(打印所有進程,找到目標app)
cycript -p TargetApp // 附加該進程 
(執行此命令之前要保證Cydia中安裝了Cycript,否則會出現-sh: cycript: command not found)
cy# [[NSFileManager defaultManager ] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]
利用cy語言找到目標app的沙盒路徑
control+d退出cy#

3.開始砸殼

將dumpdecrypted.dylib拷貝到Documents目錄下
bogon:~ yuhan$ scp /Users/yuhan/Documents/appReverse/dumpdecrypted/dumpdecrypted.dylib root@iOSIP:/var/mobile/Containers/Data/Application/3E9A4A3E-0191-48EA-BA15-D135D892C505/Documents/

ximengde-iPhone:/var/root mobile$ su mobile(為了避免在執行砸殼命令時出現killed:9的錯誤)
Password:
ximengde-iPhone:/var/root mobile$ cd
ximengde-iPhone:~ mobile$ cd /var/mobile/Containers/Data/Application/3E9A4A3E-0191-48EA-BA15-D135D892C505/Documents/                                                     
ximengde-iPhone:~/Containers/Data/Application/3E9A4A3E-0191-48EA-BA15-D135D892C505/Documents mobile$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/0E619483-4AC3-430E-AADB-AD2B164FF1B3/Eyepetizer.app/Eyepetizer

4.查看砸殼結果

mach-o decryption dumper

DISCLAIMER: This tool is only meant for security research purposes, not for application crackers.

[+] detected 64bit ARM binary in memory.
[+] offset to cryptid found: @0x1000ccca8(from 0x1000cc000) = ca8
[+] Found encrypted data at address 00004000 of length 16744448 bytes - type 1.
[+] Opening /private/var/containers/Bundle/Application/0E619483-4AC3-430E-AADB-AD2B164FF1B3/Eyepetizer.app/Eyepetizer for reading.
[+] Reading header
[+] Detecting header type
[+] Executable is a plain MACH-O image
[+] Opening Eyepetizer.decrypted for writing.
[+] Copying the not encrypted start of the file
[+] Dumping the decrypted data into the file
[+] Copying the not encrypted remainder of the file
[+] Setting the LC_ENCRYPTION_INFO->cryptid to 0 at offset ca8
[+] Closing original file
[+] Closing dump file
ximengde-iPhone:~/Containers/Data/Application/3E9A4A3E-0191-48EA-BA15-D135D892C505/Documents mobile$ ls
5d441558f8bc24dcd9098fc926ca73d0  BNCServerRequestQueue  Eyepetizer.decrypted  WDJUsers.plist          com.tumblr.TMDiskCache.26d0363b2698b43f37da588e8c0e0119
76a378e14109fdcebb0f4c40f0464293  Config         QQApi.log         backgroundresource.dat  dumpdecrypted.dylib
BNCPreferences            Configcmsinfo.plist    TCSdkConfig.plist     clicked_msgIds???file   wdj_eyepetizer.sqlite

Eyepetizer.decrypted就是砸殼后我們需要的文件

5.將文件拷貝到電腦中

bogon:~ yuhan$ scp root@iOSIP:/var/mobile/Containers/Data/Application/3E9A4A3E-0191-48EA-BA15-D135D892C505/Documents/Eyepetizer.decrypted /Users/yuhan/Documents/appReverse/code 
root@iOSIP's password: 
Eyepetizer.decrypted                          100%   20MB   3.9MB/s   00:05    

把文件拷貝到OSX 用class-dump Hopper分析文件

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,048評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,414評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,169評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,722評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,465評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,823評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,813評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,000評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,554評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,295評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,513評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,722評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,125評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,430評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,237評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,482評論 2 379

推薦閱讀更多精彩內容