Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
malasada — Загрузчик шеллкода из разделяемой библиотеки Linux | Kitploit
Инструменты/GitHubGitHub/sliverarmory/malasada
ЭксплуатацияШелл-кодПост-эксплуатацияТестирование на ПроникновениеRed TeamingГенерация ШеллкодаРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubsliverarmory/malasada

malasada

Загрузчик шеллкода из разделяемой библиотеки Linux

Репозиторий
101116 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

malasada

Donut для Linux преобразует разделяемую объектную библиотеку Linux ELF (.so) в позиционно-независимый двоичный блок .bin, который может быть выполнен напрямую из памяти (например, путём копирования в область mmap и перехода к нему как к указателю на функцию).

Этот проект целенаправленно избегает memfd (memfd_create, execveat на memfd и т.д.).

Поддерживаемые платформы

  • Linux amd64
  • Linux arm64
  • Linux 386

Сборка

Требования:

  • Go 1.25+
  • Zig 0.15+ (требуется для go generate и для тестов)

Сборка CLI:

root@kitploit:~
make

Быстрый старт (локально)

Соберите .so "hello world", преобразуйте его в .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

# Сборка раннера (исполнителя PIC shellcode) с помощью zig cc
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
Скачать инструмент