hook思路
- 界面入手, 定位UI
1.最好的是View Debug
2.第一次有可能挂载失败 -> 重新运行
- 导入hank.cy
1.HKCurrentVC() -> 找到当前视图
1.NewSettingViewController
2.找到头文件
command + t class-dump -H WeChat -o Headers/ -> 导出可执行文件的头文件 用Sublime Text打开头文件的文件夹 找 @interface WCTableViewManager
3.地址.dataSource -> 数据源
WCTableViewManager <WCTableViewManager地址>.tableView -> 查看该管理器的tableView对象 <WCTableViewManager地址>.sections -> 查看sections
4.判断该界面是不是我们要找的界面
<tableView的地址>.backgroundColor = [UIColor redColor] -> 改背景颜色来验证
5.从头文件里找我们要Hook的参数
- 发现很多界面都有用到WCTableViewManager, 我们必须确定只有hook设置界面的
1.choose(WCTableViewManager) -> 全局查找该对象,看看初始化了多少个
2.查找该对象的响应链来判断哪个是我们要找的
1.<地址>.tableView.nextResponder.... -> 此处可以一直.nextResponder来往上查找
image.png
3.图片资源可以直接拖到IPA包里
- %new 方法建议加上前缀 SY_......来放置以后有可能的冲突
越狱概念
通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限ROOT权限.
iOS 安全启动链
image.png
完美越狱 & 非完美越狱
- 完美越狱: 就是破解iOS系统漏洞之后,每次系统重启都能自动调用注入的恶意代码,达到破坏安全验证,再次获得ROOT权限。
- 非完美越狱: 越狱系统后,并没有完全破解安全链,有部分信息或功能应用不佳;比如;关机以后必须去连接越狱软件来引导开机;或者重启会导致越狱的失效;这样的越狱称为“不完美越狱”。
两大主流越狱工具:
//这里本来是MarkDown语法, 被简书拒了, 说是不能够打开外部链接,惹不起惹不起 [uncOver](https://unc0ver.dev/) [Odyssey需要断网](https://theodyssey.dev/)
- 需要安装的插件 OpenSSH
国内软件源
image.png
还有一个比较重要的软件源如下: 安装OpenSSH需要添加
//这里本来是MarkDown语法, 被简书拒了, 说是不能够打开外部链接,惹不起惹不起 https://apt.bingner.com/