iOS逆向工程(12)免越獄集成Reveal和Flex到任意APP

背景

  • Reveal 和 FLEX 都是非常強(qiáng)大的利器憎瘸。
  • Reveal 可以查看APP的視圖入篮,層次,動態(tài)修改空間位置等幌甘,是一款非常強(qiáng)大的界面調(diào)試工具利器潮售。
  • FLEX 是應(yīng)用內(nèi)部調(diào)試工具,包括動態(tài)查看類锅风,庫酥诽,沙盒,動態(tài)修改UI皱埠,等一款非常強(qiáng)大的分析利器肮帐。
  • 此篇文章是介紹了如何將這兩款工具,在非越獄機(jī)上边器,集成這兩款強(qiáng)大利器训枢。

先演示下效果(抖音APP示例)

快速集成 - 步驟

  1. brew install ldid
  2. 通過腳本安裝Theos:https://github.com/bigsen/Theos-Script
  3. 安裝 MonkeyDev
git clone https://github.com/AloneMonkey/MonkeyDev.git
cd MonkeyDev/bin
sudo ./md-install
  1. 下載工程后運(yùn)行:https://github.com/bigsen/CrackeApp

目錄

  1. Reveal 和 FLEX 介紹
  2. 搭建開發(fā)環(huán)境 - Theos
  3. 搭建開發(fā)環(huán)境 - MonkeyDev
  4. 獲取脫殼后的 IPA
  5. 在IPA中植入 Reveal 和 Flex

1. Reveal 和 FLEX 介紹

(1)Reveal 是什么

  • Reveal 官方地址:https://revealapp.com
  • Reveal 是一個iOS程序界面調(diào)試工具,可以在Reveal上查看視圖的層級和修改控件的屬性饰抒,用來調(diào)試UI肮砾。
  • Reveal 允許開發(fā)者在不修改代碼、不重新構(gòu)建項目袋坑、不重新部署應(yīng)用程序的情況下就能夠調(diào)試iOS應(yīng)用的用戶界面仗处。

(2)Reveal 延長試用時間方法

  • 對于官網(wǎng)下載的Reveal眯勾,默認(rèn)給予的是14天左右的試用時間。
  • 首先 https://revealapp.com/download/ 從官網(wǎng)下載reveal婆誓,并填寫自己(未注冊過)的郵箱吃环。
  • 然后會收到一封郵件,包含試用的激活碼洋幻。
  • 打開reveal 輸入激活碼即可郁轻。
  • 試用到期后,把電腦時間調(diào)整到注冊日期之時文留,然后再打開reveal即可恢復(fù)試用時間好唯。

(1)FLEX 是什么

  • FLEX官方地址:https://github.com/Flipboard/FLEX
  • Flipboard/ FLEX (Flipboard Explorer) 是 Flipboard 發(fā)布的應(yīng)用內(nèi)調(diào)試工具,開發(fā)者可在toolbar中查看和修改運(yùn)行中的應(yīng)用燥翅。

(2)FLEX 安裝

  • 可通過pod方式引入:pod 'FLEX', '~> 2.0'

(3)FLEX 功能:

  1. 查看骑篙、實(shí)時修改view(與Reveal相關(guān)功能類似,視覺驗證中非常有用)


  2. 監(jiān)控網(wǎng)絡(luò)請求記錄(與Charles抓包功能類似)


  3. 沙盒內(nèi)容查看(數(shù)據(jù)持久化內(nèi)容)


  4. 查看App中所有的類以及所用到的系統(tǒng)Framework森书。


  5. 動態(tài)查看和修改NSUserDefaults值靶端。


  6. 快速查看打印日志(來自NSLog)

  7. 動態(tài)修改對象屬性值。

  8. 動態(tài)調(diào)用實(shí)例和類方法凛膏。


2. 搭建開發(fā)環(huán)境 - Theos

(1)安裝方式一(自動)

演示:


(2)安裝方式二(手動)

1. 從 GitHub 上下載Theos
export THEOS=/opt/theos 
sudo git clone --recursive https://github.com/theos/theos.git $THEOS

小問題:git 克隆下來的theos,make packget install 如果提示提示缺少 _Prefix/NullabilityCompat.h 等文件鄙麦,需要我們?nèi)?a target="_blank">https://github.com/theos/headers 把這個頭文件放到/opt/theos/include目錄中就行了典唇。

sudo git clone https://github.com/theos/headers /opt/theos/include/
2. 配置ldid

ldid 是專門用來 名 iOS 可執(zhí)行文件的工具,用以在越獄 iOS 中 代替 Xcode 自帶的 codesign镊折。

  • 第一種方法:
brew install ldid
  • 第二種方法:
    http://joedj.net/ldid 下 ldid,把它放在“ /opt/theos/bin/ ”下,然后用以下命令賦予它可執(zhí)行權(quán)限:
