逆向 - arm64汇编 - 第一天

1. 汇编语言种类

  • 8086汇编(8086处理器是16bit的CPU)
  • Win32汇编
  • Win64汇编
  • ARM汇编(嵌入式、Mac、iOS)
    ......

首先介绍一个概念:指令集:RISC(精简指令集), CISC(复杂指令集)
指令集,存储在cpu内部的小程序。传统pc机大多基于x86架构(8086、80386、80486、奔腾、酷睿...),手机基本都是基于arm,不用x86主要是因为x86使用的CISC功能很强大,但是太耗电,自然又易发热,而arm基于 RISC,大瘦身,但是运算力稍差,所以现在8核手机都不见得跑得过x86双核。
iphone 手机用到的就是 ARM 汇编

架构 设备
armv6 iphone, iphone2, iPhone3G, iPod Touch 第一点第二代
armv7 iphone3GS, iphone4, iPhone4s, iPad, iPad2, iPad3,iPad mini, iPod touch 3G, iPod Touch 4
armv7s iPhone5, iPhone5c, iPad4
arm64 iPhone5s 以后 iPad Air, iPad mini2 以后

2. CPU 工作原理

  • 2.1 总线(Bus)
  • 地址总线(AB)
    根据总线宽度,来决定寻址能力 (2^n bit)
  • 数据总线(DB)
    根据总线宽度决定吞吐量 (数据传输速度 n bit)
  • 控制总线(CB)
  • 2.2 寄存器(Register)
    • arm64 拥有31个64位 通用寄存器 x0 - x28, fp, lr, sp
    • 其中 w0 - w28x0-x28对应的低32位
    • pc 寄存器(program counter)

指令指针寄存器, CPU 根据 pc 中存储的地址, 决定下一步要读取的指令

  • bl 指令

转移指令, 完成 CPU 执行跳转功能

3. xcode 调试汇编代码常用命令

打印地址: p + 指针
单步执行: ni
进入跳转: s
查看内存: Debug -> Debug Workflow -> view memory 或者shift+cmd+M

你可能感兴趣的:(逆向 - arm64汇编 - 第一天)