精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美在线高清视频| jiyouzz国产精品久久| 在线a欧美视频| 超碰在线公开97| 大地资源网3页在线观看| 国产精品亚洲第一| 国产91精品久久久久久久| 日韩人妻一区二区三区| 日日狠狠久久| 亚洲成av人**亚洲成av**| 免费在线国产精品| 伊人网中文字幕| 国内自拍一区| 在线色欧美三级视频| 中文国产在线观看| 小h片在线观看| 国产精品成人免费精品自在线观看| 91久久精品一区| 欧美成人精品欧美一级乱黄| 日韩欧美视频在线播放| 精品99一区二区| 日本 片 成人 在线| 98色花堂精品视频在线观看| 国产欧美一区二区在线观看| 成人一区二区在线| 亚洲特级黄色片| 国产日韩综合| 欧美国产亚洲视频| 污污视频网站在线免费观看| 欧美国产极品| 日韩一区二区电影网| 男人天堂网视频| 手机在线免费观看av| 国产女人水真多18毛片18精品视频| www.成人av| 亚洲综合一区中| 美女黄网久久| 97精品伊人久久久大香线蕉 | 亚洲性生活视频在线观看| 久久久国产精品久久久| 国产精品久久久久久吹潮| 欧美特黄级在线| 妞干网在线视频观看| 日本在线视频www鲁啊鲁| 中文在线一区二区| 日韩三级电影| 国产天堂在线| 久久免费视频一区| 久久久精品动漫| 免费av一级片| 北条麻妃一区二区三区| 91久久国产综合久久蜜月精品| 在线播放成人av| 久久xxxx精品视频| 青草青草久热精品视频在线网站| 日本三级理论片| 日韩午夜高潮| 91av视频在线免费观看| 六月丁香在线视频| 夜夜嗨一区二区| 欧美一级淫片播放口| 在线观看亚洲天堂| 亚洲女同在线| 日本亚洲欧洲色α| 69亚洲精品久久久蜜桃小说| 欧美资源在线| 日韩av黄色在线观看| 东京热一区二区三区四区| 噜噜噜91成人网| 日本亚洲欧美成人| 在线观看视频二区| 激情综合网av| 99三级在线| 手机av在线免费观看| 91网站最新网址| 开心色怡人综合网站| 国产精品一二三区视频| 国产精品网站在线播放| 久久久成人精品一区二区三区| av片哪里在线观看| 亚洲h精品动漫在线观看| 黑人糟蹋人妻hd中文字幕| 播放一区二区| 欧美一区欧美二区| 国产白袜脚足j棉袜在线观看| 欧美精品中文| 这里只有精品在线播放| 欧美成人片在线观看| 亚洲第一毛片| 国产成人高清激情视频在线观看| 中文字幕人妻丝袜乱一区三区| 激情成人综合网| 国产欧美一区二区在线播放| 久久综合九色综合久| 亚洲欧洲综合另类| 缅甸午夜性猛交xxxx| av成人亚洲| 欧美成人一区二区三区| 熟女少妇一区二区三区| 日韩欧美自拍| 97精品一区二区视频在线观看| 青青视频在线免费观看| 精品亚洲免费视频| 久久影院理伦片| 毛片网站在线免费观看| 精品久久久香蕉免费精品视频| 国产视频一区二区三区在线播放 | 黄色在线视频网站| 香蕉乱码成人久久天堂爱免费| 熟妇人妻无乱码中文字幕真矢织江| 国产精品毛片无码| 亚洲欧美国产精品专区久久| 午夜精品福利在线视频| 久久精品亚洲| 成人在线观看91| 久操视频在线观看| 色吊一区二区三区| 日本在线不卡一区二区| 久久日文中文字幕乱码| 奇米成人av国产一区二区三区| 亚洲av无码一区二区乱子伦| 亚洲国产精品av| 免费欧美一级视频| 亚洲精品不卡在线观看| 色偷偷噜噜噜亚洲男人的天堂 | 欧美吻胸吃奶大尺度电影| 天天躁日日躁狠狠躁av| 国产精品传媒精东影业在线| 日本91av在线播放| 日韩一级在线播放| 亚洲最大色网站| 女同激情久久av久久| 欧美男男gaytwinkfreevideos| 久久久久亚洲精品国产| 国产丰满果冻videossex| 中文一区一区三区高中清不卡| 能在线观看的av| 红杏aⅴ成人免费视频| 欧美大奶子在线| 国产又大又黄的视频| 欧美国产一区在线| 国产免费人做人爱午夜视频| 欧美精品中文| 98精品国产高清在线xxxx天堂| 午夜精品无码一区二区三区| 成人欧美一区二区三区黑人麻豆| 国产理论在线播放| 精品视频日韩| 国产精品久久久久久久美男| 九九热视频在线观看| 欧美性极品xxxx娇小| 国产精品无码毛片| 国产欧美日韩一级| 久久五月天婷婷| 欲香欲色天天天综合和网| 亚洲福利视频免费观看| 日韩精品成人一区| 99re成人在线| 成年人观看网站| 中文字幕av一区二区三区人| 日本欧美精品在线| 国产在线网站| 欧美日韩精品一区二区三区四区| 精品日韩在线视频| 久久66热偷产精品| 青春草在线视频免费观看| 亚洲一区二区三区久久久| 久久亚洲精品小早川怜子66| 国产乱人乱偷精品视频| 一区二区三区国产| yy1111111| 久久精品网址| 一本二本三本亚洲码| 亚洲视频国产精品| 97精品视频在线| av男人的天堂在线| 日韩一本二本av| 色婷婷av国产精品| 国产拍欧美日韩视频二区| www.com黄色片| 欧美精品不卡| 九九九九久久久久| 国产一区影院| 欧美激情欧美激情在线五月| 亚洲欧美自偷自拍| 欧美日韩国产一级二级| 精品在线视频免费| 久久久久久久久久久久久女国产乱| 九热视频在线观看| 欧美激情91| 欧美区高清在线| 国产激情综合| 欧美一级大片在线观看| 欧洲不卡视频| 亚洲福利在线看| 中文字幕有码视频| 亚洲午夜久久久久| 人妻熟人中文字幕一区二区| 国产成人精品免费在线| 国产综合免费视频| 欧美二区不卡| 视频一区视频二区视频三区高| 视频一区视频二区欧美| 国产成人精品久久| 暖暖在线中文免费日本| 中文精品99久久国产香蕉| 精品国产亚洲av麻豆| 欧洲视频一区二区| 精品无码黑人又粗又大又长| 国产精品欧美久久久久无广告| 久久久久久久久久影视| 老司机精品视频导航| 国产美女网站在线观看| 欧美影视一区| 色姑娘综合网| 午夜先锋成人动漫在线| 亚洲伊人一本大道中文字幕| 澳门av一区二区三区| 国色天香2019中文字幕在线观看| 日本在线观看免费| 亚洲欧美日韩精品| 天堂中文资源在线观看| 日韩亚洲欧美成人一区| 亚洲在线精品视频| 91黄色免费网站| 日韩特黄一级片| 亚洲免费观看高清| 91视频最新网址| 国产亚洲精品超碰| 好吊色视频一区二区三区| 国产精品夜夜嗨| 一级做a免费视频| 日本中文字幕一区| 又色又爽又高潮免费视频国产| 亚洲成人直播| 久艹视频在线免费观看| 欧美精品国产一区二区| 天天在线免费视频| 91精品国产自产在线观看永久∴ | 国产乱淫av麻豆国产免费| 免费观看成人av| 91视频免费版污| 久久看片网站| 久久久噜噜噜www成人网| 在线综合亚洲| 啊啊啊一区二区| 蘑菇福利视频一区播放| 少妇性饥渴无码a区免费| 国产精品普通话对白| 日韩视频免费播放| 亚洲精品日韩久久| 欧美爱爱视频免费看| 亚洲大胆av| 一区二区传媒有限公司| 亚洲一区日韩在线| 天天摸天天碰天天添| 香蕉久久久久久久av网站| 激情综合在线观看| 性欧美暴力猛交另类hd| 日本熟妇人妻xxxxx| 日韩精品国产精品| 国产精品一区二区小说| 国内精品第一页| 动漫av在线免费观看| 大桥未久av一区二区三区中文| 岛国av免费观看| 2欧美一区二区三区在线观看视频| 国产高清自拍视频| yourporn在线观看视频| 亚洲激情成人在线| 久久免费视频6| 黄色一区二区在线| 无码人妻av免费一区二区三区 | 91麻豆福利精品推荐| 黄色片视频免费观看| 国产婷婷色一区二区三区四区| 精品熟妇无码av免费久久| 亚洲日本在线看| 欧美日韩人妻精品一区二区三区| 亚洲国产精品一区二区www | 免费在线成人| 中文字幕在线综合| 风间由美一区二区三区在线观看| 噜噜噜在线视频| 国产精品蜜臀在线观看| 日韩一区二区三区四区在线| 午夜久久久久久久久久一区二区| 日本视频免费观看| 欧美一区二区三区日韩| 无码国产色欲xxxx视频| 国产午夜精品视频免费不卡69堂| 黄av在线免费观看| 97热在线精品视频在线观看| 秋霞国产精品| 亚洲最大成人网色| 一本久久青青| 一本色道久久88亚洲精品综合| 国产亚洲欧洲| 日韩av片免费观看| wwww国产精品欧美| 91精品国产闺蜜国产在线闺蜜| 五月天中文字幕一区二区| 中文无码av一区二区三区| 欧美成人video| 91精彩在线视频| 97成人精品区在线播放| 婷婷久久综合九色综合99蜜桃| 久久99精品久久久久久久久久| 97久久视频| 777米奇影视第四色| 国产精品一区二区不卡| 人妻精品久久久久中文| 亚洲国产精品一区二区久久| 国产精品一区二区免费视频| 亚洲男人天堂网站| 搞黄网站在线看| 成人免费福利在线| 国产一区二区亚洲| 成年人午夜免费视频| 国产一区二区三区av电影| 免费在线观看a视频| 婷婷久久综合九色综合绿巨人| 91高潮大合集爽到抽搐| 亚洲色图狂野欧美| 成人一级福利| 99视频在线播放| 91国语精品自产拍| 欧美激情第3页| 国产午夜精品在线观看| 中文字幕亚洲高清| 精品国产乱码久久久久久1区2区| 精品美女在线观看视频在线观看| 国产精品激情av在线播放 | 日韩高清不卡av| xxxx另类黑人| 国产精品高清一区二区三区| 亚洲啊v在线观看| 男女视频在线看| 欧美国产精品v| 免费看污视频的网站| 亚洲人永久免费| 欧美1级2级| 蜜桃91精品入口| 亚洲一区图片| 亚洲av无码一区二区二三区| 精品久久久香蕉免费精品视频| 午夜成人免费影院| 97在线观看视频国产| 久久男人av| 欧美国产激情视频| 久久精品人人做人人爽97| 日韩中文字幕在线观看视频| 亚洲美女av在线播放| 国产高清不卡| 日韩视频专区| 久久精品国产一区二区三区免费看| 特级西西www444人体聚色 | 性一交一乱一色一视频麻豆| 美女扒开尿口让男人操亚洲视频网站| 欧美成人xxxx| 免费成人进口网站| 国产精品69毛片高清亚洲| 久久国产在线视频| 精品91自产拍在线观看一区| 绿色成人影院| 日本欧美精品久久久| 奇米一区二区三区| av激情在线观看| 精品电影一区二区| 在线观看的黄色| 亚洲日本无吗高清不卡| 国产综合久久久久影院| 免费一级黄色大片| 日韩av中文字幕在线免费观看| 小早川怜子影音先锋在线观看| 视频一区三区| 国产成人免费在线| 欧美日韩一二三四区| 一区二区在线视频| 国产精品麻豆| 欧洲黄色一级视频| 国产精品少妇自拍| 亚洲精品免费在线观看视频| 91成人福利在线| 日韩av久操| 永久免费未满蜜桃| 欧美亚洲一区三区| 在线āv视频| 欧美三级电影在线播放| 久久成人免费网| 精品一区免费观看| 一区二区三区亚洲| 综合久久成人| 黄色三级视频在线| 亚洲亚洲精品在线观看| 成年人视频在线看| 国产精品二区二区三区| 免费成人av在线| 日韩成人免费在线视频| 视频在线观看99|