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

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

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

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

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

Категории

Все категории
Loading categories
libloong — Самая быстрая песочница для LoongArch | Kitploit
Инструменты/GitHubGitHub/libriscv/libloong
Безопасность встроенных системОбратная инженерияВиртуализация для безопасностиФаззингАппаратная БезопасностьАнализ Бинарных Файлов
GitHublibriscv/libloong

libloong

Самая быстрая песочница для LoongArch

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

Популярное

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

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

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

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

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

Библиотека песочницы LoongArch64

libloong — это 64-битная высокопроизводительная библиотека-эмулятор LoongArch, предназначенная для встраивания и высокочастотного скриптинга. Построенная на архитектуре libriscv, она обеспечивает самую быструю доступную производительность 64-битного интерпретатора, сохраняя компактный объём кодовой базы ~18k LOC без каких-либо зависимостей.

Вы также можете запускать программы LoongArch64 Linux в интерфейсе командной строки.

  • Универсальность: В отличие от JIT-компиляторов, которые требуют генерации кода под конкретную платформу и недоступны на замкнутых платформах, libloong работает где угодно. Это включает Nintendo Switch (1 и 2), iOS и другие среды.
  • Стандартность: Запускает стандартные бинарные файлы Linux.
  • Сверхнизкая задержка: Традиционные VM, такие как Lua или Java, часто страдают от высоких накладных расходов на вызовы (~150 нс). libloong достигает ~4 нс накладных расходов на вызов native-to-guest, что делает его пригодным для скриптинга в горячих циклах игровых движков.

Бенчмарки производительности

В интерпретаторных бенчмарках CoreMark 1.0 (декабрь 2025 года) libloong лидирует в категории 64-битных архитектур на Ryzen 7950X, стабильно достигая результата 3000+.

Результаты интерпретатора CoreMark 1.0

Расширенные режимы: Хотя интерпретатор является основным направлением для переносимости, libloong включает лёгкий JIT, достигающий 38% от нативной производительности (15.5k CoreMark), и встроенный бинарный транслятор, достигающий ~77% от нативной производительности (31.9k CoreMark).

Возможности

  • Привязки: Нативный C++ API с привязками для Rust и Go.
  • Поддержка векторов: Полная поддержка наборов инструкций LSX и LASX.
  • Безопасность памяти: Строгая изоляция памяти с опциональными маскированными аренами памяти.
  • Управление состоянием: Полноценная поддержка приостановки, возобновления и сериализации состояния машины.
  • Динамическое исполнение: Может загружать и выполнять динамические исполняемые файлы, а также встроенные JIT (например, LuaJIT)*

Дизайн

Скриптинг игровых движков — та область, где libloong превосходит других. Традиционные игры предоставляют моддинг через разделяемые библиотеки (полный доступ к системе), встроенные VM, такие как Lua (~150 нс накладных расходов на вызов), или среды выполнения Java. У libloong накладные расходы на вызов составляют ~4 нс.

t

См. пример игры Asteroid.

Сборка

Параметры конфигурации CMake:

  • LA_DEBUG=ON/OFF — Включить вывод отладочной информации (по умолчанию: OFF)
  • LA_BINARY_TRANSLATION=ON/OFF — Включить бинарную трансляцию (по умолчанию: OFF)
  • LA_THREADED=ON/OFF — Включить многопоточную диспетчеризацию байт-кода (по умолчанию: ON)
  • LA_MASKED_MEMORY_BITS=N — Установить размер маскированной арены памяти в 2^N байт (0 = отключено, по умолчанию: 0)

Пример с параметрами:

root@kitploit:~
cmake .. -DCMAKE_BUILD_TYPE=Release \
         -DLA_MASKED_MEMORY_BITS=32 \
         -DLA_BINARY_TRANSLATION=ON
make -j6

Быстрый старт

root@kitploit:~
#include <libloong/machine.hpp>

int main() {
    // Load a LoongArch ELF binary
    std::vector<uint8_t> binary = load_file("program.elf");

    // Create a machine with 64MB memory
    loongarch::Machine machine { binary, {
        .memory_max = 64 * 1024 * 1024
    }};

    // Setup program arguments
    machine.setup_linux({"program"}, {"LC_ALL=C"});

    // Run the program
    machine.simulate();
}

Документация

  • Руководство по интеграции
  • Справочник API
  • Поддержка ISA LoongArch
Скачать инструмент
ИнтерпретаторАрхитектураРезультат
libloong64-битный LoongArch3045
libriscv64-битный RISC-V2865
stitchWasm2743
wasm3Wasm2368
wasmer (WAMR)Wasm2314
wasmiWasm1967