前言
之前一直采用Clutch对ipa包进行砸壳,后来发现Clutch在某些iOS版本下砸壳会失效,故而放弃了Clutch而采用dumpdecrypted。本篇文章就是记录用dumpdecrypted砸壳的过程以及其中的注意点。
准备工作
砸壳需要的东西:
- dumpdecrypted
- 越狱的iOS设备
- OpenSSH(Cydia)
- iFile(Cydia)
- Cycript(Cydia)
- XCode
- Command Line Tools
之前一直采用Clutch对ipa包进行砸壳,后来发现Clutch在某些iOS版本下砸壳会失效,故而放弃了Clutch而采用dumpdecrypted。本篇文章就是记录用dumpdecrypted砸壳的过程以及其中的注意点。
砸壳需要的东西:
- dumpdecrypted
- 越狱的iOS设备
- OpenSSH(Cydia)
- iFile(Cydia)
- Cycript(Cydia)
- XCode
- Command Line Tools
最近在研究AFNetworking源码的过程中碰到了很多处地方用到了weakSelf
和strongSelf
。依据自己之前的理解,正常情况下使用weakSelf
是为了避免发生循环引用,而使用strongSelf
是为了避免方法还没有执行完成self已经被释放从而导致崩溃。不过为何在方法执行完成之前无法确保self不被释放却不是很明白,于是乎,自己花了些时间研究了一下。
self是类的隐藏参数,在类方法中self指向当前调用方法的类,在实例方法中指向当前调用方法的类的init方法族生成的实例。更准确来说,在类方法中self是const Class self
,在实例方法中self是Person const* self
(以Person类举例)。事实确实如此么?来验证一下。