汇编语言与逆向技术基础 一、汇编语言基本概念
汇编语言与逆向技术基础 一、汇编语言基本概念
知识点
- 计算机编程语言
- 虚拟机概念
- 数据表示方法
- 字符集
- 字节序
计算机编程语言
机器语言、汇编语言、高级语言
机器语言
早期
汇编语言
- 助记符 代替二进制操作码
- 地址符号 或 标号 代替二进制 地址
高级语言
自然语言、数学语言
高级语言与汇编语言和机器语言之间是一对多的关系
一条高级语言编译后,对应多条机器码
如果一种语言的源代码可以在多种计算机系统上编译运行,那么就说这种语言是可移植的。
C++可以嵌入汇编语言
- 折中方案
- 丧失可移植性
嵌入式系统
- 内存空间小,汇编语言可以节省内存空间
实时系统
仿真、监控等实时系统要求精确计量时间和实时响应
高级语言不能完全控制编译器生成的机器码
汇编语言可以完全控制机器码
游戏机
- 大小、运行速度。
- 专用硬件
- 手动进行游戏速度优化
驱动程序
底层操作
- 提高硬件、操作系统、应用程序的交互
- 汇编语言可以优化应用程序与特定硬件、特定操作系统的交互效果
逆向分析
- 软件调试
- 漏洞挖掘
- 计算机病毒分析
- 软件知识产权保护
虚拟机
概念
抽象出计算机软硬件之间的相互关系,对于每个语言层次,想象成一台假想的计算机
层次
从高到底:高级语言、汇编语言、操作系统、指令集体系结构、微结构、数字逻辑
执行方式
- 翻译方式:整体翻译
- 解释方式:逐条翻译
数据表示方法
二进制、八进制、十进制、十六进制
二进制数
- 最左边的为最高有效位MSB
- 最右边的为最低有效位LSB
数据存储单位
- 字节 byte 8bit
- 字 word 16bit
- 双字 doubleword 32bit
- 八字节 quadword 64bit
字符集
Unicode ASCII
字节序
大端模式 小端模式
大端字节序列(网络通信中)
最高位存在最低位上
如127.0.0.1 -> 7F 00 00 01
小端字节序列
最低位存在最低位上
如127.0.0.1 -> 01 00 00 7F
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
GiscusGitalk