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

如何對iOS應用進行修改并重新簽名

安全 移動安全
我們在本文中使用工具集optool、Apple的編譯環境以及一些shell命令來講解如何對iOS應用進行修改并重新簽名。

[[184097]]

前言

在某些場景下,你可能需要在沒越獄的iOS設備上運行修改過的iOS應用,特別是當手上已越獄的iPhone突然變磚,只能被迫升級到非越獄版本的iOS系統時,這種需求顯得更加迫切。再如,你需要使用這項技術來動態分析測試應用程序,或者你可能需要使用GPS欺騙手段來繞過Pokemon的鎖區限制,在非洲地區捕捉寵物小精靈,而又不想承擔越獄帶來的安全風險。無論是哪種情況,你都可以使用本文介紹的方法對某個經過修改的應用重新簽名并在自己的設備上成功運行。需要注意的是,這種技術僅在應用程序不是經過FairPlay加密(即從應用商店上下載)時才能正常工作。

由于Apple采用了較為復雜的配置及代碼簽名系統,在iOS系統上對程序進行重新簽名會比想象中困難得多。只有使用正確的配置文件以及完全正確的代碼簽名頭,iOS系統才會允許應用程序正常運行。這使得你需要熟知許多概念:如不同類型的證書、BundleID、應用ID、團隊ID,以及如何使用Apple的編譯工具將這些東西結合在一起。簡而言之,要想讓不經過默認方法(即XCode環境)編譯生成的程序在iOS上正確運行將會是一個困難重重的過程。

我們在本文中使用的工具集包括optool、Apple的編譯環境以及一些shell命令。我們所使用的方法靈感來自于Vincent Tan的Swizzler項目。此外,NCC工作組采用其他工具集也完成了同樣的工作。

要復現下文列出的步驟,請從OWASP Mobile Testing Guide軟件倉庫中下載UnCrackable Ios App Level 1這個示例應用,我們的目標是修改UnCrackable這個應用,使它在啟動時加載FridaGadget.dylib,以便后續可以用Frida來加載該應用進行測試。

獲取開發者配置文件(Provisioning Profile)及證書

開發者配置文件是由Apple簽名的一個plist文件,它將開發者的代碼簽名證書列入一個或多個設備的白名單中。話句話說,Apple通過這種方式顯式允許開發者的應用程序在某些設備的上下文環境中運行(如對特定設備進行調試)。配置文件還列出了應用程序所能獲得的權限信息。代碼簽名證書包含了開發者在對應用進行簽名時所用到的私鑰。

1)使用iOS開發者賬號時

如果你之前使用Xcode開發和部署過iOS應用,你已經獲得了一個代碼簽名證書。你可以使用security工具列出你現有的簽名身份碼:

  1. $ security find-identity -p codesigning -v 
  2. 1) 61FA3547E0AF42A11E233F6A2B255E6B6AF262CE "iPhone Distribution: Vantage Point Security Pte. Ltd." 
  3. 2) 8004380F331DCA22CC1B47FB1A805890AE41C938 "iPhone Developer: Bernhard Müller (RV852WND79)" 

已經注冊的開發者可以從Apple開發者門戶上獲取配置文件。首先你需要創建一個新的App ID,之后發起一個配置文件請求,以便該App ID能在你的設備上運行。要是只是想對應用進行重新打包,那么選擇哪個App ID并不重要,你甚至可以重復使用之前使用過的App ID。關鍵點在于你需要一個正確匹配的配置文件,因為需要將調試器附加到應用上進行工作,請確保你創建的是一個開發配置文件(development provisioning profile)而不是分發配置文件(distribution profile)。

在下文的shell命令中,我使用了自己的簽名身份,該簽名身份與我公司的開發團隊相關聯。我創建了名為“sg.vp.repackaged”的app-id,以及一個名為“AwesomeRepackaging”的配置文件,生成了一個名為“AwesomeRepackaging.mobileprovision”的文件,請你在實際操作時將這些字段替換為你自己的文件名。

2)使用普通iTunes賬號時

