精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS應用程序的脫殼實現原理淺析

移動開發
對于諸多逆向愛好者來說,給一個app脫殼是一項必做的事情。基于安全性的考慮,蘋果對上架到appstore的應用都會進行加密處理,所以如果直接逆向一個從appstore下載的應用程序時,所能看到的“源代碼”將非常的晦澀難懂。

應用程序加載過程

對于諸多逆向愛好者來說,給一個app脫殼是一項必做的事情。基于安全性的考慮,蘋果對上架到appstore的應用都會進行加密處理,所以如果直接逆向一個從appstore下載的應用程序時,所能看到的“源代碼”將非常的晦澀難懂。為了能看懂應用程序的“源代碼”,就必須對應用程序進行解密,也就是所謂的脫殼。脫殼后的目的是可以分析應用程序的一些技術實現原理,或者利用一些漏洞進行攻擊和測試。

這篇文章不是一篇介紹如何利用工具去進行脫殼的教程,而只是簡單的分析這些常用脫殼工具的實現原理。要想了解脫殼原理,就要先去了解一個被加密的應用程序是如何被運行的。下面一張圖片簡單的介紹了一個被加殼后的應用程序被加載和運行的過程:

 

iOS應用程序的脫殼實現原理淺析

程序脫殼過程

脫殼原理以及常見的工具

要對一個殼應用進行脫殼處理,無非就是采用靜態脫殼和動態脫殼兩種方法:靜態脫殼就是在已經掌握和了解到了殼應用的加密算法和邏輯后在不運行殼應用程序的前提下將殼應用程序進行解密處理。靜態脫殼的方法難度大,而且加密方發現應用被破解后就可能會改用更加高級和復雜的加密技術;動態脫殼就是從運行在進程內存空間中的可執行程序映像(image)入手,來將內存中的內容進行轉儲(dump)處理來實現脫殼處理。這種方法實現起來相對簡單,且不必關心使用的是何種加密技術。從上面的殼應用程序運行的過程就可以看出無論殼程序如何被加密處理,最終運行后在進程中的代碼映像(image)始終是被解密后的原始程序二進制。所以只要一個進程內存空間中的代碼映像(image)能被讀取和訪問就可以實現動態脫殼。下面要介紹的兩個工具就是巧妙的運用了兩種不同的訪問技巧來實現動態脫殼的。

一、利用動態庫注入來實現脫殼的dumpdecrypted/frida-ios-dump

dumpdecrypted和frida-ios-dump都是在github上開源的項目,下載地址分別為:https://github.com/stefanesser/dumpdecrypted和https://github.com/AloneMonkey/frida-ios-dump。關于使用這兩個工具來進行脫殼的文檔非常之多。我們知道一個應用除了有一個可執行程序外,還會鏈接非常多的動態庫。動態庫加載后和可執行程序共享相同的進程內存空間,而且動態庫中的代碼是可以訪問整個進程內存空間中的有權限的區域的,包括可執行程序的image被加載到進程中的內存區域。因此只要想辦法讓應用程序加載某個特定的第三方動態庫,也就是讓這個第三方動態庫注入到應用程序的進程中去就可以實現將被解密過后的可執行程序在進程內存中的image信息轉儲到文件中去從而實現脫殼處理。對于一個越獄后的設備來說主要可以通過兩種方法來實現第三方動態庫的注入:

  1. 設置環境變量DYLD_INSERT_LIBRARIES的值指向這個第三方動態庫的路徑。然后運行要脫殼的應用程序即可。 DYLD_INSERT_LIBRARIES環境變量的設置是一個操作系統提供的特性,所有運行的程序都會加載這個環境變量中所指向的動態庫文件。
  2. 將第三方動態庫文件保存在越獄設備的/Library/MobileSubstrate/DynamicLibraries/目錄下并編寫對應的庫的同名plist文件,所有plist中指定的可執行程序一旦運行就會加載對應的動態庫(此目錄即Tweak插件所在的目錄)。
  • 還有一種直接修改對應mach-o格式的可執行文件內容來實現動態庫注入。

