Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
woody-woodpacker — 一个用于64位Linux可执行文件的ELF二进制打包器,可加密代码段并注入运行时解密存根,演示代码注入和二进制操作技术。 | Kitploit
工具/GitLabGitLab/aurh1l-42-projects/woody-woodpacker
加密/解密工具逆向工程二进制分析学习与教育二进制利用
GitLabaurh1l-42-projects/woody-woodpacker

woody-woodpacker

一个用于64位Linux可执行文件的ELF二进制打包器,可加密代码段并注入运行时解密存根,演示代码注入和二进制操作技术。

查看仓库
59个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Woody-Woodpacker

42 Project C ELF

一个 42 学校项目,实现了针对 64 位 ELF 可执行文件的二进制打包器。该打包器对可执行文件的代码段进行加密,并注入一个在运行时执行的解密例程。

🎯 关于

Woody-Woodpacker 是一个程序,它接收一个 64 位 ELF 二进制文件作为输入,并创建一个名为 woody 的新加密版本。当执行 woody 二进制文件时:

  1. 运行时解密自身
  2. 打印 "....WOODY...." 到标准输出,作为注入的证明
  3. 正常执行,保持原始二进制文件的行为

该项目探索了:

  • 二进制文件格式(ELF 结构)
  • 代码注入技术
  • 加密/解密算法
  • C 语言底层编程
  • 逆向工程概念

⚙️ 工作原理

打包过程

root@kitploit:~
原始二进制 → [Woody-Woodpacker] → 加密二进制 (woody)
  1. 解析 ELF 头部 – 读取并分析 ELF 文件结构
  2. 定位代码段 – 识别需要加密的段/节
  3. 加密代码 – 对代码应用加密算法
  4. 注入解密存根 – 向二进制文件中添加解密例程
  5. 修改入口点 – 将执行重定向到解密存根
  6. 写入新二进制 – 创建 woody 可执行文件

执行过程

root@kitploit:~
./woody → 解密代码 → 打印 "....WOODY...." → 执行原始程序

🔧 前提条件

  • GCC 或 Clang 编译器
  • Make
  • Linux 操作系统(用于 ELF 二进制支持)
  • 基本了解:
    • C 语言编程
    • ELF 文件格式
    • 汇编语言(x86-64)

🚀 安装

root@kitploit:~
# 克隆仓库
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker

# 编译项目
make

# 现在 woody_woodpacker 可执行文件已就绪
./woody_woodpacker

💻 使用方法

基本用法

root@kitploit:~
./woody_woodpacker <binary_file>

这会在当前目录下创建一个名为 woody 的新文件。

示例

root@kitploit:~
# 打包一个二进制文件
./woody_woodpacker /bin/ls

# 执行打包后的二进制文件
./woody
# 输出: ....WOODY....
# [然后是正常的 ls 输出]

验证

root@kitploit:~
# 比较原始二进制与打包后的行为
/bin/ls -la
./woody -la

# 两者应该产生相同的输出(在 "....WOODY...." 之后)

🔍 技术细节

ELF 文件结构

打包器操作以下 ELF 组件:

  • ELF 头部 – 包含元数据的主文件头
  • 程序头部 – 用于加载的段信息
  • 节头部 – 用于链接的节信息
  • 代码段 – 包含可执行代码的 .text 节

加密算法

该项目通常使用一种简单的加密方法,例如:

  • RC4 – 流密码

注入技术

段填充感染法(Silvio Cesare 方法):

  1. 增加程序头中的段大小
  2. 在填充区域注入解密存根
  3. 修改入口点以跳转到存根
  4. 存根解密代码并跳转到原始入口点

内存布局

root@kitploit:~
┌─────────────────────────┐
│   ELF 头部              │
├─────────────────────────┤
│   程序头部              │
├─────────────────────────┤
│   解密存根              │ ← 注入的代码
├─────────────────────────┤
│   加密的 .text 节       │ ← 原始代码(已加密)
├─────────────────────────┤
│   其他节                │
├─────────────────────────┤
│   节头部                │
└─────────────────────────┘

📝 许可证

本项目是 42 学校课程的一部分,仅用于教育目的。

⚠️ 免责声明

此工具是为教育目的而创建的,作为 42 学校课程的一部分。请负责任地使用,仅用于你拥有或有权修改的二进制文件。作者不对本软件的任何滥用负责。

下载工具