[TOC]
汇编发展
逆向的原理
同一段高级程序在不同框架中编译成汇编和二进制的结果是不相同,与CPU有关系;
一条二进制语言可以还原成对应的汇编语句
查看可执行文件的指令:file WeChat
不能汇编到高级:多条语句对1,多种语言对1️
常识
app执行过程
从本地磁盘加载->内存《—读写—》cpu —控制—》外设
总线
总线:一根根导线的集合
分类:地址、数据、控制总线
ff:11111111
8位 - 1字节, 8bit = 1bite
内存的基本单位是字节。
CPU中读取一个数据的流程是:1.通过地址总线查询指定位置的内存;2.通过控制总线告知操作类型;3.通过数据总线将读取到的数据传回到CPU中;
地址总线决定寻址能力:2^M
寻址能力决定使用内存条的大小,如安卓手机外加内存最大32G,即是cpu总线最大支持到32G,超过32G的部分,是无法访问的;
内存有地址,每个地址中存放着对应的数据
数据总线:数据传输速度,吞吐量
控制总线:线越多,指令越多
进制
进制定义,
二、八、十六进制之间进行直接转换;
进制运算
直接查表,不必转换成十进制;
二进制简写
形式:用8进制和16进制代替,3位二进制-》8进制;4位-》16进制
数据宽度
有无符号
控制器
运算器
寄存器 x0 - x30
pc 第一个有意义的 ,即将执行的
bl : 转移指令,修改pc的值
立即数:一个常数
mov 不能设置pc,可以设置其他寄存器
ret的现象
x开始的寄存器为64,w开头的为32位的