前言
利用class-dump、hopper、lua、theos、MonkeyDev、Snoop-it、Keychain-Dumper、运行时常用的API、Cycript、AFLEXLoader进行软件逆向静态分析、动态调试、代码跟踪。
面向 Google,面向 GitHub,以及面向 Stackoverflow 编程而已。?
https://pages.github.com/
https://github.com/hexojs/hexo
https://www.zybuluo.com/mdedi...
GITBOOK
http://www.desgard.com/iOS-So...
phillipten
https://twitter.com/cheesecak...
GITHUB
官网: GitHub - apple/swift: The Swift Programming Language
theos
看雪
LacertosusRepo
https://github.com/Desgard/iO...
BBS
iosre:
chinapyg:
dllhook
看雪论坛
https://bbs.pediy.com/thread-...
recon
package
blog
jtool
jailbreak
saigon_website
https://medium.com/flawless-a...
Video
antire
iosre
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)、反汇编和反编译的交互式工具。
可以对32、64位的MAC程序、Windows程序和IOS程序(arm)进行调试、反编译等。
功能
1)能够分析出函数的代码块、变量等
2)可以生成代码块的控制流图CFG
3)可以通过Python脚本来调用Hopper的其他一些功能,使用更加灵活
4)在MAC上还可以通过GDP动态调试分析
5)对Objective C的极佳的支持——能够解析出Selector、字符串和发送的消息
6)反编译,生成伪代码
7)分析快速,且占用资源少
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。