selfdb: Ausführbare Programme als SQLite-Datenbanken statt ELF-Dateien

Repositoryfzakaria/selfdbTool

selfdb stellt SELF (Structured Executable & Linkable Format) vor. Das Projekt ersetzt das klassische ELF-Binärformat unter Linux durch eine SQLite-Datenbank und stellt die nötigen Interpreter- und Loader-Komponenten bereit, um diese Dateien direkt auszuführen.

Das Wichtigste

  1. Ersetzt ELF-Dateien durch SQLite-Datenbanken (SELF), wodurch Binärdaten und Tabellenzeilen identisch sind.
  2. Ermöglicht Operationen wie ldd oder strip über normale SQL-Befehle (z. B. 'DELETE FROM sections').
  3. Stellt mit self-exec einen binfmt_misc-Interpreter bereit, der drei Lademodi unterstützt: memfd, native und selfld (eigener dynamischer Linker via SQL).
  4. Enthält libself-audit.so für reguläres glibc, um über SQL aufgelöste .self-Shared-Libraries zu laden.
  5. Umfasst Konverter (elf2self, self2elf via Python und LIEF) sowie Nix/NixOS-Integrationen (Modul, VM, Hook).
  6. Zeigt mit self-httpd eine Demoanwendung, bei der Programmcode, Webseiten und Besucher-Logs in einer einzigen ausführbaren Datenbankdatei liegen.

Warum das relevant ist

Klassische Binärformate wie ELF erfordern spezialisierte Parser und Werkzeuge wie readelf, objdump oder strip. Indem Binärstrukturen in relationalen SQLite-Tabellen abgebildet werden, lassen sich Analyse, Modifikation und dynamisches Verlinken mit gängigen SQL-Werkzeugen durchführen.

Einordnung

Das Projekt selfdb baut auf früheren Arbeiten des Autors (sqlelf) auf, invertiert jedoch den Ansatz: Statt nur eine SQL-Schnittstelle über bestehende ELF-Dateien zu legen, wird die Binärdatei selbst zur SQLite-Datenbank. Technisch stützt sich das Repository auf Python, LIEF, Nix/NixOS und Linux-Kernel-Mechanismen wie binfmt_misc. Das Projekt richtet sich vor allem an Systemprogrammierer, Toolchain-Entwickler und Sicherheitsforscher, die neue Paradigmen für Binärformate und Linker evaluieren möchten. Der Reifegrad ist experimentell (Proof of Concept mit Test-Harness und Meilensteinen M0 bis M3b), bietet aber bereits funktionierende Demos wie ein NixOS-VM-Image und einen Live-Webserver.

Gefunden in

Zusammenfassung von KI erstellt (Gemini 3.8 Flash, 27. September 2026). Sie kann Fehler enthalten – maßgeblich ist die Originalquelle.

Inhaltlich ähnlich, ermittelt über die KI-Suche.

  • Repository:tursodatabase/turso

    Turso: SQLite-kompatible In-Process-SQL-Datenbank in Rust

    Turso ist eine quelloffene, in Rust geschriebene In-Process-SQL-Datenbank, die SQLite-Kompatibilität bietet und experimentell auch ein Postgres-Frontend unterstützt. Das Projekt bezeichnet sich selbst als 'LLVM der Datenbanken' und arbeitet wie SQLite über eine virtuelle Maschine (VDBE), die SQL in Bytecode übersetzt.

    24.173SterneRust

    Webentwicklung· Tool

  • Repository:mxhm11cr/LinuxRunner

    LinuxRunner bringt ARM64-Linux-Apps ohne Jailbreak auf iOS und iPadOS

    LinuxRunner ermöglicht das Ausführen von ARM64-Linux-Programmen und Desktop-Oberflächen auf iPhone und iPad. Über einen Interpreter und eine Kompatibilitätsschicht laufen Distributionen direkt unter iOS ohne Virtualisierung oder Jailbreak.

    282SterneC

    Open Source· Tool

  • Repository:woelper/offgrid

    offgrid: Autarke All-in-One-Laufzeitumgebung für lokale LLMs in Rust

    offgrid ist eine portable Einzeldatei-Anwendung in Rust, die das Herunterladen, Ausführen und Bereitstellen von Sprachmodellen komplett offline ermöglicht. llama.cpp ist direkt einkompiliert, wodurch Python-Umgebungen und externe Server entfallen. Das Tool richtet sich an Entwickler, die ohne Cloud, Telemetrie oder Internetabhängigkeiten lokal arbeiten wollen.

    4SterneRust

    KI & AI· Tool

  • Repository:tractordev/webframe

    webframe: Webseiten im Terminal wie CLI-Programme ausführen

    webframe führt Webseiten headless in systemeigenen Webviews aus und verbindet Ein- und Ausgaben direkt mit dem Terminal. Die Go-basierte CLI leitet Konsolenausgaben an stdout, Fehler an stderr und erlaubt interaktive JavaScript-Auswertung über stdin. Entwickler können damit browser-spezifische APIs wie WASM, WebGPU oder DOM-Bibliotheken ohne schwere Automations-Stacks wie Puppeteer in CI-Pipelines nutzen.

    174SterneGo

    Webentwicklung· Tool

  • Repository:swoole/typephp

    TypePHP: AOT-Compiler übersetzt PHP in native Binärdateien

    TypePHP ist ein von Swoole entwickelter Ahead-Of-Time-Compiler (AOT), der PHP-Code in C++17 und anschließend in nativen Maschinencode übersetzt. Damit lassen sich eigenständige Executables, PHP-Extensions, Shared Libraries oder WASI-Komponenten ohne Zend-Opcode-Interpretation zur Laufzeit erstellen.

    1220SternePHP

    Webentwicklung· Tool

  • Repository:coollabsio/coolify

    Coolify: Open-Source-PaaS als selbst gehostete Cloud-Alternative

    Coolify ist eine quelloffene, selbst gehostete Platform-as-a-Service (PaaS) unter Apache-2.0-Lizenz, die als Alternative zu Vercel, Heroku und Netlify dient. Sie ermöglicht das Deployment von Webanwendungen, statischen Seiten, Datenbanken und über 280 One-Click-Diensten auf eigenen Servern per SSH.

    61.437SternePHP

    Webentwicklung· Tool

Sprechen wir über Ihr Projekt.

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Ein Teil von diesem Inhalt wurde mit KI gemacht.