2016年1月13日
摘要: "You can specify that an imported variable be mutable—that is, read-write— by applying the__blockstorage type modifier."文档已经清楚说明了它的作用。反汇编就是要看个究竟。__blo... 阅读全文
posted @ 2016-01-13 03:36 bbqz007 阅读(1357) 评论(1) 推荐(0)
  2016年1月12日
摘要: 不依靠 IDA pro 等工具,也能获知所有类的信息。 阅读全文
posted @ 2016-01-12 12:51 bbqz007 阅读(849) 评论(0) 推荐(0)
  2016年1月11日
摘要: objc的__strong和__weak, 在反汇编中是怎么个实情?请看。 阅读全文
posted @ 2016-01-11 11:05 bbqz007 阅读(1688) 评论(0) 推荐(0)
  2016年1月10日
摘要: 介绍objc伪指针TaggedPointer,怎么个伪?请看。 阅读全文
posted @ 2016-01-10 18:46 bbqz007 阅读(2871) 评论(0) 推荐(1)
  2016年1月9日
摘要: 我们先来定义三个NSString-(void) testNSString{ NSString* a = @"abc"; NSString* b = [NSString stringWithUTF8String:"abc"]; NSString* c = [@"ab" stringB... 阅读全文
posted @ 2016-01-09 17:19 bbqz007 阅读(1300) 评论(1) 推荐(0)
  2016年1月7日
摘要: 在分析objc_msgSend之前,先来搞清楚另一个问题。函数是什么?可能会答 void foo(void) {} 像这样就是一个函数。或者函数包括函数原型和函数定义,是一段执行某样功能的机器代码。调用函数时必须要准备两个要素,函数原型和函数入口地址。函数原型的作用是什么?答声明了函数调用的方式。不... 阅读全文
posted @ 2016-01-07 16:00 bbqz007 阅读(2577) 评论(0) 推荐(1)
  2016年1月6日
摘要: 大意就是我淘钱买了一本题集,觉得书中有些地方作者太随意,例子错得不严谨,一度阻碍阅读。作为消费者不得不拿出来说一说。本文本着不迷信,实事求是精神。本文编排如下:1.引用书中原例2.主观分析例子有错3.代码运行验证其错4.修正例子代码5.另一个求值代码现在开始。下面是书中原例引用:求重叠区间个数给定多... 阅读全文
posted @ 2016-01-06 07:56 bbqz007 阅读(1277) 评论(0) 推荐(1)
  2016年1月1日
摘要: 上一篇介绍了gcc对成员函数指针做了thunk的处理,本篇介绍vc对成员函数指针如何处理,还有动态绑定相关的处理。 同样用回上一篇的例子: struct point {float x,y;}; struct obj { virtual ~obj {} void foo(int) {} void fo 阅读全文
posted @ 2016-01-01 12:03 bbqz007 阅读(1201) 评论(0) 推荐(1)
  2015年12月30日
摘要: 在gcc平台下,成员函数指针是一个包含两个指针的结构体。 阅读全文
posted @ 2015-12-30 10:44 bbqz007 阅读(1747) 评论(3) 推荐(1)
  2015年12月29日
摘要: 上一篇介绍了vc(windows)平台在x64体系当中,c函数的传参方式。本篇将要介绍gcc(类linux,mac)平台在x64中,c函数是如何传参的。为节约时间和篇幅,首先来定义一个有十个参数的函数,参数类型包罗了内嵌类型:int foo(char c, short s, int i, long ... 阅读全文
posted @ 2015-12-29 17:21 bbqz007 阅读(2597) 评论(0) 推荐(0)