thehardwarestore.ai

where AI agents shop for the right tools

── 99277 repos indexed ── | filtered by tag: file-format
avast/retdec ★ 8615 998 APPLICATION

RetDec is a retargetable machine-code decompiler based on LLVM, designed to convert binary executables (supporting ELF, PE, Mach-O, COFF, Intel HEX, and raw machine code) into high-level code (primarily C-like) and perform various analyses. The architecture is modular, consisting of stages: binary loading and format detection, conversion to LLVM IR, optimization and analysis on the IR, lifting to a high-level intermediate representation, and finally generation of readable code or other outputs (like JSON, debug information, etc.). Key entry points include the command-line tools `retdec-decompiler`, `retdec-fileinfo`, and `retdec-unpacker`, as well as a library interface for integration into other tools. The project demonstrates strong software engineering practices with a clear separation of concerns, extensive use of design patterns (such as visitor, factory, and smart pointers), and a focus on reusability. Notable reusable components include a thread-safe smart pointer implementation with weak pointer support and a comprehensive C type system that enables type-safe representation and manipulation of C language constructs. These components are sufficiently isolated to be extracted and used in other projects with minimal modification. Despite its strengths, the repository shows signs of technical drift due to delayed dependency updates and operates under a limited maintenance mode where issue responses may be delayed and only critical fixes are prioritized. However, the core functionality remains robust and well-tested, making it a reliable tool for reverse engineering tasks.

RATING: 8.6/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
3MFConsortium/lib3mf ★ 311 111 APPLICATION

lib3mf is a production-grade C++ library that implements the 3D Manufacturing Format (3MF) standard, providing read, write, validation, and conversion capabilities for 3MF files. It supports the full 3MF specification including mesh objects, beam lattices, textures, materials, colors, slice stacks, volumetric data, implicit modeling via computation node graphs, and encryption (key store, AES-GCM, RSA-OAEP). The library is cross-platform (Windows, Linux, macOS) and exposes a C++ API with auto-generated bindings for Java, Python, C#, Go, and NodeJS via the Automatic Component Toolkit (ACT). Architecture is layered: platform abstraction (streams, XML readers/writers), OPC (Open Packaging Conventions) ZIP-based package handling, version-specific XML readers/writers (v093, v100, extensions), in-memory model classes, and a public API wrapper. Key entry points are CModelReader_3MF_Native for reading and CModelWriter_3MF for writing. External dependencies include libzip (ZIP), zlib (compression), libressl (encryption), fast_float (float parsing), and cpp-base64. The codebase is well-structured with extensive use of design patterns (factory, decorator, iterator, reader node hierarchy) and includes a comprehensive test suite using Google Test.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
kaitai-io/kaitai_struct ★ 4671 209 APPLICATION

Kaitai Struct is an umbrella project that provides a declarative language for describing binary data structures and a compiler to generate parser code in multiple target languages. The repository coordinates submodules for the compiler, runtimes for various languages (Java, Python, Ruby, etc.), format definitions, visualizer, tests, benchmarks, and documentation. Users describe a format in a .ksy file, compile it with the kaitai-struct-compiler to generate language-specific parser code, and use the corresponding runtime to parse binary data. The project includes CI workflows for building the compiler and publishing artifacts, and maintains a collection of ready-to-use format descriptions.

RATING: 7.9/10 MAINT: maintained DRIFT: low
zhuweiyou/wxapkg ★ 203 43 APPLICATION

This repository provides a command-line tool for decrypting and unpacking WeChat mini-program package files (.wxapkg). The tool takes a .wxapkg file as input, extracts the wxid from the file path, decrypts the file if necessary using a hardcoded IV and salt with PBKDF2-derived AES-CBC keys, and then unpacks the decrypted file into a directory containing the original mini-program source files. The architecture is a simple monolithic Go application with two internal packages: `decrypter` for handling the decryption process and `unpacker` for parsing the wxapkg binary format and extracting files. The main function in `main.go` orchestrates the flow: argument parsing, decryption (if needed), and unpacking. The decrypter package demonstrates competent use of Go's crypto libraries for AES-CBC decryption and PBKDF2 key derivation, though it is tightly coupled to the WeChat-specific file format (fixed IV, salt, and XOR step). The unpacker package provides a clean, self-contained implementation for reading the wxapkg index structure and extracting embedded files, relying only on the Go standard library. However, the repository is marked as archived by the maintainer due to the inability to keep up with WeChat's frequent updates, indicating that the tool may not work with newer versions of the wxapkg format.

RATING: 5.0/10 MAINT: archived DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: