你的应用正在被其他对手反向工程、跟踪和操作!你的应用是否依旧裸奔豪不防御?
郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说,进入正题。
今天总结一下为Hack而做的准备工作。
一、常用的命令和工具
继续阅读 »
1、字符串常量
NSString * s = @"test";
NSLog(@"s:%d", [s retainCount]); // -1或2147483647(即UINT_MAX,Maximum value an 'unsigned int')
继续阅读 »
一、技术概览
1、Core Data功能初窥
对于处理诸如对象生命周期管理、对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案。它有以下特性。
对象图-Object Graph的解释:在面向对象编程中,对象之间有各种关系,例如对象直接引用另外的对象,或是通过引用链间接的引用其他对象,这些关系组成了网状的结构。我们把这些对象(和它们之间的联系)成为对象图。对象图可大可小,有繁有简。只包含单个字符串对象的数组就是一个简单的代表;而包含了application对象,引用windows、menus和相关视图对象、其他对象这样的结构就是复杂对象图的例子,这是在说mainwindow.xib。
继续阅读 »
Objective-C是一门简单的语言,95%是C语言。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它的核心是消息分发。
runtime是开源的。可以去下载:http://opensource.apple.com/tarballs/objc4/objc4-437.1.tar.gz。
runtime是由C语言实现的。
runtime的两个版本。
继续阅读 »
我们可以在Objective-C运行时将一个类中的一个方法,动态的替换为该类中的另一个方法。并且在替换后的方法中,依然可以调用以前的方法。
```
import
void MethodSwizzle(Class aClass, SEL orig_sel, SEL alt_sel)
{
Method orig_method = nil, alt_method = nil;
// First, look for the methods
orig_method = class_getInstanceMethod(aClass, orig_sel);
alt_method = class_getInstanceMet
继续阅读 »
说明
类别名可以随便取。
类别是一个类,它是添加了新功能的现有类。
使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。
类别可以使类的实现分散在多个文件中。
类别中不能有变量,类别中没有放变量的位置。
如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。
同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方法会被调用是不确定的。
不建议在类别中覆盖类中的方法,因为在类别中的方法不能调用superClass的方法(因为没有元数据支持)。
类别方法不能覆盖于同一个类的其它类别中的方法。因为无法预知他们的加载优先顺序,就可能在编译时出错。
对类库的类别方
继续阅读 »
很多使用Mac OS X Mavericks(10.9)的人都反映说,系统开关机的速度变慢了很多,在Macbook Pro和Macbook Air上都是如此。
最好的解决问题的方案是清除kext缓存。kext是Mac OS X的一个内核扩展,清理它可以提升系统启动和关闭的速度。
继续阅读 »
相信大家对快捷键的使用并不陌生,不仅使工作更加的方便快捷还大大提高了工作效率。这里有一组快捷键组合可以快速转换"简体"、"繁体"字体。
注:对系统原生应用有效。如文本编辑,Pages等。组合键只对Mac OS X 10.8以上系统有效。
继续阅读 »
在使用iOS 7.1 SDK开发的时候,有一个ShareViewController,在viewDidLoad中需要添加一个UITextView控件,并且已经设置好了一段比较长的文本。代码如下:
- (void)viewDidLoad
{
CGRect rcShareTextView = CGRectMake(0, 0, 290, 150);
self.shareTextView = [self defaultShareTextView];
_shareTextView.frame = rcShareTextView;
[self.view addSubview:_shareTextView];
}
继续阅读 »
一、按比例缩放
首先说按比例缩放,这是在Interface Builder中无法设置的内容。而在代码中,使用NSLayoutConstraint类型的初始化函数中的multiplier参数就可以非常简单的设置按比例缩放。同时也可以设置不同NSLayoutAttribute参数来达到意想不到的效果,比如"A的Width等于B的Height的2倍"这样的效果。
继续阅读 »