littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C++的POMMES项目

项目简介

本项目是一个用于分析ARMv6 - M架构下程序代码安全的开源项目。它可对GIMPLE(GCC的中间表示)形式的函数体进行解析,构建函数内部的控制流图,开展静态污点跟踪,从而识别并防范因寄存器使用不当引发的内存覆盖、垂直依赖等安全问题,还能生成汇编代码,为后续的编译器优化或分析奠定基础。

项目的主要特性和功能

  • 解析GIMPLE格式函数体:能提取函数参数、变量声明、基本块和SSA指令,处理指针和数组类型变量。
  • 构建控制流图:依据解析的函数体构建函数内部控制流图,展示基本块间的控制流关系。
  • 静态污点跟踪:追踪代码中数据的敏感性,识别可能暴露敏感数据的代码路径。
  • 虚拟寄存器分配和溢出处理:合理处理虚拟寄存器的分配与溢出,保障敏感数据在寄存器中的安全存储。
  • 安全性检查:检查并插入MOV指令,防范内存覆盖、垂直依赖等安全威胁。
  • 生成汇编代码:根据解析的函数体和生成的控制流图生成汇编代码。

安装使用步骤

  1. 准备环境:确保开发环境已安装C++编译器和相关构建工具。
  2. 构建项目:在源码根目录下,使用CMake构建项目。
  3. 运行分析:运行项目的命令行工具,指定要分析的源代码文件。
  4. 查看结果:项目将输出分析结果,包含控制流图、敏感性追踪结果和生成的汇编代码等。

注:以上步骤假设用户已下载项目源码文件,且具备一定的C++开发环境配置知识。具体安装和配置细节可能因开发环境和操作系统不同而有差异。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】