逆向方法反汇编(五)

局部变量属于强引用。汇编代码:

#mark-1: 看汇编objc_msgSend 这里结构是

oc中调用: [Animal alloc]

objc_msgSend(Animal.class,@selector(alloc));

根据汇编也就是x0寄存器也类,x1寄存器是sel

#mark-3:

  • x0:animal对象
  • x1:nil  (也就是首页指针指向nil,释放原来的对象)

注意:objc_storeStrong

所有OC中使用Strong修饰的对象 实际调用的函数是objc_storeStrong,代码实现如下


上面的一些是动态分析,如果是在真实的项目中决定是非常的复杂,所有动态分析很麻烦,可以直接用ida工具来分析

查看ida分析和上面动态分析是一样结果,只是它的更加详细 函数名也一起展示了。

问题:看上图 地址都是text:000000010000….    中间都是一个1 (后面8个0),为什么?

0x100000000 是4个G的虚拟size  (也就是text是从0x100000000开始)

问题:ida是怎么知道 这个地址的函数名 类名等?

主要是通过mach0文件分析对应查找, 如图

发表回复

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud