Skip to content

Commit

Permalink
#10 class format - add tree node desc
Browse files Browse the repository at this point in the history
  • Loading branch information
amosshi committed Apr 24, 2021
1 parent 498a4b4 commit ffc92a2
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 20 deletions.
Expand Up @@ -61,17 +61,17 @@ private void initComponents() {
label.setFont(new Font(Font.DIALOG, Font.BOLD, 20));
listPane.add(label);
listPane.add(Box.createRigidArea(new Dimension(0, 5)));
listPane.add(new JLabel("Watch binary file visually & interactively for the meaning of every byte"));
listPane.add(new JLabel("Watch binary file internals visually & interactively for the meaning of every byte"));
listPane.add(Box.createRigidArea(new Dimension(0, 5)));
listPane.add(new JLabel("Version: 2.0"));
listPane.add(new JLabel("Version: 3.0"));
listPane.add(Box.createRigidArea(new Dimension(0, 5)));
listPane.add(new JLabel("Author: Amos Shi"));
listPane.add(Box.createRigidArea(new Dimension(0, 20)));
listPane.add(new JLabelHyperLink(
"https://github.com/amosshi/freeinternals",
"https://github.com/amosshi/freeinternals"));
listPane.add(Box.createRigidArea(new Dimension(0, 5)));
listPane.add(new JLabel("Free Tools to reach the Internals"));
listPane.add(new JLabel("Free Tools to view Binary Internals"));
listPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

// Lay out the buttons from left to right.
Expand Down
Expand Up @@ -22,12 +22,11 @@ msg_access_flags = The value of the <code>access_flags</code> item is a mask of
msg_this_class = The value of the <code>this_class</code> item must be a valid index into the <code>constant_pool</code> table. The <code>constant_pool</code> entry at that index must be a <code>CONSTANT_Class_info</code> structure representing the <code>class</code> or <code>interface</code> defined by this <code>class</code> file.
msg_super_class = For a class, the value of the <code>super_class</code> item either must be <code>zero</code> or must be a valid index into the <code>constant_pool</code> table. If the value of the <code>super_class</code> item is nonzero, the <code>constant_pool</code> entry at that index must be a <code>CONSTANT_Class_info</code> structure representing the direct superclass of the class defined by this <code>class</code> file. Neither the direct superclass nor any of its superclasses may have the <code>ACC_FINAL</code> flag set in the <code>access_flags</code> item of its <code>ClassFile</code> structure.<br/><br/> If the value of the <code>super_class</code> item is zero, then this <code>class</code> file must represent the class <code>Object</code>, the only class or interface without a direct superclass.<br/><br/>For an interface, the value of the <code>super_class</code> item must always be a valid index into the <code>constant_pool</code> table. The <code>constant_pool</code> entry at that index must be a <code>CONSTANT_Class_info</code> structure representing the class <code>Object</code>.

msg_interfaces_count = The value of the <code>interfaces_count</code> item gives the number of direct <code>superinterfaces</code> of this class or interface type.
msg_interfaces_table =
msg_fields_count =
msg_fields_table =
msg_methods_count =
msg_methods_table =
msg_attributes_count =
msg_attributes_table =

msg_interfaces_count = The value of the <code>interfaces_count</code> item gives the number of direct <code>super interfaces</code> of this class or interface type.
msg_interfaces_table = Each value in the <code>interfaces</code> array must be a valid index into the <code>constant_pool</code> table. The <code>constant_pool</code> entry at each value of <code>interfaces[i]</code>, where <code>0 \u2264 i < interfaces_count</code>, must be a <code>CONSTANT_Class_info</code> structure representing an interface that is a direct super interface of this class or interface type, in the left-to-right order given in the source for the type.
msg_fields_count = The value of the <code>fields_count</code> item gives the number of <code>field_info</code> structures in the <code>fields</code> table. The <code>field_info</code> structures represent all fields, both class variables and instance variables, declared by this class or interface type.
msg_fields_table = Each value in the <code>fields</code> table must be a <code>field_info</code> structure giving a complete description of a field in this class or interface. The <code>fields</code> table includes only those fields that are declared by this class or interface. It does not include items representing fields that are inherited from superclasses or super interfaces.
msg_methods_count = The value of the <code>methods_count</code> item gives the number of <code>method_info</code> structures in the <code>methods</code> table.
msg_methods_table = Each value in the <code>methods</code> table must be a <code>method_info</code> structure giving a complete description of a method in this class or interface. If neither of the <code>ACC_NATIVE</code> and <code>ACC_ABSTRACT</code> flags are set in the <code>access_flags</code> item of a <code>method_info</code> structure, the Java Virtual Machine instructions implementing the method are also supplied.<br/><br/>The <code>method_info</code> structures represent all methods declared by this class or interface type, including instance methods, class methods, instance initialization methods, and any class or interface initialization method. The methods table does not include items representing methods that are inherited from super classes or super interfaces.
msg_attributes_count = The value of the <code>attributes_count</code> item gives the number of attributes in the <code>attributes</code> table of this class.
msg_attributes_table = Each value of the <code>attributes</code> table must be an <code>attribute_info</code> structure.
18 changes: 11 additions & 7 deletions README.md
@@ -1,11 +1,6 @@
# freeinternals
## `freeinternals`: Binary Internals Viewer

## Binary Internals Viewer

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

Download
* Download Application: https://github.com/amosshi/freeinternals/releases
An application to show binary file internals visually & interactively for the meaning of every byte.

Supported Formats
* [BMP](https://en.wikipedia.org/wiki/BMP_file_format) file
Expand All @@ -32,3 +27,12 @@ Build the Source Code
* `./build-quick.sh` Do a quickly build, to get an running application
* `./build.sh` Do a full build, via execute all targets like checkstyle, spotbugs, etc.

Download
* Download Application: https://github.com/amosshi/freeinternals/releases

Usage guide

* We need the `java` command to run this tool
* `java -jar BinaryInternalsViewer-3.0.jar`
* Menu item: `File` > `Open...`
* Choose the binary file to view
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -7,7 +7,7 @@
<packaging>pom</packaging>

<name>Free Internals</name>
<description>Free Tools to View Internals of Binary File </description>
<description>Free Tools to show binary file internals visually and interactively for the meaning of every byte</description>
<url>http://www.freeinternals.org</url>

<licenses>
Expand Down

0 comments on commit ffc92a2

Please sign in to comment.