目录
逆向杂谈
因为我大学期间开发游戏外挂,对于逆向的强大有过不小的认识。能让别人的代码照着自己的思路去走,感觉是蛮优秀的一件事。所以带着好奇心去研究了iOS逆向。对于iOS逆向,很多人只听过《IOS应用逆向工程》,单纯通过书籍还有杂乱的博文,想要入门还是挺难的。其实iOS逆向没想象中那么难,只要我们找到方法。你想想【游戏外挂】只是单纯凭借C++基础/数据结构去逆向一个大型网游,而现在我们有过正向iOS开发经验,逆向苹果App,难度可想而知降了多少。
我们正常的开发是从代码->UI/功能,逆向就是从UI/功能反推回代码。这段时间断断续续学了不少iOS逆向的知识,准备好好整理一遍,分享出来,如有错误欢迎指正!
学习iOS逆向的用处
我简单梳理了一下,iOS逆向能做的事~~
- 了解iOS的底层实现
- 破解别人的软件,实现各种变态的功能(获取隐私数据、微信抢红包、钉钉打卡等等...)
- 保护自己的代码,隐藏隐私数据,隐藏函数
- 上马甲包
- 分析别人的代码架构 - 这个需要你有一定的架构知识
听起来好像很屌样子
学习路线
-
基础篇
-
汇编 (这块比较枯燥,如果你只是想简单了解逆向的话,可以先跳过后面觉得需要再看)
-
基础知识掌握(Macho文件基础、ASLR、App的签名机制)
-
-
进阶篇
-
对第三方App重签名的方法
-
连载中...
-
-
常用工具的使用(class-dump、restore-symbol、lldb)
-
如何向第三方App注入自己的代码
-
HOOK(method_exchange、fishHook、logos)
-
-
越狱篇
-
越狱环境下的配置SSH,并支持USB调试
-
Cycript的使用
-
砸壳
-
Theos插件的开发
-
LLDB调试
-
-
防护篇
-
Theos插件的原理及防护手段
-
LLDB的原理及防护手段
-
如何调用系统级别函数进行反调试
-
如何防护Monkey
-
隐私数据加密,防止被静态分析
-
代码混淆及浅谈上架马甲包的经验
-
-
项目篇
-
微信抢红包
-
钉钉远程打卡
-
后续的文章会慢慢的分享出来,目的只是为了扎实基础,技术分享