/binaryinternals

Free Tools to View Internals of Binary File, including .class, .dex, .elf, .zip, etc.

Primary LanguageJavaApache License 2.0Apache-2.0

Binary Internals Viewer

An application to show binary file internals visually & interactively for the meaning of every bit.

Supported Formats

Sample

  • Here is a screen shot opening java.lang.String.class file

Sample Class

Download

User guide

  • We need the java command to run this tool
    • java -jar BinaryInternalsViewer-3.6-timestamp.jar
      • Where timestamp is the auto-generated build timestamp
    • Menu item: File > Open...
    • Choose the binary file to view

Build the Source Code

  • Prerequisite
    • Java Version: OpenJDK version 11 or higher
    • Set JAVA_HOME environment variable
      • If not set use the export statements in the build.sh script
    • Build Tool: Apache Maven 3.6 or higher: because we are using the Maven CI Friendly Versions ${revision} feature
  • Build
    • Build via maven command
      • mvn clean
      • mvn package
      • mvn install
      • mvn site:site
      • mvn site:stage
    • Build with Script
      • ./build.sh (Linux/MacOS/Windows Git Bash)
      • build.cmd (Windows CMD)

Structure

  • This application does not have 3rd party dependency other than JDK, easy to add it to your existing project
  • Show dependency tree for this project
    • mvn dependency:tree
  • Graph of all dependencies aggregated
    • Make sure Graphviz has been installed, dot command is available
    • mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImage -Dincludes=org.binaryinternals -DshowGroupIds -DshowVersions -DoutputDirectory=docs

Dependency Graph

Legacy note

  • The original Java Class Viewer has been retired and merged into Binary Internals Viewer since Apr 2021

Standalone Libs

The FormatXXXX.jar files can be used in your project when needed.