解開IPA文件的灰沙-通過靜態分析工具瞭解IPA實現

在7月27日的iOS/Android訓練營大會上,友盟iOS Team Leader張超帶來主題演講“解開IPA文件的灰沙-通過靜態分析工具瞭解IPA實現”。針對IPA資源文件以及圖片處理,張超提出,分析網絡數據最核心的就是抓包和解包,並且針對這一話題進行了闡釋。
張超:現在一個IPA在iOS生態系統中的生存狀態是怎麼樣的?1.IPA被破解發到越獄市場。2.IPA被開發者簡單加密,再被破解,再流到越獄市場。3.如果IPA得到足夠有效的加密,會大大提高避免被破解,被逆向的機率。

相關介紹(ppt下載):http://blog.csdn.net/shiningxyy/article/details/7820809
【幻燈片內容綱要】:

  • 1. iOS DevCampProduced by CSDN
  • 2. 揭開IPA的灰紗 通過分析工具瞭解App實現技巧 友盟 張超 微博:iAladdin 電郵:[email protected]
  • 3. 什麼是IPA?“ipa後綴的文件是iOS系統的軟件包,全稱爲iPhone application archive.通常情況下,ipa文件都是使用蘋果公司的FairPlay DRM技術進行加密保護的。每個IPA文件都是ARM架構的可執行文件以及該應用的資源文件的打包文件,只能安裝在iPhone,iPod Touch 或iPad上。該文件可以通過修改後綴名爲zip後,進行解壓縮,查看其軟件包中的內容。 ”
  • 4. IPA的物理結構 iTunesMetadata. xxx.AppiTunesArtwork plist
  • 5. IPA的文件分類
  • 6. 資源文件 [resource]
  • 7. PNG NormalizerUIKit-Artwork-Extractorhttps://github.com/0xced/UIKit-Artwork-ExtractorCrunchhttp://www.pragmaticcode.com/crunch/pngcrush 命令pngcrush -revert-iphone-optimizations -q OptimizedPNG.png RevertedPNG.pngRuby實現https://github.com/swcai/iphone-png-normalizerPython實現http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C實現
  • 8. pngcrush
  • 9. UIKit-Artwork-Extractor
  • 10. Crunch
  • 11. 原理及其他其他語言實現Ruby實現https://github.com/swcai/iphone-png-normalizerPython實現http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C實現原理資料http://iphonedevwiki.net/index.php/CgBI_file_format
  • 12. PVR/PVRTC/PVR.CCZ TexturePacker -- pvr/pvrtc/pvr.ccz http://www.codeandweb.com/texturepacker/ quickpvr -- pvr/pvrtc http://www.limbic.com/quickpvr.html
  • 13. TexturePacker
  • 14. quickpvr
  • 15. App中的數據 運行時產生Bundle內 沙箱內 網絡交互
  • 16. 網絡數據 [network]
  • 17. Charles
  • 18. Charles原理在網絡交互中,通過充當代理的角色,從而獲取到所有的請求和返回值,作爲中間層來實現抓包的過程。- 模擬器配置- 真機配置
  • 19. HTTP請求抓取
  • 20. HTTPS請求抓取
  • 21. 特殊網絡模擬
  • 22. IPA狀態 [ipa’s status]
  • 23. 自簽名工具
  • 24. IPA的狀態
  • 25. 沙箱數據 [sandbox] Artwork iTunesMetadata xxx.app .plist 6A2FCEEC-591E-4B85-B625-26F1AA3B2A4E Documents Library tmp
  • 26. 常用命令catfile
  • 27. 二進制文件 [binary] 靜態分析工具 otool nm strings class-dump系列 運行時分析工具 Cycript 逆向分析工具 Hopper IDA Pro
  • 28. otool
  • 29. nm
  • 30. strings
  • 31. Class-dump系列
  • 32. CycriptSSH到iOS系統中安裝:a.通過Cydia安裝,搜索Cycript安裝b.dpkg -i cycript_0.9.450-1_iphoneos-arm.deb使用:a.# cycriptb.# cycript -p processID配合console
  • 33. IDA Pro
  • 34. iOS App
  • 35. Hopper
  • 36. iOS App
  • 37. Mac App
  • 38. 寫在最後
  • 39. 參考資料Books-《Binary Hacks》-《IDA Pro 權威指南》-《Hacking and Securing iOSApplications》-《iOS Hacker’s Handbook》
  • 40. 參考資料URL- http://iphone.freecoder.org/classdump_en.html- http://www.cycript.org- http://iphonedevwiki.net/index.php/CgBI_file_format
  • 41. 聯繫方式Email: [email protected]: iAladdinWeibo: iAladdin
=================================
1、提取資源文件
Crunch app - Extract the resource files of iOS applications. Easily.
地址:http://www.pragmaticcode.com/crunch/ (15天試用期)


UIKit-Artwork-Extractor   提取資源文件(很強大)
https://github.com/0xced/UIKit-Artwork-Extractor
Ruby實現
https://github.com/swcai/iphone-png-normalizer
Python實現 
http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizer


TexturePacker一個不錯的圖片組合工具 
http://www.codeandweb.com/texturepacker


Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器.它允許一個開發者查看所有連接互聯網的HTTP通信.
http://www.charlesproxy.com/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章