利用class-dump、hopper、lua、theos、MonkeyDev、Snoop-it、Keychain-Dumper、運行時經常使用的API、Cycript、AFLEXLoader進行軟件逆向靜態分析、動態調試、代碼跟蹤。php
面向 Google,面向 GitHub,以及面向 Stackoverflow 編程而已。?html
https://github.com/hexojs/hexonode
https://www.zybuluo.com/mdedi...ios
http://www.desgard.com/iOS-So...git
phillipten
https://twitter.com/cheesecak...github
官網: GitHub - apple/swift: The Swift Programming Language
theos
看雪
LacertosusRepo
https://github.com/Desgard/iO...web
codyd51objective-c
自動unlock從這裏尋找啓發shell
iosre:
chinapyg:
dllhook
看雪論壇
https://bbs.pediy.com/thread-...
recon
jtool
jailbreak
saigon_website
https://medium.com/flawless-a...
https://blog.cnbluebox.com/
http://tech.gotinder.com/the-...
https://www.securityinnovatio...
http://chris.eidhof.nl/post/p...
https://www.swiftbysundell.co...
devzkndeMacBook-Pro:decryptedBinaries devzkn$ brew install mitmproxy
https://www.objc.io/issues/19...
https://developer.apple.com/l...
http://iphonedevwiki.net/inde...
https://academy.realm.io/post...
https://academy.realm.io/cn/p...
https://academy.realm.io/cn/l...
https://medium.com/swift-and-...
https://wizardforcel.gitbooks...
http://www.jianshu.com/p/4da5...
https://niyaoyao.github.io/ca... Reverse Engineering
http://www.jianshu.com/u/cf43...
http://blog.csdn.net/column/d...
http://pandarawen.github.io/t...
https://bbs.pediy.com/user-62...
https://www.kanxue.com/chm.ht...
class-dump-z和dumpdecrypted dumpdecrypted用於解密從AppStore上下載的App,俗稱砸殼.砸殼後,使用class-dump-z獲取OC編寫的程序頭文件(Swift編寫的程序暫時無解),有了頭文件,咱們能夠看到類名屬性和方法,爲咱們入侵工做奠基基礎.下載class-dump-z下載dumpdecrypted
Cycript Cycript是一款運行在iOS設備上強大的命令行工具,可使用OC和JS語法直接在程序運行時操做程序,能夠像瀏覽器的控制檯同樣輕鬆地獲得程序界面,執行即時代碼等.(直接在Cydia上面搜索就有)
OpenSSH OpenSSH也是一個安裝在iOS設備上的工具,可讓你的iOS設備支持遠程SSH連接,連接後的效果就是,你能夠在本身電腦的終端上操做iOS設備.上面的Cycript就是要電腦經過OpenSSH連接到手機才能操做的.(直接在Cydia上面搜索就有)
IDA IDA是一款很出名的反編譯工具,反編譯成的彙編代碼會帶上註釋和流程圖,很方便查看.Mac電腦的同窗,若是你電腦性能足夠強大你能夠選用試用版,不然建議你本身在Windows上想辦法,我用的最新MacBook Pro要反編譯完微信二進制文件須要半個多小時,並且試用版每次打開都要從新反編譯?.還有一個相似的軟件Hopper Disassembler,有興趣能夠找找.本文用的IDA6.6,下載地址就本身在百度找吧.
Theos Theos是一個iOS的越獄開發環境,提供一些宏替換和編譯配置,有了它,你就能夠很方便的編寫代碼讓後編譯而後安裝.下載地址
ldid ldid是用來給deb包簽名的工具,deb就是你越獄插件最後編譯生成的包,能夠用來提交到Cydia上的,也能夠直接拿給別人安裝.ldid能夠直接放到Theos裏面,這樣編譯的時候就順便籤好名了.
lldb lldb是一個強大的調試工具,平時你在xcode中遇到斷點後,在控制檯就能夠看到了.
debugserver debugserver是一款Xcode附帶的遠程調試工具,它運行在iOS上,能夠執行你在lldb輸入的指令同時返回執行結果到lldb上.你能夠經過lldb遠程連接iOS設備,從而對設備上的程序進行調試.debugserver和lldb這兩個工具直接能夠在Xcode環境下獲取到.
逆向工程的目的
1)分析競品的最新研究或者產品原型(包括所用的技術,所使用的框架)
2)學術/學習目的。
3)破解應用的使用權限
4)識別競品潛在的侵權行爲
逆向工程的分析工具
進行iOS逆向工程的一個關鍵就是工具的使用,工欲善其事,必先利其器。
工具分類 工具名稱
越獄工具 盤古越獄
查看文件工具 PP助手, iExplorer, iFunbox, iTool
砸殼工具 dumpdecrypted, Clutch
查看頭文件工具 class-dump
反彙編工具 Hopper, IDA Pro
調試器 Cycript, gdb ,lldb
UI分析工具 Reveal
網絡分析工具 Charles
第三部分 反編譯
一:Hopper簡介
Hopper是一款運行在Mac、Windows和Linux下的調試(os x only)、反彙編和反編譯的交互式工具。
能夠對3二、64位的MAC程序、Windows程序和IOS程序(arm)進行調試、反編譯等。
功能
1)可以分析出函數的代碼塊、變量等2)能夠生成代碼塊的控制流圖CFG3)能夠經過Python腳原本調用Hopper的其餘一些功能,使用更加靈活4)在MAC上還能夠經過GDP動態調試分析5)對Objective C的極佳的支持——可以解析出Selector、字符串和發送的消息6)反編譯,生成僞代碼7)分析快速,且佔用資源少