关于x86 binaries与binary analysis核心概念的指代问题问询
关于x86二进制文件与二进制分析对象的解答
1. x86 binaries的定义
日常提及的**x86 binaries(x86二进制文件)**是同一个内容的两种表现形态,二者没有本质区别:
- 存储在磁盘、内存中给CPU读取执行的形式是
01001100110010001010这类01二进制序列,每一段固定长度的二进制串都对应x86指令集定义的一条操作指令 - 转换为人类可读形式时,就会呈现为
jmp aa这类汇编指令,一条汇编指令和对应的二进制编码是严格一一对应的,比如x86架构下短跳转指令jmp的编码前缀固定为0xEB
2. 二进制分析的实际分析对象
大家常说的binary analysis(二进制分析),原始输入是二进制文件的纯01序列,但实际分析流程中不会直接对01串做逻辑分析:
- 所有分析工具都会先执行反汇编步骤,把原始二进制序列转换为
jmp aa; mov eax, ff这类汇编代码,再基于汇编格式做控制流分析、数据流追踪、漏洞特征匹配、反编译等后续操作 - 业内常见的二进制分析项目大多覆盖了从原始二进制解析、反汇编,到汇编层面语义分析的完整链路,不会单独只处理某一种形态的内容
内容的提问来源于stack exchange,提问作者zell
相关产品推荐
相关产品推荐