幸運的是,即便你不是付費開發者,Apple也會給你發放一個免費的開發配置文件。你可以使用自己的Apple賬戶,通過Xcode環境獲得該配置文件——只需要創建一個空的iOS工程,并從應用容器中提取embedded.mobileprovision即可。NCC博客對整個過程進行了詳細描述。

獲取到配置文件后,你可以使用security工具檢查其內容。除了證書及設備信息外,你還可以從配置文件中找到應用所被賦予的運行權限。這些信息在后續的代碼簽名工作中都需要用到,因此你需要將它們提取到單獨的plist文件中,如下所示。

  1. $ security cms -D -i AwesomeRepackaging.mobileprovision > profile.plist 
  2. $ /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist 
  3. $ cat entitlements.plist 
  4. <?xml version="1.0" encoding="UTF-8"?> 
  5. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
  6. <plist version="1.0"> 
  7. <dict> 
  8. <key>application-identifier</key> 
  9. <string>LRUD9L355Y.sg.vantagepoint.repackage</string> 
  10. <key>com.apple.developer.team-identifier</key> 
  11. <string>LRUD9L355Y</string> 
  12. <key>get-task-allow</key> 
  13. <true/> 
  14. <key>keychain-access-groups</key> 
  15. <array> 
  16. <string>LRUD9L355Y.*</string> 
  17. </array> 
  18. </dict> 
  19. </plist> 

 

 

 

你還需要檢查一下生成的plist文件,看文件內容是否正確生成。

其中,應用標識(App ID)是由Team ID(LRUD9L355Y)以及Bundle ID(sg.vantagepoint.repackage)組合而成。此配置文件僅對使用該App ID的應用有效。 “get-task-allow” 鍵值也十分重要,當該鍵值設為“true”時,其他進程(如調試服務器)可以被允許附加到該應用程序上,因此,在分發配置文件中,需要將該鍵值設置為“false”。

其他的準備措施

要想讓我們的應用在啟動時加載一個附加庫,我們使用某些方法將一個附加加載命令插入到主執行文件的Mach-O頭中。我們使用optool來自動化完成這個步驟:

  1. $ git clone https://github.com/alexzielenski/optool.git 
  2. $ cd optool/ 
  3. $ git submodule update --init --recursive 

不使用Xcode的情況下,我們可以使用ios-deploy工具來完成應用的部署及調試。

  1. git clone https://github.com/phonegap/ios-deploy.git 
  2. cd ios-deploy/ 
  3. git submodule update --init --recursive 

你需要FridaGadget.dylib完成本文示例。

  1. $ curl -O https://build.frida.re/frida/ios/lib/FridaGadget.dylib 

除了上述工具,我們還將使用OS X及XCode附帶的標準工具集,請確保你的環境中已安裝Xcode命令行開發者工具。

應用的修改、重新打包和重新簽名

IPA文件其實就是ZIP文件,因此我們可以解壓ipa包,將FridaGadget.dylib拷貝至app目錄,之后使用optool將load命令添加到“UnCrackable Level 1”這個應用中。

  1. $ unzip UnCrackable_Level1.ipa 
  2. $ cp FridaGadget.dylib Payload/UnCrackable\ Level\ 1.app/ 
  3. $ optool install -c load -p "@executable_path/FridaGadget.dylib" -t Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1 
  4. Found FAT Header 
  5. Found thin header... 
  6. Found thin header... 
  7. Inserting a LC_LOAD_DYLIB command for architecture: arm 
  8. Successfully inserted a LC_LOAD_DYLIB command for arm 
  9. Inserting a LC_LOAD_DYLIB command for architecture: arm64 
  10. Successfully inserted a LC_LOAD_DYLIB command for arm64 
  11. Writing executable to Payload/UnCrackable Level 1.app/UnCrackable Level 1... 

上述操作肯定會使主執行文件的代碼簽名無效,因此應用不能在非越獄設備上運行。你需要替換其中的配置文件,使用配置文件中列出的證書對主執行文件及FridaGadget.dylib進行簽名。

首先,我們向包中添加自己的配置文件:

  1. $ cp AwesomeRepackaging.mobileprovision Payload/UnCrackable\ Level\ 1.app/embedded.mobileprovision\ 

接下來,我們要確保Info.plist中的BundleID與配置文件中的BundleID一致。Codesign在簽名過程中會從Info.plist中讀取BundleID信息,兩者如果不一致將會導致應用簽名無效。

  1. $ /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier sg.vantagepoint.repackage" Payload/UnCrackable\ Level\ 1.app/Info.plist 

***,我們使用codesign工具來對修改過的應用重新簽名/

  1. $ rm -rf Payload/F/_CodeSignature 
  2. $ /usr/bin/codesign --force --sign 8004380F331DCA22CC1B47FB1A805890AE41C938 Payload/UnCrackable\ Level\ 1.app/FridaGadget.dylib 
  3. Payload/UnCrackable Level 1.app/FridaGadget.dylib: replacing existing signature 
  4. $ /usr/bin/codesign --force --sign 8004380F331DCA22CC1B47FB1A805890AE41C938 --entitlements entitlements.plist Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1 
  5. Payload/UnCrackable Level 1.app/UnCrackable Level 1: replacing existing signature 

安裝及運行修改后的應用

一切準備就緒,你可以使用以下命令在設備上部署和運行經過修改后的應用。

  1. $ ios-deploy --debug --bundle Payload/UnCrackable\ Level\ 1.app/ 

如果一切順利,應用應該可以在附加IIdb的調試模式下在設備上啟動運行。Frida應該也可以正確加載到應用中運行,你可以使用frida-ps命令驗證這一點:

  1. $ frida-ps -U 
  2. PID Name 
  3. --- ------ 
  4. 499 Gadget 

現在你可以使用Frida正常測試應用程序了。

故障排除

如果你在進行上述操作時發生錯誤,你可以檢查一下配置文件和代碼簽名頭是否正確匹配,通常的錯誤都是因為兩者不匹配導致的。這種情況下你可以參考Apple的官方文檔,了解整個系統的工作原理。另外,Apple的故障排除頁面也是一個不錯的參考資料。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2014-03-31 14:50:19

Hyper-V

2014-03-31 15:13:08

Hyper-V虛擬化

2013-05-24 09:25:27

2011-08-04 17:04:42

2021-12-27 10:46:07

WebAPIserver簽名

2022-08-14 14:52:45

數據存儲實踐

2023-03-01 14:55:09

2022-05-26 08:38:10

Docker鏡像運維

2010-04-13 15:49:02

Oracle SGA

2011-11-17 10:08:12

iOSGmail

2023-01-30 08:30:09

Tomcat性能優化

2011-01-20 10:33:30

Postfix

2010-12-27 09:19:23

2009-08-15 10:40:00

2023-05-23 14:53:26

鴻蒙應用開發

2010-02-07 10:21:27

Android應用程序

2010-02-22 15:49:35

Python應用程序

2014-05-30 10:50:51

iOS捕捉簽名

2013-09-16 10:14:35

iOS7App Store

2014-05-14 00:50:18

JoyentNode
點贊
收藏

51CTO技術棧公眾號

