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

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

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

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

工具目录

分类

查看所有分类
Loading categories
malasada — Linux 共享库到 Shellcode 加载器 | Kitploit
工具/GitHubGitHub/sliverarmory/malasada
漏洞利用Shellcode后渗透利用渗透测试红队Shellcode 生成Payload 开发二进制利用
GitHubsliverarmory/malasada

malasada

Linux 共享库到 Shellcode 加载器

查看仓库
101116个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

malasada

Linux 版的 Donut,将 Linux ELF 共享对象(.so)转换为位置无关的 .bin 二进制块,可直接从内存中执行(例如,将其复制到 mmap 区域后,作为函数指针跳转执行)。

本项目有意避免使用 memfd(memfd_create、对 memfd 执行 execveat 等)。

支持平台

  • Linux amd64
  • Linux arm64
  • Linux 386

构建

依赖:

  • Go 1.25+
  • Zig 0.15+(go generate 及测试所需)

构建 CLI:

root@kitploit:~
make

快速开始(本地)

构建一个 hello-world .so,将其转换为 .bin,并使用附带的运行器执行:

root@kitploit:~
# 构建 payload .so
go build -buildmode=c-shared -o /tmp/hello.so ./testdata/hello

# 将 .so 转换为 .bin(调用导出的符号 "Hello")
./malasada --call-export Hello -o /tmp/hello.bin /tmp/hello.so

# 可选:压缩嵌入的 payload(stage0 会在加载前解压)
./malasada --compress --call-export Hello -o /tmp/hello.compressed.bin /tmp/hello.so

# 使用 zig cc 构建运行器(PIC shellcode 执行器)
zig cc -O2 -o /tmp/runner ./testdata/runner/runner.c

# 执行(stage0 将控制权交给 ld-linux;运行器不会返回)
/tmp/runner /tmp/hello.bin

预期输出包含:

root@kitploit:~
hello from go

go generate(预构建 + 嵌入 stage0)

仓库嵌入了预构建的 stage0 二进制块:

  • internal/stage0/stage0_linux_amd64.bin
  • internal/stage0/stage0_linux_arm64.bin
  • internal/stage0/stage0_linux_386.bin

如果你修改了 internal/stage0/stage0.c 或 internal/stage0/linker.ld,请重新生成:

root@kitploit:~
go generate ./...

CLI 始终使用嵌入的 stage0 二进制块(运行时无需 Zig)。要修改 stage0,请编辑 internal/stage0/stage0.c 并重新运行:

root@kitploit:~
go generate ./...

Docker 测试套件

testdata/Dockerfile 构建 CLI、构建 hello .so、将其转换为 .bin、使用 Zig 构建运行器,并在 Linux 容器中运行端到端测试。

示例:

root@kitploit:~
docker buildx build --platform linux/amd64 -f testdata/Dockerfile .
docker buildx build --platform linux/arm64 -f testdata/Dockerfile .
docker buildx build --platform linux/386 -f testdata/Dockerfile .

# 或通过 Makefile:
make docker-test-386
下载工具