動態庫加載的問題解決后就需要解決動態庫中代碼運行的時機問題了。要想讓一個被加載的動態庫在加載后自動運行某一段代碼可以有四種方法:

  1. 建立一個C++全局對象,并在對象所屬類的構造函數中添加特定代碼。
  2. 建立一個OC類,并在OC類的+load方法中添加特定的代碼。
  3. 生成動態庫時指定一個初始化init入口函數,并在入口函數中添加特定的代碼。
  4. 在動態庫中定義一個帶有_attribute_((constructor))聲明的函數,并在函數內添加特定的代碼。
  • 如果你想更進一步的了解上述那些方法的加載的原理,請參考我的文章:深入解構iOS系統下的全局對象和初始化函數

dumpdecrypted這個工具就是通過建立一個名為dumpdecrypted.dylib的動態庫并在庫內部定義了一個

 

  1. __attribute__((constructor)) 
  2. void dumptofile(int argc, const char **argv, const char **envp, const char **apple, struct ProgramVars *pvars) 

函數來實現脫殼的。這個函數的大體實現會在后面繼續介紹。

二、利用父子進程關系來實現脫殼的Clutch

Clutch也是一個在github上開源的項目,下載地址為:https://github.com/KJCracks/Clutch。關于這個工具的使用教程也非常之多。我們知道在unix系列的操作系統中父進程可以通過fork或者posix_spawnp兩個函數來運行或者建立一個子進程的,這兩個函數都會返回對應的子進程ID(PID)。iOS系統則可以通過task_for_pid函數來從進程ID獲取進程在mach內核子系統中的mach port標識。得到mach port 標識后,就可以借助mach_vm_read_overwrite函數來讀取指定進程空間中的任意虛擬內存區域中所存儲的內容。因此Clutch內部的實現就是Clutch這個程序對將要進行脫殼的程序文件路徑調用posix_spawnp函數來運行從而成為其子進程,然后借助task_for_pid以及mach_vm_read_overwrite函數來讀取脫殼程序子進程在內存中已經被解密后的可執行程序的image所映射的內存空間來達到脫殼的目的的。

一個思考:可能在實際中并不一定要求是父子進程關系,是否只要某個具有特權的程序或者運行在root用戶上的程序只要拿到了對應進程的PID就可以通過mach子系統提供的API來讀取其他進程內存空間中的信息呢?

上述的兩種方法中不管是dumpdecrypted還是Clutch最終都是將被解密后的可執行程序的image在內存中的映射寫入到一個文件中去來保存脫殼后的內容。參考dumpdecrypted中的dumptofile函數實現以及Clutch中的Dumpers目錄下的實現代碼就可以看出:一個可執行程序image在內存中映射的內容的結構和mach-o格式的可執行文件結構基本上是保持一致的。都是有一個mach_header結構體頭還有諸多的load_command結構體組成。因此所謂的dump處理就是將內存中的這些結構和數據原封不動的寫入到文件中去即完成了脫殼中的最核心的部分。如果想仔細的閱讀這部分代碼的實現,建議先了解一下mach-o文件格式的組成。

后記

當你了解了這些內部實現后,也許你會發覺其實它的原理很簡單。而且有可能你也能很快的去實現。可問題的關鍵是為什么這些方法總是別人能想到,而我們卻想不到呢?這是否和國人的思維以及解決問題的方式相關呢?在我們的教育和實踐體系中更多的是拿來主義和實用主義,往往很少人會對問題進行深入的探索研究以及進行問題的關聯性思考。但愿這種情況在未來能夠得到改進,尤其作為一個程序員,更加應該秉持探索求知的強烈意愿而不是簡單復制和應用就滿足了。

最后還是要感謝《iOS應用逆向與安全》的作者:劉培慶。向他咨詢了逆向相關的一些知識后才得以寫出這篇文章。

責任編輯:未麗燕 來源: 簡書
相關推薦

2022-12-25 18:03:13

Debug原理軟件

2010-12-27 17:04:07

應用程序版本升級

2015-10-10 16:31:58

2009-07-09 16:47:26

Servlet的Web

2010-01-22 13:59:34

Visual C++應

2009-07-10 17:24:07

Swing應用程序

2011-07-20 16:59:07

2010-01-26 13:29:46

VC++應用程序

2009-09-24 17:21:17

加速Hibernate

2009-07-20 16:08:04

ASP.NET應用程序

2010-02-22 10:38:09

Python應用程序

2009-07-30 18:50:32

C#發送消息C#應用程序

2009-08-25 09:39:21

創建C# Window

2009-07-14 16:40:31

