JCLASSLIB BYTECODE VIEWER

Mathematics and Computer Education, Winter 2005 by Ashbacher, Charles

JCLASSLIB BYTECODE VIEWER

available as a free download from ej-technologies at http://www. ej-technologies. com/download/jclasslib/flles.html

In my introductory programming in Java classes and my class in computer security, I often talk about Java bytecode and how generic it is. A major point emphasized in the security class is that compiled code, Java bytecode or executable, is not invulnerable to cracking.

In the introductory classes, I have found it helpful to spend significant time discussing the structure of Java bytecode, and the tool reviewed here is useful in demonstrating some of the features. It is also helpful in answering the efficiency questions that seem to be asked on a regular basis. For instance, some of the most frequently asked questions are:

* "Are the compressed arithmetic forms such as x = 4 rather than x = x 4 more efficient?"

* "How much more efficient are the increment/decrement operators such as n rather than n = n 1?"

With this tool, it is possible to decompile the Java bytecode into source code and determine the differences. Demonstrations like this are also helpful in teaching other languages that use the increment operator.

In my security class, I spend a great deal of time covering the reverse engineering of Java bytecode and C/C executable code. By recovering source code from the bytecode, the students can see how easy it is to reverse engineer the source and understand how it is structured, the goal being to uncover security weaknesses. I generally follow this with coverage of the practice of code obfuscation and encryption. By taking simple code and performing a small number of basic obfuscation techniques, the two bytecodes can be compared. This has proven to be a very effective demonstration of the value of simple security techniques.

jClassLib Bytecode Viewer is very easy to use. For instance, it takes less than five minutes to explain how to use it for a simple analysis. There are options that will list other characteristics of the source, such as the number of variables, maximum stack depth, the number of methods, the number of attributes, the number of interfaces, and a table of exceptions. These are helpful in performing a more detailed analysis of the code. More advanced features allow you to set up a workspace, browse the classpath, and set a new classpath.

I have found this tool to be of enormous value in demonstrating some of the features of computer security. With just a few minutes of instruction, the students are capable of doing simple exercises that can benefit them greatly. I strongly recommend jClassLib Bytecode Viewer.

Reviewed by Charles Ashbacher

http://www.ashbacher.com

Copyright Mathematics and Computer Education Winter 2005
Provided by ProQuest Information and Learning Company. All rights Reserved
 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
Click Here
advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with ProQuest