目录
逆向杂谈
因为我大学期间开发游戏外挂,对于逆向的强大有过不小的认识。能让别人的代码照着自己的思路去走,感觉是蛮优秀的一件事
对于iOS逆向,大多数iOS工程师都听说过。只是因为不知如何入门,所以一直觉得它很神秘很难。其实iOS逆向没想象中那么难,以前只是单纯凭借C++基础/数据结构去逆向一个大型网游。而现在我们有过正向iOS开发经验,逆向App,难道可想而知降了多少。
正常的开发是从代码->UI/功能,逆向就是从UI/功能反推回代码
嘿嘿,这段时间断断续续学了不少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
-
隐私数据加密,防止被静态分析
-
代码混淆及浅谈上架马甲包的经验
-
-
项目篇
-
微信抢红包
-
钉钉远程打卡
-
后续的文章会慢慢的分享出来,目的只是为了扎实基础,技术分享