Skip to main content
Binary Internals is an open-source Java toolkit that lets you look inside binary files and understand the meaning of every byte. Whether you’re debugging a corrupted .class file, exploring how an Android .dex is structured, or integrating binary parsing into your own project, Binary Internals gives you the tools to do it interactively and programmatically.

Desktop Viewer

Run the Swing GUI to open and explore binary files visually with a tree view and byte-level detail.

Web Server & API

Start the HTTP server (or Docker container) and parse files programmatically via REST API.

Supported Formats

Explore the formats Binary Internals understands: .class, .dex, .elf, .zip, .bmp, .jpeg, and .png.

Developer Guide

Embed standalone format JARs, implement your own plug-in, or integrate the parser library into your project.

What Is Binary Internals?

Binary Internals parses binary files and exposes their structure as an interactive tree. Each node in the tree corresponds to a specific byte range in the file, complete with its start offset, length, and a human-readable description of what those bytes mean. The project ships in three forms:
  • BinaryInternalsViewer — a desktop Swing application for opening and inspecting files interactively
  • BinaryInternalsWeb — a lightweight HTTP server exposing the same parsing capability as a REST API, with a built-in web UI
  • FormatXXXX JARs — standalone parsing libraries (FormatCLASS, FormatZIP, FormatBMP, etc.) you can embed directly in your own Java project
Binary Internals has zero third-party runtime dependencies. It runs on JDK 11+ and relies entirely on the standard library.

Get Started

1

Download the viewer JAR

Grab the latest BinaryInternalsViewer-x.x-timestamp.jar from the GitHub Releases page.
2

Run it

Use File → Open… or drag and drop any supported binary file onto the window.
3

Explore the tree

Every node in the tree maps to a specific byte range. Click a node to see its offset, length, and description in the detail panel.
4

Go further

Run the web server for API access, or embed a format JAR directly in your Java project.

Supported File Formats

.class

Java bytecode — constant pool, fields, methods, attributes, and opcodes

.dex

Android Dalvik executable — headers, strings, types, and class definitions

.elf

Linux/Unix ELF binaries — ELF header, identification block

.zip

ZIP archives — local file headers, central directory, end-of-central-directory record

.bmp

Windows bitmap — file header, DIB header, color table, and pixel array

.jpeg / .png

JPEG and PNG image formats — segments, chunks, and metadata