Nyxstone: An LLVM-based (Dis)assembly Framework
10 days ago
- #embedded-security
- #assembly-tools
- #binary-rewriting
- Emproof's mission is to enhance embedded systems security through binary rewriting techniques.
- Emproof Nyx is their flagship product, offering static binary instrumentation for protection measures like code obfuscation and exploit mitigations.
- Binary rewriting involves lifting binaries to an intermediate representation, applying transformations, and lowering back to machine code.
- Initially, Emproof used Capstone and Keystone for disassembling and assembling but found them lacking in features and error-prone.
- Nyxstone was developed as a unified assembly and disassembly library based on LLVM, offering better error reporting and label support.
- Nyxstone supports various architectures and ISA extensions, with flexible configuration options for CPUs and features.
- The tool includes a CLI for assembling and disassembling instructions, with support for labels and specific architecture configurations.
- Nyxstone is available as a library in C++, Rust, and Python, with detailed documentation and examples provided.
- The project is open-sourced under the MIT license, encouraging community contributions and feedback.