Amoco:一款针对二进制源码的安全分析工具

关于Amoco

Amoco是一款功能强大的二进制源码静态分析工具,该工具基于Python 3.8开发,可以帮助广大研究人员轻松对二进制程序执行静态符号分析。

工具特性

1、一个通用的指令解码框架,旨在减少实现对新架构的支持所需的时间。例如,大多数 IA32 指令(通用)的解码器只需要不到 800 行 Python 代码。完整的 SPARCv8 RISC 解码器(或 ARM THUMB-1 集)只需要不到 350 行代码。ARMv8 指令集解码器只需要不到 650 行代码。

2、符号代数模块可以描述每条指令的语义并计算指令块的功能表示。

3、通用执行模型,提供抽象的内存模型来透明地处理具体或符号值以及其他依赖于系统的功能。

4、各种类实现了通常的反汇编技术,比如线性扫描、递归遍历,或者更复杂的技术,比如路径谓词,它依赖于 SAT/SMT 求解器来继续发现控制流图,甚至实现像 DARE(定向自动随机探索)这样的技术。

5、各种通用助手和依赖于 arch 的漂亮打印机允许自定义外观配置(想想 AT&T 与 Intel 语法、绝对与相对偏移、十进制或十六进制立即数等)。

6、一个持久的数据库设施,允许将发现的图表与其他先前分析过的代码片段进行比较。

7、可以作为独立客户端或 IDA 插件运行的图形用户界面。

工具要求

traitlets

rich

pyparsing

crysp>=1.2

grandalf>=0.8

click

sqlalchemy

ccrawl>=1.9

prompt_toolkit>=3.0.28

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.8环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/bdcht/amoco.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd amocopip install -r requirements.txt

运行工具安装脚本:

python setup.py install

工具运行演示

许可证协议

本项目的开发与发布遵循GPL-2.0开源许可协议。

项目地址

Amoco:【GitHub传送门】

参考资料

http://amoco.readthedocs.io/en/latest/index.html

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Go第三方框架--gin框架(三)

5. net/http框架源码-- 多路复用的实现 这块核心功能对应 1.3 的圆圈2,所属代码如下图: run代码涉及的操作不是gin框架的核心,还记的我说过gin是在net/http的基础上操作的吗,我们来看下gin和net/http包的关联关系。 gin: 主要建…

批发供应系统案例分析

在快速变化的商业环境中,创新成为推动批发供应行业不断前行的关键动力。以下将通过几个案例分析,探讨创新批发供应系统如何引领行业变革,提升效率,优化服务,并创造新的市场机遇。 一、智能化库存预测与补货系统 案例概…

人工智能在鼻咽癌中的应用综述|文献精析·24-09-13

小罗碎碎念 这篇文章系统回顾了人工智能在鼻咽癌管理中的应用,发现AI在提高诊断、预后评估和放疗计划的自动化方面具有积极影响。 作者角色作者姓名单位(中文)第一作者Wai Tong Ng香港大学深圳医院临床肿瘤中心,中国;香…

不可思议!这7个反共识设计原则,正悄然改变AI应用的未来格局!

引言 在AI技术日益成熟的今天,如何设计出既符合用户需求又具备高度智能化的原生应用,成为摆在开发者面前的重要课题。然而,传统的应用设计思维往往限制了AI潜力的充分发挥。本文提出的七个反共识观点,旨在挑战传统观念&#xff0…

老程序员的数字游戏开发笔记(一) —— 世界从Godot开始

目录 开篇废话 GDScript 是什么 创建 GDScript 背后的动机是什么 Godot 会支持【此处插入 FMOD、GameWorks 等闭源 SDK 的名字】吗? 是否能用 Godot 创建非游戏应用? Godot 使用的用户界面工具包是什么? 为什么 Godot 使用 SCons 构建…

抖音视频下载

对于特别喜欢的视频有时需要珍藏,下文方法可能会帮到你,但要注意尊重版权和遵守相关声明。 Edge浏览器打开抖音短视频,按F12,选择 网络;筛选条件?a;双击搜索结果打开视频;选择想要的视频&…

镜像问题(k8s部署考试系统)

如果使用containerd拉取不到镜像的话,就使用docker 1.修改decker的镜像源 [rootk8s-master ~]# vim /etc/docker/daemon.json { "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", …

SSM 传统工艺品销售网站---附源码74714