MyEclipse開發

2009-09-22 18:39:02

Silverlight

2009-07-17 13:42:36

Windows CE應WinCE可移植性

2010-02-04 10:17:38

Android應用程序

2010-03-02 14:24:00

Android應用程序

2015-07-09 15:42:48

ios應用生命周期

2014-04-02 09:56:13

iOS應用減小安裝包
點贊
收藏

51CTO技術棧公眾號

久久免费精彩视频| 五月婷婷丁香综合网| 黄色一级大片在线免费看国产一| 激情欧美日韩一区| 日韩经典第一页| 情侣黄网站免费看| 蜜桃视频网站在线| 成人午夜视频网站| 国产精品com| 欧美人妻一区二区| 欧美伦理影院| 日韩欧美资源站| av无码精品一区二区三区| 国产福利在线播放麻豆| 99re66热这里只有精品3直播| 国产91精品最新在线播放| 男女性高潮免费网站| 伊人精品一区| 日韩欧美高清在线| mm1313亚洲国产精品无码试看| 黄网页免费在线观看| 91免费视频网| yellow视频在线观看一区二区| 国内精品福利视频| 欧美体内she精视频在线观看| 日韩av影视综合网| 992tv人人草| 久久青青视频| 亚洲aⅴ怡春院| 一区一区视频| 东凛在线观看| 26uuu亚洲综合色| 成人影片在线播放| 91亚洲欧美激情| 水野朝阳av一区二区三区| 久久免费国产视频| www.av成人| 成人激情视频| 亚洲午夜精品久久久久久性色 | 欧美寡妇性猛交xxx免费| 国产网站一区二区三区| 久久精品欧美| 少妇喷水在线观看| 国产精品99久久久久久似苏梦涵| 国产精品日韩电影| 国产一级片免费在线观看| 99热这里只有成人精品国产| 欧美大片第1页| 成人观看免费视频| 综合久久久久| 欧美xxxx做受欧美.88| 亚洲 欧美 国产 另类| 欧美影院三区| 日韩中文字在线| 国产白丝一区二区三区 | 亚洲乱码一区av黑人高潮| 美国黄色一级视频| 最新国产精品精品视频| 日韩午夜中文字幕| 99视频在线观看视频| 91精品视频一区二区| 欧美精品久久99| 中文字幕在线视频精品| 在线日韩三级| 欧美一级国产精品| 性折磨bdsm欧美激情另类| 日韩一区二区三区色| 69成人精品免费视频| 午夜啪啪小视频| 国产一区二区| 亚洲白拍色综合图区| 中文字幕在线视频播放| 精品女人视频| 亚洲片av在线| 蜜桃av乱码一区二区三区| 成人女性视频| 久久中文精品视频| www.天天色| 午夜亚洲伦理| 国产免费一区二区三区香蕉精| 中文字幕在线网站| 国产乱一区二区| 国产中文一区二区| 韩国福利在线| 综合久久一区二区三区| 免费在线黄网站| 成人在线高清免费| 色婷婷综合久色| 中文av一区二区三区| 成人污污视频| 日韩电影大全免费观看2023年上| 大又大又粗又硬又爽少妇毛片| 欧美一区二区三区激情视频| 欧美成人手机在线| 国产精品视频免费播放| 另类小说欧美激情| 国产精品免费一区二区三区| 男女污视频在线观看| 成人欧美一区二区三区| 一二三四视频社区在线| 电影天堂国产精品| 日韩三级av在线播放| 少妇久久久久久久久久| 中文字幕日韩一区二区不卡| 68精品国产免费久久久久久婷婷| 在线观看免费中文字幕| 成人久久视频在线观看| 无遮挡亚洲一区| heyzo高清在线| 欧美日韩国产色站一区二区三区| 亚洲视频天天射| 俺要去色综合狠狠| 国产+人+亚洲| 亚洲综合精品国产一区二区三区| 成人av网址在线| 一区二区三区精品国产| 欧美激情护士| 日韩三级视频中文字幕| 国产免费嫩草影院| 国产欧美日韩一级| 99久久久精品免费观看国产| 啊v视频在线| 黄色成人av网| 亚洲午夜精品在线观看| 色天天久久综合婷婷女18| 97久久精品人搡人人玩| 国产又粗又长又大视频| 久久理论电影网| 国产一级不卡视频| 欧美亚洲黄色| 国产午夜精品全部视频在线播放| 日产精品久久久久| 国产精品正在播放| 熟女熟妇伦久久影院毛片一区二区| 色多多在线观看| 亚洲精品一区二区三区99| 国产美女久久久久久| 日本va欧美va精品| 日本视频一区二区不卡| 校园春色亚洲| 亚洲精品视频播放| 九九热在线视频播放| 成人午夜激情在线| 精品人妻人人做人人爽| 国产精品一区免费在线| 日韩专区在线观看| 91亚洲精品国偷拍自产在线观看| 欧美国产精品一区| 99视频免费播放| 国产一区二区三区电影在线观看| 欧美一级视频免费在线观看| 色窝窝无码一区二区三区成人网站 | 亚洲自拍偷拍第一页| 欧美成人视屏| 制服丝袜国产精品| 最新一区二区三区| 国产精品香蕉一区二区三区| 久久www视频| av日韩精品| 欧美极品第一页| 日本久久一级片| 精品人伦一区二区三区蜜桃免费| 伊人网综合视频| 亚洲美女一区| 欧美日韩在线一二三| 国产超碰精品| 中文字幕欧美日韩在线| 亚洲天堂网在线观看视频| 国产精品午夜久久| 成人黄色一级大片| 欧美精品国产一区二区| 国产精品国模大尺度私拍| 新版的欧美在线视频| 亚洲最新av在线| 97人妻精品一区二区三区软件 | 图片一区二区| 欧美精品免费播放| 天天干,夜夜爽| 91国偷自产一区二区开放时间| 性少妇xx生活| 国产91综合一区在线观看| 欧美 日韩 国产在线观看| 久久91麻豆精品一区| 国产在线精品一区免费香蕉 | 91国偷自产一区二区三区的观看方式| 天堂在线免费av| 黑人巨大精品欧美一区免费视频 | 亚洲精品菠萝久久久久久久| 国产二级一片内射视频播放| 日韩精品三区四区| 热这里只有精品| 日本亚洲不卡| 成人写真福利网| 日本三级一区| 久久精品国产成人精品| 四虎精品一区二区三区| 欧美色男人天堂| 久久精品久久国产| 国产精品天美传媒| 88av在线播放| 国产又黄又大久久| 免费观看精品视频| 一本精品一区二区三区| 欧美另类一区| 亚洲欧美日本国产| 国产精品久久久久久久久久尿| 日韩精品亚洲人成在线观看| 在线日韩欧美视频| 熟妇人妻一区二区三区四区 | 国产精品老女人视频| 日韩特级毛片| 最近2019好看的中文字幕免费| 亚洲精品久久久蜜桃动漫| 欧美日韩一卡二卡| 国产小视频在线免费观看| 亚洲欧美日韩精品久久久久| 泷泽萝拉在线播放| 国产99久久久精品| 中文字幕亚洲影院| 日本视频一区二区| 国产白丝袜美女久久久久| 一个色综合网| 亚洲人体一区| 国产一卡不卡| 九九九九九九精品| 91精品久久久久久综合五月天 | 怡红院成永久免费人全部视频| 午夜国产精品一区| 久久久久久久久97| 亚洲欧美激情在线| 亚洲一级理论片| 国产欧美日产一区| 少妇大叫太粗太大爽一区二区| 国产aⅴ精品一区二区三区色成熟| 国产精欧美一区二区三区白种人| 人人精品人人爱| 久久综合久久色| 免费看黄裸体一级大秀欧美| 成人在线观看你懂的| 在线精品一区| 久久综合久久网| 国产精品v亚洲精品v日韩精品| av电影一区二区三区| 国产精品麻豆久久| 在线观看福利一区| 欧美大黑bbbbbbbbb在线| 手机在线观看国产精品| 欧美精品尤物在线观看| 日本午夜精品一区二区| 国产精品亚洲片在线播放| 久久综合久久久| 亚洲人成亚洲精品| 日韩经典在线视频| 欧洲视频一区| 正在播放亚洲| 亚洲精品国产偷自在线观看| 国产三级中文字幕| 黄色一区二区三区四区| 成年人看的毛片| 99精品视频免费| 成人免费观看毛片| 日韩国产欧美在线视频| 在线观看国产一级片| 精品伊人久久久久7777人| 中文字幕12页| 成人涩涩免费视频| 欧美多人猛交狂配| 欧美国产日产图区| 日韩a级片在线观看| 亚洲激情中文1区| 久久久久久久久久影院| 色婷婷香蕉在线一区二区| 欧美超碰在线观看| 欧美放荡的少妇| 亚洲第一大网站| 亚洲美女视频网| 永久av在线| 久久久久亚洲精品国产| 亚洲最大网站| 成人网在线视频| 久久夜色电影| 色噜噜一区二区| 欧美国产先锋| 国产又大又硬又粗| 国产做a爰片久久毛片| 天天躁日日躁狠狠躁av| 国产午夜亚洲精品理论片色戒 | 精品动漫一区二区| 中文字幕免费观看视频| 日韩一区二区三区电影| 污污网站在线免费观看| 永久免费看mv网站入口亚洲| 色yeye免费人成网站在线观看| 热久久这里只有精品| 深夜日韩欧美| 九色一区二区| 欧美黄在线观看| 国产精品无码一本二本三本色| 国内不卡的二区三区中文字幕 | 中文字幕一区二区不卡| 久久视频免费在线观看| 欧美三级视频在线| 欧美 日韩 综合| 日韩在线精品一区| 在线天堂资源www在线污| 91色精品视频在线| 精品国产一区二区三区小蝌蚪| 久久亚洲a v| 国产在线精品一区在线观看麻豆| 香蕉视频黄色在线观看| 亚洲综合一区二区三区| 一道本无吗一区| 精品亚洲一区二区三区在线观看 | 亚洲一区二区三区香蕉| 自拍偷拍精品| 亚洲熟妇无码一区二区三区| 韩国欧美国产1区| 欧美大波大乳巨大乳| 欧美日韩国产区| 亚洲AV无码国产精品午夜字幕| 中文字幕日韩欧美在线| 超碰超碰人人人人精品| 国产日韩三区| 国产精品草草| 樱花草www在线| 国产精品视频一二三区| 加勒比在线一区| 国产婷婷色综合av蜜臀av| 丁香花在线影院| aa日韩免费精品视频一| 91一区二区三区四区| 日本美女高潮视频| 久久五月婷婷丁香社区| 日韩成人一区二区三区| 精品久久久久久久久久久久久久久| 巨大荫蒂视频欧美大片| 国产日韩欧美91| 日韩中字在线| 亚洲国产成人va在线观看麻豆| 中文字幕乱码久久午夜不卡 | 日韩欧美二区三区| 国产三区在线观看| 成人免费网站在线| 久久久久蜜桃| www.久久com| 亚洲黄色片在线观看| 精品国自产拍在线观看| 久99九色视频在线观看| 91精品短视频| 免费看又黄又无码的网站| 不卡视频一二三| 日韩欧美高清在线观看| 亚洲欧美日韩中文在线制服| 女生影院久久| 视频一区二区三区在线观看 | 欧美小视频在线观看| 十九岁完整版在线观看好看云免费| 91wwwcom在线观看| 综合国产视频| 在线免费视频一区| 最新成人av在线| 亚洲国产剧情在线观看| 国模视频一区二区| 国产欧美高清视频在线| 中文字幕 91| 一区二区三区国产| 天天干天天摸天天操| 欧美主播福利视频| 久久精品av| 无码人妻少妇色欲av一区二区| 亚洲第一综合色| 黄色在线视频观看网站| 国产日产欧美a一级在线| 欧美日韩国产在线一区| 日本黄色动态图| 在线区一区二视频| 91cn在线观看| 久久久久一区二区| 美女视频黄免费的久久| 久久久香蕉视频| 亚洲天堂男人天堂| 激情综合婷婷| 免费在线观看亚洲视频| 国产精品―色哟哟| 欧美亚洲精品在线观看| 日韩美女免费视频| 中文字幕亚洲综合久久五月天色无吗'' | 亚洲成色777777在线观看影院| 成人黄色免费短视频| 91看片淫黄大片91| 久久新电视剧免费观看| 99热这里只有精品1| 欧美最猛性xxxxx亚洲精品| 国产精品久久天天影视| 熟女人妻在线视频| 在线播放日韩导航| 裤袜国产欧美精品一区| 免费看黄色a级片| 久久精品一区二区三区不卡 | 日韩欧美2区|