boxmoe_header_banner_img

Binary Security Researcher at ETH Zurich

文章导读

二进制分析导言


avatar
ra1ny 2026-04-13 10

二进制分析的根本目的是分析它的真正的功能。比如一个正在运行的看似正常运作的二进制程序,但是里面含有一个附加的后门?

对于下面所涉及的知识概述:

  1. 基本概念和二进制格式
  2. 分析思路
    • GUN-Linux二进制分析工具链
    • 反汇编
    • 代码注入
  3. Pin构建二进制插桩的方法
  4. libdft构建动态污点分析

从基本的反汇编 -> 高级二进制分析

主要的特点:

  1. 如何插桩二进制程序
  2. 如何使用动态污点分析来跟踪执行过程中的使用
  3. 使用符号执行来自动生成漏洞利用程序

二进制分析的作用:

  1. 恶意软件对其自身进行混淆,并应用反分析技术来干扰分析,因此需要更复杂的二进制分析方法
  2. 同时也可以增强现有二进制程序的安全性:插桩,确保虚函数调用目标是合法的
  3. 分析方法与函数调用,再进行插桩使得原始语义保留

一个值得思考的问题:C/C++ -> 机器代码
问:如何知道编译后的程序与高级源代码是否具有相同的语义?

  1. 编译器错误error
  2. 细微的实现错误
  3. 二进制级别的后门
  4. 恶意寄生虫

在嵌入式系统中,有无数的二进制文件,由于源程序的丢失,或私有
=>无法从源码级别评估安全性。如何在二进制级别上分析和修改程序。

二进制分析 | 逆向工程 | 反汇编

  1. 静态分析
    • 不运行:一次分析整个bin,不依赖CPU
  2. 动态分析
    • 运行:了解进行时状态
    • 遗漏一部分有趣的内容

挑战:

  1. 无符号信息
  2. 无类型信息
  3. 无高级抽象
  4. 位置相关的代码和数据

四个部分:

  1. 二进制格式
    • 二进制分析
    • ELF格式
    • PE格式
    • libbfd二进制和数据
  2. 二进制分析基础
    • Linux二进制分析
    • 反汇编与二进制分析基础
    • 简单的ELF代码注入
  3. 高级二进制分析
    • 自定义反汇编
    • 二进制插桩
    • 动态污点分析
    • 基于libdft的动态污点分析
    • 符号执行原理
    • 使用triton实现符号执行



评论(0)

查看评论列表

暂无评论


发表评论