亚洲伊人婷婷| 日韩av手机在线看| 第一页在线视频| 毛片在线网址| aiss精品大尺度系列| 夜夜嗨av一区二区三区| 国产一区二区三区黄| 男人天堂视频网| 亚洲视频在线免费| 亚洲精品国产精品久久清纯直播| 成人性做爰aaa片免费看不忠| 国产九九在线| 国产成人av电影在线播放| 668精品在线视频| 五月天免费网站| 成人线上播放| 欧美性猛片aaaaaaa做受| 91视频成人免费| 深夜影院在线观看| 精品中文av资源站在线观看| 97在线视频免费看| 免费成人深夜夜行网站| 亚洲精品国产setv| 91精品国产全国免费观看| 国产玉足脚交久久欧美| 北条麻妃在线| av亚洲精华国产精华精| 91久久中文字幕| 高清乱码免费看污| 欧美日韩亚洲一区二区三区在线| 三级三级久久三级久久18| 色婷婷精品久久二区二区密| 日韩免费小视频| 一区二区高清在线| 亚洲一区尤物| 欧美亚洲日本| 懂色av一区二区夜夜嗨| 国产精品精品久久久| 久草精品视频在线观看| 午夜精品一区二区三区国产| 亚洲女人天堂视频| 污污污www精品国产网站| 国产精品一区二区三区www| 91国产成人在线| 欧美国产激情视频| a级大胆欧美人体大胆666| 亚洲欧美自拍偷拍| 一区二区三区在线视频看| 免费毛片在线| 91视频一区二区| 国产精品久久精品国产| 99久久精品无免国产免费 | 亚洲国产精品一区在线观看不卡| 无码国产色欲xxxx视频| 福利91精品一区二区三区| 亚洲a级在线播放观看| 色婷婷久久综合中文久久蜜桃av| 国产一区二区三区久久久久久久久| 九九精品视频在线| 全网免费在线播放视频入口 | 亚洲人午夜精品免费| 日韩免费高清一区二区| 国产伦精品一区二区三区在线播放 | 色在线免费观看| 亚洲成年人影院| 精品一区二区三区无码视频| 中文字幕有码在线观看| 亚洲欧美影音先锋| 最新不卡av| 麻豆影视在线观看_| 中文字幕一区二区在线播放| 波多野结衣激情| 91精品久久久久久粉嫩| 亚洲激情图片小说视频| 欧美日韩激情四射| 国内高清免费在线视频| 亚洲成人一区在线| 欧美色图另类小说| 国产成人精品123区免费视频| 欧美中文字幕一区| 色www免费视频| 精品一区二区三区亚洲| 欧美一区二区三区视频| 中文字幕在线观看91| 国产一区丝袜| 亚洲欧美激情一区| gv天堂gv无码男同在线观看| 国产精品精品| 欧美疯狂xxxx大交乱88av| 九九视频免费观看| 夜久久久久久| 国产精品久久久久久久久久久不卡| 一级α片免费看刺激高潮视频| 国产精品综合网| 精品一区二区日本| 3p视频在线观看| 亚洲一区在线看| 日韩免费一级视频| 国产精品久久久久久妇女| 欧美一区二区三区日韩| 噜噜噜在线视频| 色喇叭免费久久综合网| 久久97久久97精品免视看| 日韩高清免费av| 午夜日韩激情| 欧日韩在线观看| 欧美在线观看不卡| 国产综合色产在线精品| 国产在线一区二区三区四区| 福利在线播放| 亚洲国产综合人成综合网站| 日韩毛片在线免费看| 久久视频社区| 亚洲欧美一区二区三区情侣bbw | 精品国产一区二区三区久久久樱花| 久久韩剧网电视剧| av黄色在线播放| 国产乱码精品一区二区三区五月婷| 久久66热这里只有精品| 国产一二三区在线观看| 欧美性xxxxhd| 91精品人妻一区二区三区四区| 欧美理论视频| 91精品国产色综合| 99久久久无码国产精品免费| 久久久不卡网国产精品二区| 丰满的少妇愉情hd高清果冻传媒| 欧美亚洲福利| 国产亚洲精品久久久久久牛牛| 久久视频免费看| 久久99久久99| 日本一区二区三区视频在线播放| 136福利第一导航国产在线| 欧美日韩国产精品成人| 少妇真人直播免费视频| 激情婷婷久久| 亚洲最大的av网站| aaa日本高清在线播放免费观看| 欧美日韩亚洲一区二区| 日韩精品国产一区| 欧美精品三级| 成人黄色大片在线免费观看| 二区三区在线播放| 色综合天天综合在线视频| av天堂一区二区| 一级毛片免费高清中文字幕久久网| 国产精品香蕉国产| 草碰在线视频| 在线观看免费亚洲| 精品国产av无码| 欧美一级一区| 久久青青草原一区二区| 色综合亚洲图丝熟| 国产网站欧美日韩免费精品在线观看| 久久久99精品| 粉嫩一区二区三区性色av| 成人在线观看毛片| 最新国产精品精品视频| 欧美激情久久久久久| 国产高清免费观看| 亚洲激情图片qvod| 人妻互换一二三区激情视频| 欧美日韩日本国产亚洲在线| 亚洲最大福利网站| 国产乱码在线| 亚洲国产精品免费| wwwxxx亚洲| 久久五月婷婷丁香社区| 日韩a在线播放| 国产欧美日韩一区二区三区四区| 欧美综合在线观看| 波多野结衣在线网站| 欧美日韩色综合| 欧美精品久久久久久久久46p| 精品一区二区成人精品| 400部精品国偷自产在线观看| 一级毛片精品毛片| 51久久精品夜色国产麻豆| 欧美日韩激情视频一区二区三区| 欧美色倩网站大全免费| 手机av在线看| 成人午夜电影网站| 日韩 欧美 高清| 日韩在线观看电影完整版高清免费悬疑悬疑 | 久久综合福利| 日韩国产网站| 久久福利视频网| 男人天堂av网| 日本电影亚洲天堂一区| 久久精品日韩无码| 岛国精品在线播放| 亚洲国产精品毛片av不卡在线| 欧美超碰在线| 国产一区在线观| 韩国精品视频在线观看| 久久久久久久激情视频| 蜜桃视频在线入口www| 7777精品伊人久久久大香线蕉的 | 亚洲成人最新网站| 国产综合色一区二区三区| 秋霞国产精品| 久久久亚洲影院| www日韩tube| 精品999在线播放| 中文精品久久久久人妻不卡| 亚洲精品久久嫩草网站秘色| 亚洲综合网在线观看| 国产一区二区在线观看视频| 又粗又黑又大的吊av| 亚洲成人tv| 欧美黑人3p| 亚洲精品视频一二三区| 国产精品一区二区三区久久| 嗯~啊~轻一点视频日本在线观看| 中文字幕在线看视频国产欧美| 天堂在线资源库| 欧美一区二区啪啪| 伊人成年综合网| 性做久久久久久久久| 可以免费看av的网址| 久久久蜜桃精品| 制服丝袜av在线| 国产在线精品一区二区不卡了 | 久久99九九| 99久久999| 69堂国产成人免费视频| 免费日韩一级片| 综合久久久久综合| 美女100%露胸无遮挡| 91网站在线播放| 在线免费看黄色片| 国产精品主播直播| 成 人 黄 色 小说网站 s色| 美女日韩在线中文字幕| 国产日韩欧美精品在线观看| 偷拍欧美精品| 亚洲一区不卡在线| 欧美三级美国一级| 美女视频久久| 欧美性生活一级片| 久久99精品久久久久久三级| 亚洲无线观看| 99久久精品免费看国产四区| 成人精品视频在线观看| 国产日韩欧美91| 欧洲亚洲精品久久久久| 国产精品av网站| 欧美日韩亚洲国产| 国产精品狼人色视频一区| 中文字幕乱码在线播放| 欧洲亚洲免费在线| 欧美18av| 国产精品av网站| 久久人人视频| 成人国产精品一区| 老司机亚洲精品一区二区| 91久久久久久久久久久久久| 玖玖玖视频精品| 粉嫩av四季av绯色av第一区| 国产一区二区三区免费在线| 亚洲a一级视频| 午夜视频一区二区在线观看| 国产精品裸体一区二区三区| 卡通动漫精品一区二区三区| 精品国产_亚洲人成在线| 欧美日韩一区二区三区四区不卡 | 国产wwwxx| 蜜臀av一级做a爰片久久| 国产高潮免费视频| 另类专区欧美蜜桃臀第一页| 三日本三级少妇三级99| 国产盗摄一区二区三区| 欧类av怡春院| 久久无码av三级| 国产第一页精品| 亚洲人成精品久久久久| 国产在线拍揄自揄拍| 精品久久久久久久久久久久| 亚洲欧美日韩一区二区三区四区| 欧美性受xxxx黑人xyx| 国产精品无码专区av免费播放| 欧美tk—视频vk| 男人av在线| www.亚洲天堂| 欧美大胆的人体xxxx| 欧洲美女7788成人免费视频| 亚洲伦理久久| 国产视频99| 色狮一区二区三区四区视频| 日本阿v视频在线观看| 亚洲综合欧美| 中文字幕色网站| 99re亚洲国产精品| 欧美aaa级片| 性欧美疯狂xxxxbbbb| 中文字幕 欧美激情| 精品黑人一区二区三区久久| 国产在线观看高清视频| 欧美成人免费全部观看天天性色| 波多野结衣久久精品| 成人日韩av在线| 亚洲春色h网| 成人在线免费观看视频网站| 日日嗨av一区二区三区四区| 久久久国产精品久久久| 久久精品无码一区二区三区| 日本妇女毛茸茸| 在线精品国精品国产尤物884a| 精品国产av一区二区| 亚洲色无码播放| 欧洲中文在线| 国产精品一区二区女厕厕| 青青草原在线亚洲| 欧美精品一区二区性色a+v| 国产精品入口66mio| 超碰人人cao| 国产精品美女一区二区| 中文字字幕在线中文| 日韩欧美第一区| 亚洲1卡2卡3卡4卡乱码精品| 欧美一级视频在线观看| 操欧美女人视频| 久久免费看毛片| 日产国产高清一区二区三区| 五月天激情小说| 一区二区在线观看视频在线观看| 中文字幕久久久久| 亚洲欧洲免费视频| a国产在线视频| 成人看片视频| 亚洲精品电影| 思思久久精品视频| 国产喷白浆一区二区三区| 久久黄色精品视频| 亚洲成人av在线播放| 污污在线观看| 亚洲xxxx3d| 91国语精品自产拍| 亚洲精品mv在线观看| 中文字幕欧美一区| 伊人网站在线观看| 在线看国产精品| 日本.亚洲电影| 日韩成人av电影在线| 久久久一二三| 我和岳m愉情xxxⅹ视频| 黑丝美女久久久| 午夜视频福利在线观看| 91精品国产91久久久久久吃药| 国产精品45p| www..com日韩| 成人av午夜电影| 精品成人免费视频| 日韩精品在线电影| 黑人巨大精品| 日韩精品久久一区| 美日韩一区二区三区| 国产精品69久久久久孕妇欧美| 欧美丰满嫩嫩电影| 91高清在线观看视频| 97超碰人人模人人爽人人看| 精品电影一区| 黄色性生活一级片| 欧美伊人久久久久久午夜久久久久| 国产区在线视频| 国产在线播放91| 欧美黄色免费| 内射中出日韩无国产剧情| 色综合天天视频在线观看| 高清中文字幕一区二区三区| 成人免费高清完整版在线观看| 最新国产精品久久久| 午夜免费福利影院| 色综合天天综合网天天狠天天| 午夜国产福利在线| 成人亚洲欧美一区二区三区| 欧美日韩一区二区高清| 香港三日本8a三级少妇三级99| 精品国产鲁一鲁一区二区张丽| 国产中文字幕在线观看| 国产主播在线一区| 激情婷婷欧美| 亚洲午夜精品久久久久久高潮| 制服丝袜国产精品| 蜜桃视频m3u8在线观看| 水蜜桃亚洲精品| 国产精品影视在线观看| 国产成人精品a视频一区| 中文字幕精品www乱入免费视频| 久久精品一级| 99久久激情视频| 亚洲精品高清在线观看| 手机看片福利在线观看| 成人有码在线播放| 99在线热播精品免费99热| 日本成人免费在线观看| 欧美精品一区二区三区很污很色的| 欧美国产日韩电影| 无码粉嫩虎白一线天在线观看 | 精品国产免费一区二区三区香蕉|