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

【源码】基于ELF格式动态补丁的SysCare工具

项目简介

SysCare是一个系统级热修复软件,可提供单机级与集群级安全补丁和系统错误热修复功能。主机无需重新启动就能修复系统问题,该工具融合统一内核态/用户态热补丁技术,专注于用户核心业务,将系统修复问题交予其处理。

项目的主要特性和功能

  1. 动态补丁技术:支持在运行时动态修改正在运行的二进制程序,无需重启即可修复系统问题。
  2. 内核/用户态热补丁:融合统一内核态/用户态热补丁技术,具备强大的系统修复能力。
  3. 补丁管理:提供补丁的激活、停用、安装、卸载等操作,同时支持查询补丁信息。
  4. 多架构支持:支持多种架构(如AARCH64、X86_64等)的补丁处理。

安装使用步骤

依赖安装

bash $ dnf install -y kernel-source-`uname -r` kernel-debuginfo-`uname -r` kernel-devel-`uname -r` $ dnf install -y elfutils-libelf-devel openssl-devel dwarves python3-devel rpm-build bison cmake make gcc g++

源代码编译安装

bash git clone https://gitee.com/openeuler/syscare.git cd syscare mkdir tmp cd tmp cmake .. make make install

补丁制作

bash $ syscare build \ --patch-name "HP001" \ --patch-description "CVE-2021-32675" \ --source ./redis-6.2.5-1.src.rpm \ --debuginfo ./redis-debuginfo-6.2.5-1.x86_64.rpm \ --output ./output \ ./0001-Prevent-unauthenticated-client-from-easily-consuming.patch

补丁管理

  1. 补丁安装: bash $ syscare apply redis-6.2.5-1/HP001
  2. 补丁激活: bash $ syscare active redis-6.2.5-1/HP001
  3. 补丁去激活: bash $ syscare deactive redis-6.2.5-1/HP001
  4. 补丁卸载/移除: bash $ syscare remove redis-6.2.5-1/HP001
  5. 查询补丁状态: bash $ syscare status redis-6.2.5-1/HP001
  6. 查询补丁信息: bash $ syscare info redis-6.2.5-1/HP001
  7. 查询补丁目标软件信息: bash $ syscare target redis-6.2.5-1/HP001
  8. 查询所有补丁: bash $ syscare list

约束限制

  • 当前支持ELF格式的热修复,解释型语言不支持。
  • 支持DWARF格式的调试信息,不支持g3等级。
  • 暂不支持交叉编译。

参与贡献

  1. Fork本项目仓库。
  2. 建立分支,完善特性代码。
  3. 提交代码至主仓库。

下载地址

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