美文网首页逆向/汇编
iOS逆向之汇编基础知识

iOS逆向之汇编基础知识

作者: 小冰山口 | 来源:发表于2017-07-12 18:27 被阅读87次
先看一下计算机运行过程的示意图:
计算机运行过程的示意图

就拿我们写的App来说, 它是躺在我们手机磁盘里的, 当我们点击App的时候, 程序启动, 我们写的那些代码就会被读进内存里, 然后CPU会读取内存中的数据, 并控制终端设备, 相反, 终端设备的一些交互会由CPU转换成数据写进内存里. (你可以大致这么理解).

那么, 汇编就是研究内存与CPU交互的关键所在, 计算机不懂什么高级语言, 汇编语言, 它知道的就是0, 1, 0, 1这些高频低频的电信号, 那么我们的高级语言是怎么转换成0, 1, 0, 1这些的呢? 汇编可以说起到了承上启下的作用:
汇编

汇编语言经过编译得到机器语言, 这样计算机就能够读懂了, 机器语言经过反编译会得到汇编语言. 因为一条汇编指令就对应一条机器指令, 所以我们可以通过一系列机器指令来推断出汇编的指令.

好了, 既然硬件中最为重要的就是内存和CPU, 汇编指令大部分也是与内存和CPU相关的, 那么内存与CPU之间是怎么交互的呢?

这里就要提到总线的概念:
苹果A10处理器

每一个CPU芯片都有许多管脚, 这些管脚和总线相连, CPU通过总线跟外部器件进行交互, 总线就是一根根导线的集合. 那么总线的宽度就决定了数据传输的能力.

就像一根水管, 越粗, 流通的水量就越大. 我们可以理解为通量
总线的宽度越宽, 数据传输的通量就越大
总线分为以下三种:
总线的分类
  • 地址总线的宽度决定了CPU的寻址能力, 这是什么意思呢?

我们可以把内存理解为一个蜂巢快递的柜子, 你要找到快递的柜子, 就必须给柜子编号, 那么寻址能力就是给柜子编号的能力, 编了号, 你才能找到对应的柜子.

如果地址总线为1根, 那么寻址能力就是2^1, 要么0 , 要么1.寻址能力即为2.
如果地址总线为10根, 那么寻址能力就是2^10, 就是1024, 意思就是可以给柜子编号从0~1023.

那么8086CPU的地址总线为20根, 那么寻址能力就是2^20, 即(210)2, 即1024* 1024, 就是1M的寻址能力.

  • 那么, 数据总线的宽度决定了什么呢? 就是我刚才说的, 数据传输的通量

8086CPU的数据总线宽度是16, 可以传输的数据的长度是多少呢?
内存的最小但愿就是字节(byte), 一个字节是用8个比特位(bit)来表示的, 那么数据总线宽度为16, 就是8个bit位的2倍, 可以传输2个字节的数据.

假设现在有89D8H这一个16进制数据, 我想从内存中读取出来, 或者写到内存中去, 如果是8088的CPU, 将放电几次呢? 如果是8086的CPU, 又将放电几次呢?

首先, 1个16进制的数相当于2^4, 那么就是4个bit位, 那么两位16进制数, 对于二进制来说, 就是(2^4) * (2^4), 就是16个比特位, 8个比特位是1个字节, 那么2位的16进制数就相当于两个字节,

8088的数据总线宽度是8 , 相当于一次放电传输8个bit位的数据, 就是一个字节,
如果传输2个字节的数据, 需要放电2次

而8086的数据总线宽度是16, 所以, 它只需一次放电就可以传输2个字节的数据.

我要开始盗图来说明问题啦:

8088CPU传输2字节数据 8086CPU传输2字节数据
  • 最后一种, 控制总线的宽度决定了CPU对其他器件的控制能力, 可以有多少种控制

未完待续...

相关文章

  • iOS最新逆向进阶文章总汇!

    iOS 逆向 汇编相关iOS逆向:初识汇编[https://www.jianshu.com/p/777373e85...

  • iOS逆向之汇编基础知识

    先看一下计算机运行过程的示意图: 就拿我们写的App来说, 它是躺在我们手机磁盘里的, 当我们点击App的时候, ...

  • iOS逆向之汇编基础知识(二)

    本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java, 数据结构与算法, iOS...

  • iOS逆向之ARM汇编四

    上一篇文章地址: iOS逆向之ARM汇编三 iOS逆向系列的文章已经更新不少篇文章了,小伙伴有什么问题,我们可以交...

  • ARM汇编基础(iOS逆向)

    ARM汇编基础 在逆向一个功能的时候,往往需要分析大量的汇编代码,在iOS逆向中,ARM汇编是必须掌握的语言,本文...

  • ARM汇编基础(iOS逆向)

    ARM汇编基础 在逆向一个功能的时候,往往需要分析大量的汇编代码,在iOS逆向中,ARM汇编是必须掌握的语言,本文...

  • iOS逆向学习

    参考文章:iOS逆向开发记录:iOS逆向之手机越狱iOS逆向之介绍iOS逆向之文件系统结构iOS逆向之文件权限及类...

  • ios逆向 之 汇编

    iPhone手机使用的是ARM汇编,不同的设备CPU的架构也是不相同的。 armv6: iPhone, iPhon...

  • iOS逆向之反HOOK的基本防护

    iOS逆向之Method Swizzle iOS逆向之fishHook原理探究 iOS逆向之fishHook怎么通...

  • iOS汇编

    iOS逆向之旅(基础篇) — 汇编(一)— 汇编基础[https://www.jianshu.com/p/19a2...

网友评论

本文标题:iOS逆向之汇编基础知识

本文链接:https://www.haomeiwen.com/subject/ghubhxtx.html