在iOS 6中,以前工作正常的访问通讯录的iPhone程序可能会出错,现象是程序启动时不提醒用户是否允许程序访问通讯录,同时在“设置->隐私->通讯录”中看不到你的程序。另外,对通讯录进行操作的代码会报类似于以下消息的错误:
Could not compile statement for query (ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties):
SELECT ROWID, Name, ExternalIdentifier, Type, ConstraintsPath, ExternalModificationTag, ExternalSyncTag
继续阅读 »
这个工具是我之前在做ios逆向分析的时候,随手写的一个小工具,虽然现在已经不怎么维护了,不过这里还是拿出来简单介绍下吧。。
当初写这个工具的背景主要是因为要在越狱的ios系统上,做些插件开发,所以要分析一些私有api的调用规则,以及传参情况。
虽然可以通过ida进行静态分析,也可以做到,但是有些需求毕竟还是需要动态分析来的方便,而且那个时候ida的arm f5插件还没流出,
只能通过人工逆向arm来分析,工作量还是挺大的。
因此就萌生了能否动态去追踪ios系统上对oc代码的调用逻辑呢,逼近objc是基于runtime的,总归是有些办法的。。
一开始,我的重点是在objc_msgSend这个接口,毕竟所有oc调用,最后都会路由
继续阅读 »
在iOS系统,NSString可能是最常用的对象,很多用法跟其他语言不一样。
字符串对象NSString
使用格式创建字符串
+ (id)stringWithFormat:(NSString *)format...
- (id)initWithFormat:(NSString *)format...
继续阅读 »
Runtime是什么
Runtime是一个c和汇编写的动态库(感谢Lision的指正),它就像一个小小的系统,将OC和C紧密关联,这个系统主要做两件事 :
1、封装C语言的结构体和函数,让开发者在运行时创建、检查或者修改类、对象和方法等等。
2、传递消息,找出方法的最终执行代码。
继续阅读 »
iOS开发中和服务器打交道除了数据请求外,还有文件的上传及下载,OC中文件上传及下载,笔者就不多说了,今天来看下Swift中该如何进行文件的下载及上传,同样笔者做下简单封装,方便在其他地方调用.
继续阅读 »
iOS开发中我们和服务器打交道用到最多的就是数据请求,如果你使用过OC进行开发,相信AFNetworking这个库你并不陌生,今天我们来聊聊swift中的网络请求具体该怎样操作
首先给大家介绍下Alamofire,Alamofire是出自AFNetworking开发人员之手的一个基于swift语言的网络操作库,功能类似于AFNetworking,下面我们看下该怎么样使用Alamofire进行网络请求.
继续阅读 »
在做即时通讯类APP中,经常需要在tabBar上显示数字角标几小红点,这时系统TabBarController已经不能满足需要了,需要自定义TabBarController,OC 自定义TabBarController相信大家都很熟悉,今天笔者来聊聊Swift中自定义TabBarController的实现,笔者顺便做下封装,方便调用.
继续阅读 »