当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HC-SR04超声波传感器详解(STM32)
  • scantf
  • k8s介绍及部署
  • 【Kubernetes】常见面试题汇总(二十四)
  • PWN二进制安全修仙秘籍【第一章#工具篇01】WLS配置tmux分屏、oh-my-zsh命令补全
  • SOCKS4和SOCKS5的区别是什么?
  • Redis Universe: 探索无边界的数据处理星系
  • 上线跨境电商商城的步骤
  • 百度起诉知名站长工具5118
  • SEAFARING靶场漏洞攻略
  • STM32中的计时与延时
  • 多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题MD-MTSP(提供Matlab代码)
  • 1. 如何在Java中连接MySQL数据库?请解释使用JDBC连接的步骤。
  • 模拟+分类讨论,LeetCode 2332. 坐上公交的最晚时间
  • 前后端分离Vue美容店会员信息管理系统o7grs
  • 2018一半小结一波
  • bearychat的java client
  • ES6--对象的扩展
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JS 面试题总结
  • JWT究竟是什么呢?
  • RxJS: 简单入门
  • Vue ES6 Jade Scss Webpack Gulp
  • 检测对象或数组
  • 扑朔迷离的属性和特性【彻底弄清】
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手写一个CommonJS打包工具(一)
  • 树莓派 - 使用须知
  • 听说你叫Java(二)–Servlet请求
  • 移动端解决方案学习记录
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • mysql面试题分组并合并列
  • NLPIR智能语义技术让大数据挖掘更简单
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #define、const、typedef的差别
  • #QT(智能家居界面-界面切换)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #在 README.md 中生成项目目录结构
  • (2)(2.10) LTM telemetry
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (java)关于Thread的挂起和恢复
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (三) diretfbrc详解
  • (三十)Flask之wtforms库【剖析源码上篇】
  • .md即markdown文件的基本常用编写语法
  • .Net MVC4 上传大文件,并保存表单
  • .net 微服务 服务保护 自动重试 Polly