ctinusDev's Blog

Development Sharing


  • 首页

  • 归档

  • 标签

iOS私有方法加密混淆

发表于 2018-02-25 | 阅读次数
背景因为苹果审核禁止调用私有方法,在开发过程中很多的有用的私有方法都不能直接使用。那有没有办法可以绕开苹果对私有方法的审核呢? 首先我们猜测下苹果的审核方式:1、通过扫描二进制文件,mach-O都保存有所有的代码中的方法名字符串,如果直接明文调用私有方法,扫描二进制文件就会被发现。2、通过运行时的方 ...
阅读全文 »

Mach-O文件介绍之loadcommand

发表于 2017-08-27 | 分类于 iOS | 阅读次数
上一篇博客介绍了mach_header相关内容,Mach-O文件介绍之mach_header。这篇博客主要介绍Mach-O 的加载命令。 Load commandMach-O文件的主要功能在于加载命令(load command)。加载命令紧跟在文件头之后,文件头中的两个字段——ncmds和sizeo ...
阅读全文 »

Mach-O文件介绍之ASLR(进程地址空间布局随机化)

发表于 2017-08-20 | 阅读次数
ASLR 介绍ASLR,地址空间布局随机化,是一种避免app被攻击的有效保护。 进程在自己私有的虚拟地址空间中启动。传统的方式,进程每次启动时都采用固定的可预见的方式。这意味着某个给定的程序在某个给定架构上的进程初始化虚拟内存镜像都是基本一致的。而且在进程正常运行的生命周期中,大部分内存分配的操作都 ...
阅读全文 »

Mach-O文件介绍之mach_header

发表于 2017-08-20 | 分类于 iOS | 阅读次数
Mach-O文件介绍之mach_headerMach-O是OSX和iOS上的可执行二进制文件格式:Mach-Object。使用Mach-O(Mach对象)文件实现内核扩展,命令行工具,应用程序,框架和库(共享和静态)。 Mach-O文件具有以下数据区域(完整格式在OS X ABI Mach-O文件格 ...
阅读全文 »

iOS搭建Socket服务器的相关方法

发表于 2017-08-13 | 分类于 iOS | 阅读次数
iOS网络编程层次iOS网络编程层次结构也分为三层: Cocoa层:NSURL,Bonjour,Game Kit,WebKit Core Foundation层:基于 C 的 CFNetwork 和 CFNetServices OS层:基于 C 的 BSD socket Cocoa层:是最上层的 ...
阅读全文 »

为什么不能runtime创建JSExport类型的Protocol?

发表于 2017-08-05 | 分类于 iOS | 阅读次数
JavaScriptCore引入后,js调用OC的方法有了新的实现方式。让一个类遵循一个JSExport的协议,将想要暴露的方法在JSExport协议中声明,即可在js中直接调用到OC的方法。例如下面的代码: 123456789101112131415161718192021222324252627 ...
阅读全文 »

runtime打印项目中Class的相关信息

发表于 2017-08-05 | 分类于 iOS | 阅读次数
打印Class如果想要打印项目中所有的类包括系统类,可以使用objc_getClassList方法实现具体代码如下: 1234567891011121314151617181920212223242526{    int numClasses;    Class * classes = N ...
阅读全文 »

Effective Objective-C 总结

发表于 2017-07-30 | 分类于 iOS | 阅读次数
Effective Objective-C 总结 1、类的头文件中尽量少引入其他头文件,有可能的话使用@class代替 2、字面量语法在可读性上优于与之等价的方法,但是要做好数据校验,不能将nil数据直接存入其中。例如: 1NSArray *arr = @[@"1",@"asd",nil]; 3、 ...
阅读全文 »

iOS文件缓存

发表于 2017-07-29 | 分类于 iOS | 阅读次数
iOS文件缓存Plist文件可以直接映射为NSDictionary和NSArray,是使用非常广泛了一种文件格式。 iOS项目开发过程中我们要用Plist文件保存一些界面的开启次数、判断用户是否是第一次进入界面、保存用户的一些配置信息等等。 接下来我们先聊聊Plist文件读写可能遇到的一些问题。 ...
阅读全文 »

ARC下野指针常见写法

发表于 2017-03-03 | 阅读次数
野指针的bug应该算是最难查的bug之一了,因为其随机性强,且难以定位,下面就终结了几类常见的高概率野指针写法。 1、对象释放后,指针没有置空。常见写法1:1@property (nonatomic, unsafe_unretained) id obj; 问题原因:unsafe_unretained ...
阅读全文 »
12
ctinusDev

ctinusDev

iOS Developer

13 日志
1 分类
19 标签
© 2018 ctinusDev
由 Hexo 强力驱动
主题 - NexT.Pisces