Angr-Learn-0x01

news/发布时间2024/5/19 9:56:27

Angr-Learn-0x01

介绍

本文并不会在此介绍angr该怎么使用(如果想快速开始angr,可以尝试从angr_ctf中学习),而是打算说说它的设计理念。

以编程的理念来分析二进制文件必须克服几个问题,它们大致是:

  • 将二进制文件加载到分析程序中
  • 将二进制文件转换为中间表示(IR
  • 进行确切的分析
    • 对程序部分或者全部的静态分析
    • 对程序状态空间的符号探索
    • 上面两种的组合

angr可以应对上诉这些问题

About Angr

Angr框架的总体架构包含如下几个部分:

  • 加载器CLE:用于解析加载二进制文件,识别文件格式,从ELF/PE头中提取架构、代码段和数据段等程序信息

  • 架构数据库Archinfo:根据程序架构信息,加载对应的CPU架构模型,包括寄存器、位宽、大小端等数据

  • 翻译器PyVEX:将程序机器码翻译成中间语言VEX,VEX是开源二进制插桩工具Valgrind所使用的中间语言,angr需要处理不同的架构,所以它选择一种中间语言来进行它的分析

  • 模拟执行引擎SimEngine:对VEX指令进行解释执行,支持具体值执行和符号值执行,执行时支持自定义函数Hook和断点,支持自定义路径探索策略

  • 约束求解器Claripy:将符号执行中生成的路径约束转化成SMT公式,使用Z3进行求解

  • OS模拟器SimOS:用于模拟程序与系统环境交互,提供了许多模拟的libc函数和系统调用,用户也可以自行编写Hook函数进行模拟

    angr-1.drawio

解析二进制文件 -> 获取架构信息 -> 使用翻译器翻译

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/58447648.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

汽车芯片产品解决方案示例

汽车芯片产品解决方案示例 基于芯驰驾之芯V9M的 AVM + DVR 解决方案 参考设计搭载芯驰驾之芯V9M高性能处理器,集成了高达10Gbps速率的高速PCIE扩展多路Switch。利用驾之芯V9M丰富的外设接口,可以同时连接和驱动高达九个摄像头和激光雷达,实现多种ADAS功能和AVM+DVR的组合方案…

十五、WDG看门狗

十三、WDG看门狗 WDG简介WDG(Watchdog)看门狗 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性 看门狗本质上是一个定时器,当指定时间…

线性规划模型

线性规划模型 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4千元与3千元。 生产甲机床需用A、B机器加工,加工时间分别为每台2 小时和1 小时;生产乙机床需用A、B、C三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为A 机器10 小时、B 机器8 小…

[基础] CLIP

Learning Transferable Visual Models From Natural Language Supervision link CLIP 全称 Contrastive Language-Image Pre-training TL;DR 一种使用图文对做预训练的方法,影响力:打破传统人工标准类别Label的预训练方式。 Method训练阶段:将图文样本对分别过Encoder抽取特…

TIDB使用介绍

TiDB概述 TiDB数据库官方网址:https://pingcap.com/zh/ ​TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容…

UML

UML图是什么? UML图中的UML是英文Unified Modeling Language的缩写,意为“统一建模语言”,是一种用于描述软件系统的视觉化工具。 UML提供了一套丰富的图形符号和规范,用于描述和可视化软件系统的结构、行为和交互,每种符号都有特定的用途和表达能力,以便开发人员能够更清…