Decompiling Java / Edition 1

Decompiling Java / Edition 1

5.0 1
by Godfrey Nolan
     
 

ISBN-10: 1590592654

ISBN-13: 9781590592656

Pub. Date: 07/29/2004

Publisher: Apress

A step-by-step guide to decompiling Java applets, this title explains how to build your own decompiler. The CD-ROM includes IceBreaker, a JBuilder demo, WindDis, DeJava, and all of the source code from the book. It also includes the newest version of the Java Development Kit--JDK 1.2.

Overview

A step-by-step guide to decompiling Java applets, this title explains how to build your own decompiler. The CD-ROM includes IceBreaker, a JBuilder demo, WindDis, DeJava, and all of the source code from the book. It also includes the newest version of the Java Development Kit--JDK 1.2.

Product Details

ISBN-13:
9781590592656
Publisher:
Apress
Publication date:
07/29/2004
Edition description:
2004
Pages:
280
Product dimensions:
7.50(w) x 9.00(h) x 0.69(d)

Table of Contents

  1. Introduction
  2. Ghost in the Machine
  3. Tools of the Trade
  4. Protecting Your Source: Strategies for Defeating Decompilers
  5. Decompiler Design
  6. Decompiler Implementation
  7. Case Studies


Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >

Decompiling Java 5 out of 5 based on 0 ratings. 1 reviews.
Guest More than 1 year ago
Decompilers are something of a black box to most programmers. Not unlike compilers. Actually Nolan shows us that the 2 are very similar in their lexical methods. In the specific case of Java, this book may well cause unease in the reader, if you program in Java and are worried about protecting your source code. After all, it probably has proprietary methods that are not covered by any patents you might have. While you can copyright the source, Nolan points out that this may not stop someone from decompiling and reimplementing your 'secret' methods. The book shows that the big problem with Java bytecode is that decompilers for it have a far easier time than decompilers for actual assembly code, whatever the specific hardware for the latter. The basic reason is that the bytecode retains extra information that a decompiler can use, whereas assembly does not have this. Like the fact that the bytecode separates data from instructions. A vital simplification to a decompiler. Nolan shows countermeasures. At the source code level, there are several good obfuscation techniques, described well enough for you to try. And these may be better than buying a commercial decompiler. Also, Nolan suggests fully compiling your Java into specific assembly binaries. One for each combination of microprocessor and operating system that you need to support. More work. But it makes a decompilation far harder. Besides, these days, you may only have to support a few combinations. The hardware may be a Pentium or a Sparc or an IBM cpu. If a Pentium, then you might only support a recent linux or Microsoft OS on top of it. If a Sparc, then you need only support a recent Solaris. While for an IBM cpu, the only choice is AIX or Apple's OS.