) \ / (
/|\ ) \___/ ( /|\
/ | \ ( /\ /\ ) / | \
/ | \ \ x | O / / | \
+----/-----|-----O------\ | /----O------|------\--------+
| '^` V '^` |
| STHENOS EMBEDDED TOOLKIT |
| |
| Static Binaries for All Architectures |
+---------------------------------------------------------+
l /\ / \\ \ /\ l
l / \ / )) \ / \ l
I/ V // V \I
V
Fast, reliable pipeline for building static debugging and analysis tools for embedded systems across 50+ architectures. Supports both musl and glibc toolchains, with LD_PRELOAD shared libraries for runtime manipulation.
Download binaries directly from GitHub: 👉 output folder
Select your architecture → Download the tools you need.
Important: If you have cloned this repository with Git LFS enabled, you need to clear the LFS placeholder files before building:
# Clear LFS files from output directory
rm -rf output/*
# Then build all tools for all architectures
./build
# Or build specific tool for specific architecture
./build strace --arch arm32v5le
# Build all tools for specific architecture
./build --arch arm32v5le
# See all available options
./build --help
--arch ARCH
- Build for specific architecture (or--arch all
for all)-d, --debug
- Debug mode with verbose output-f, --force
- Force rebuild (ignore existing binaries)-i, --interactive
- Launch interactive shell in build container--shell CMD
- Run command in container with build environment--clean
- Clean output and logs directories--download
- Download sources and toolchains only
Analysis & Debugging: strace, ltrace, ply, gdbserver, tcpdump, nmap
Network Tools: socat, ncat, dropbear (SSH), can-utils, curl, microsocks
System Tools: bash, busybox, shell utilities
LD_PRELOAD Libraries: libdesock, shell tools, tls-noverify
50+ architectures including:
- ARM: aarch64, arm32v5le, arm32v7le, armeb, armv6, armv7m, armv7r, etc.
- x86: x86_64, i486, ix86le
- MIPS: mips32be/le, mips64, mipsn32, with soft-float variants
- PowerPC: ppc32be, ppc64le, powerpc64, with soft-float variants
- RISC-V: riscv32, riscv64
- Other: m68k, microblaze, or1k, s390x, sh2/4, sparc64
- Docker
- 20GB+ free disk space
- Internet connection
Download binaries directly from GitHub: 👉 output folder
Run this command on your target system to detect architecture:
echo "$(uname -m)-$(uname -m | grep -q '64' && echo 64 || echo 32)-$(echo -n I | hexdump -c 2>/dev/null | grep -q I && echo le || echo be)-$(grep -qE 'FPU.*yes|vfp|neon' /proc/cpuinfo 2>/dev/null && echo hf || echo sf)-$(ldd --version 2>&1 | grep -q musl && echo musl || echo glibc)"
Example outputs:
mips-32-be-sf-musl
→ Useoutput/mips32v2besf/
arm-32-le-hf-glibc
→ Useoutput/arm32v7lehf/
x86_-64-le-hf-glibc
→ Useoutput/x86_64/
Then download the tools from the matching directory.
# Test if binaries work on your target
./custom # Should display banner if correct
# Build all tools for all architectures
./build
# Build specific tool for specific architecture
./build strace --arch arm32v5le
Built binaries are placed in output/<architecture>/<tool>
- all statically linked.
Architecture Guide | Troubleshooting
Sthenos provides statically compiled debugging and analysis tools for embedded systems. Useful for system analysis, network debugging, and embedded development across diverse architectures.
Pull requests are welcome for bug fixes, new tools, and architecture support. Donations are welcome to buy more hardware for testing.