sudo chmod 777 /opt/theos/bin/ldid
3. dpkg-deb
  • deb 是越獄開發(fā)安裝包的標(biāo)準(zhǔn)格式,dpkg-deb 是一個用于操作 deb 文件的工具,有了這個工具,Theos 才能正確地把工程打包成為 deb 文件胯府。

  • https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pldm.pl,將其重命名為 dpkg-deb 后,放到“/opt/theos/bin/”目錄下,然后用以下命令賦予其可執(zhí)行權(quán)限:

sudo chmod 777 /opt/theos/bin/dpkg-deb

3. 搭建開發(fā)環(huán)境 - MonkeyDev

git clone https://github.com/AloneMonkey/MonkeyDev.git
cd MonkeyDev/bin
sudo ./md-install
  • 這樣以后, 本地就有了MonkeyDev 開發(fā)功能赃泡, 可以在Xcode新建項目時寒波,選擇MonkeyApp。

4. 獲取脫殼后的 IPA (3種方法)

第一種:
第二種:
第三種:
  • 通過越獄設(shè)備升熊, 使用PP助手越獄版本, 下載對應(yīng)APP到手機(jī)上俄烁。
  • 然后使用ifunbox,從/var/mobile/Containers/Bundle/Application 中找到级野,拷貝出來.app 包即可页屠。
第四種:

通過PP助手是下載越獄ipa文件。


5. 在IPA中植入Reveal 和 Flex

到現(xiàn)在這一步我們已經(jīng)有了:
  • FLEX 工具
  • Reveal 工具
  • MonkeyDev 環(huán)境
  • 脫殼后的 IPA文件
然后我們就可以正式開始我們的集成工作:

(1)新建 MonkeyDev 工程。

(2)替換 Reveal Framework 為自己電腦當(dāng)前對應(yīng)版本辰企。

  • 使用自己電腦的RevealServer.framework替換掉/opt/MonkeyDev/frameworks下面的RevealServer.framework风纠。
sudo rm -f -r /opt/MonkeyDev/Frameworks/RevealServer.framework
sudo cp -f -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework /opt/MonkeyDev/Frameworks/RevealServer.framework

(3)MonkeyDev 工程添加FLEX Pod依賴。

  • 打開 MonkeyDev 工程中的 Podfile牢贸,在target ' XXX Dylib' do
    里面填寫pod 'FLEX', '~> 2.0'竹观。

(4)注冊監(jiān)聽,初始化FLEXManager潜索。

  • 導(dǎo)入頭文件臭增。
  • 在CHConstructor里注冊DidFinish監(jiān)聽,初始化FLEX竹习。

(5)放入脫殼后的ipa到MonkeyDev工程速址。
然后運(yùn)行MonkeyDev工程。

某些APP啟動會Crash由驹,需要打開AntiAntiDebug.m芍锚,取消注釋這句話。
rebind_symbols((struct rebinding[1]){{"sysctl", my_sysctl, (void*)&orig_sysctl}},1);


文中Demo示例:https://github.com/bigsen/CrackeApp

http://www.reibang.com/p/db142e71ce9a

參考文章

參考書籍

  • 《iOS逆向工程》
  • 《iOS應(yīng)用與逆向安全》

下一篇:iOS逆向工程(10)破解任意 APP HTTPS 加密

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔓榄,一起剝皮案震驚了整個濱河市并炮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甥郑,老刑警劉巖逃魄,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澜搅,居然都是意外死亡伍俘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門勉躺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來癌瘾,“玉大人,你說我怎么就攤上這事饵溅》镣耍” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵蜕企,是天一觀的道長咬荷。 經(jīng)常有香客問我,道長轻掩,這世上最難降的妖魔是什么幸乒? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮唇牧,結(jié)果婚禮上罕扎,老公的妹妹穿的比我還像新娘基茵。我一直安慰自己,他們只是感情好壳影,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布拱层。 她就那樣靜靜地躺著,像睡著了一般宴咧。 火紅的嫁衣襯著肌膚如雪根灯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天掺栅,我揣著相機(jī)與錄音烙肺,去河邊找鬼。 笑死氧卧,一個胖子當(dāng)著我的面吹牛桃笙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沙绝,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼搏明,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闪檬?” 一聲冷哼從身側(cè)響起星著,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粗悯,沒想到半個月后虚循,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡样傍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年横缔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衫哥。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡茎刚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出炕檩,到底是詐尸還是另有隱情斗蒋,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布笛质,位于F島的核電站,受9級特大地震影響捞蚂,放射性物質(zhì)發(fā)生泄漏妇押。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一姓迅、第九天 我趴在偏房一處隱蔽的房頂上張望敲霍。 院中可真熱鬧俊马,春花似錦、人聲如沸肩杈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扩然。三九已至艘儒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夫偶,已是汗流浹背界睁。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兵拢,地道東北人翻斟。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像说铃,于是被迫代替她去往敵國和親访惜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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