摘 要 近年来,信息网络迅猛推进,其具有灵活方便、传递消息速度快等优点,这一新兴媒体日渐兴盛,已经成为人们日常生活获取信息一个重要手段。从08开始,电商行业如春风吹过后的小草,呈现出一片蓬勃地发展态势…

人力资源管理系统员工组织与微软AD域服务系统集成案例

一、项目背景 上海某电路半导体有限公司主要产品应用于图像传感器、 图像信号处理芯片、 低功耗芯片、 射频芯片等。 公司内部HR人力资源管理系统统一进行人员批量预入职和同步等流程,由SAP PO平台进行中间管理,在微软AD域系统上创建人员&#xff0c…

若依plus-cloud nacos yml 动态获取 配置内容

这是剑走偏锋的写法。 直接上代码 在nacos中配置一个ruoyi-cms.yml 内容中有cms:filepath:******* springcloud配置 package org.dromara.cms.entity;import lombok.RequiredArgsConstructor; import org.springframework.core.env.Environment; import org.springframewo…

优化IDEA卡顿,提示慢的问题,亲测有效!

1、优化JVM的参数 以下文件在idea安装目录的idea64.exe.vmoptions文件中。 一般来说我们只需要调整-Xms、-Xmx、-XX:ReservedCodeCacheSize三个即可,根据电脑的实际内存去调,我的电脑是48G内存,调到了 -Xms4096m (堆初始内存大小) -Xmx8192m…

基于图像的端到端方案实现小车在模拟城市场景中的自主导航

基于图像的端到端方案实现小车在模拟城市场景中的自主导航 FSD(Full Self-Driving)是特斯拉公司推出的一种自动驾驶技术,旨在实现完全自主的驾驶体验。FSD系统依靠大量的数据和高级的机器学习算法,结合车载传感器(如摄…

共模干扰的形成和滤除

1、共模就是共同对地的干扰: 如图,我们可以看到共模的原理图。UPQ就是共模电压,ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同,方向相同。 2、共模信号和差模信号的区别: 通常电源线有三根线:火线L、…

红帽RHCA认证什么级别?红帽认证等级细分攻略

Linux 系统作为开源软件的杰出典范,于服务器、云计算、大数据等诸多领域占据着至关重要的地位。对于矢志在 Linux 领域精研深耕的技术人才而言,红帽认证无疑是擢升技能与职业竞争力的关键密钥。今日,我们即将深度剖析 RHCA 红帽认证架构师这一…

[产品管理-4]:NPDP新产品开发 - 2 - 战略 - 制定企业经营战略目标的结构化方法与工具

目录 一、SWOT分析工具 1、SWOT分析工具概述 2、SWOT分析与企业战略目标制定的关系 3、SWOT分析在企业战略目标制定中的应用实例 4、SWOT分析的改进与应用建议 二、P E S T L E 分 析:外部环境分析 2.1 概述 1. 政治因素(Political) …

建筑机器人通用操作系统设计方案

建筑机器人操作系统通用发行版概述 1. 基础版(Entry Level) 目标用户:小型建筑公司、DIY爱好者或初学者。特点:提供基础的机器人控制和任务管理功能,支持简单的自动化作业流程,如基础的混凝土搅拌、物料搬…

盘点那些初级软件测试面试题汇总

一、请描述如何划分缺陷与错误严重性和优先级别? 给软件缺陷与错误划分严重性和优先级的通用原则: (1)表示软件缺陷所造成的危害和恶劣程度。 (2)优先级表示修复缺陷的重要程度和次序。 严重性&#xf…

探索广东省自闭症寄宿学校的独特教育模式

在广东省这片充满活力的土地上,自闭症儿童的教育问题日益受到社会各界的关注。随着特殊教育领域的不断发展,一系列针对自闭症儿童的寄宿学校应运而生,其中,广州的星贝育园自闭症儿童寄宿制学校以其独特的教育模式,成为…

性能测试-性能分析与调优原理总结

性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库。 从操作系统(CPU调度,内存管理,进程调度,磁盘I/O)、网络、协议(HTTP, TCP/IP ),还是…

Unity 粒子系统参数说明

一、Particle System 1. Duration(持续时间) 粒子系统运行一次所需的时间。它决定粒子系统持续播放的时间长度。 2. Looping(循环播放) 如果启用,粒子系统将在播放完一次后自动重新开始播放,直到你停止它…