005--指针&MachO文件

##指针

*指针自增、自减的结果,其实就是指针指向的数据类型**宽度**决定的!

*指针加上或减去一个整数的结果,其实就是指针指向的数据类型**宽度**决定的!

*指针求差,得到的结果是整形,其结果和指针指向的数据类型**宽度**有关!

*这也就是指针的特点! 它的运算单位 是数据类型的宽度!

关于汇编,重点.只能是带大家入门.

##逆向原理

**动态调试**通过界面调试Cycript\Xcode LLDB!

**静态分析**利用我们之前学习的汇编代码,分析三方APP的源码!

**代码注入**注入的其实是动态库!HOOK代码 改变原来程序的执行流程!

**重签名**  安装在非越狱手机上面

##class-dump

$ class-dump -H MachO文件Path -o 头文件路径

##MachO文件

官方介绍总共有11种格式! 是 Mach Object的缩写,是Mac\iOS 上用于存储程序,库的标准格式!

常见的格式:

*1.可执行文件 

*2.objcet

*.o 文件(目标文件)

*.a 静态库文件.其实就是N个.o文件的集合

*3.DYLIB: 动态库文件

*dylib

*framework

*4.动态连接器

*5.DSYM 

###动态库共享缓存

为了提高性能,系统的动态库文件都存在了动态库共享缓存里面!

###动态加载器(dyld)

*dynamic linker

*dynamic loadel

###拆分二进制文件

经常用于整合静态库

**瘦身**

```

$ lipo 002--可执行文件 -thin armv7 -output macho_armv7

$ lipo 002--可执行文件 -thin armv64 -output macho_armv64

```

**整合**

```

$ lipo -create macho_armv7 macho_arm64 -output machO_v7_64

```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针&MachO文件 指针 指针自增、自减的结果,其实就是指针指向的数据类型宽度决定的! 指针加上或减去一个整数的...
    lukyy阅读 3,262评论 0 0
  • 指针&MachO文件 指针 编译器决定了指针不能做乘法和除法运算! 指针自增、自减的结果,其实就是指针指向的数据类...
    Colin_狂奔的蚂蚁阅读 3,332评论 0 1
  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 14,150评论 3 42
  • 静态库 静态库动态库简介 .a 静态库:被编译好的二进制文件 静态库:.a, .framework 动态库: .d...
    小梁同学阅读 3,068评论 0 0
  • 文 / 林浣溪 1 再次拉开尘封已久的抽屉时,眼前摆放整齐的只有三样东西:笔记本、钢笔、不倒翁。 木诺言从没想过五...
    林浣溪阅读 3,468评论 3 6