Home > Store > Programming > Java

Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering

  • By Alex Kalinovsky
  • Published May 3, 2004 by Sams.
    • Copyright 2004
    • Dimensions: 7-3/8" x 9-1/8"
    • Pages: 288
    • Edition: 1st
    • Book
    • ISBN-10: 0-672-32638-8
    • ISBN-13: 978-0-672-32638-7
    • eBook
    • ISBN-10: 0-7686-6345-8
    • ISBN-13: 978-0-7686-6345-7

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Downloads
  • Reviews
  • Sample Content

As a Java developer, you may find yourself in a situation where you have to maintain someone else's code or use a third-party's library for your own application without documentation of the original source code. Rather than spend hours feeling like you want to bang your head against the wall, turn to Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering. These techniques will show you how to better understand and work with third-party applications. Each chapter focuses on a technique to solve a specific problem, such as obfuscation in code or scalability vulnerabilities, outlining the issue and demonstrating possible solutions. Summaries at the end of each chapter will help you double check that you understood the crucial points of each lesson. You will also be able to download all code examples and sample applications for future reference from the publisher's website. Let Covert Java help you crack open mysterious codes!

Downloads

All the code for the book in one convenient file for download - 3,667 kb -- code.zip

Praise For Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering

Review of Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering

Online Sample Chapters

Covert Java: Hacking Non-Public Methods and Variables of a Class

Covert Java: Obfuscating Classes

Hacking Non-Public Methods and Variables of a Class

Hacking Non-Public Methods and Variables of a Class - DUPE - DO NOT POST

Obfuscating Classes

Table of Contents



Introduction.


1. Getting Started.

Techniques Overview—When and Why to Use Each Method. Improving Productivity with File Managers. Sample Application Functionality and Structure. Quick Quiz. In Brief.



2. Decompiling Classes.

Determining When to Decompile. Knowing the Best Decompilers. Decompiling a Class. What Makes Decompiling Possible? Potential Problems with Decompiled Code. Quick Quiz. In Brief.



3. Obfuscating Classes.

Protecting the Ideas Behind Your Code. Obfuscation As a Protection of Intellectual Property. Transformations Performed by Obfuscators. Knowing the Best Obfuscators. Potential Problems and Common Solutions. Using Zelix KlassMaster to Obfuscate a Chat Application. Cracking Obfuscated Code. Quick Quiz. In Brief.



4. Hacking Non-Public Methods and Variables of a Class.

Accessing Packages and Protected Class Members. Accessing Private Class Members. Quick Quiz. In Brief.



5. Replacing and Patching Application Classes.

What Do We Do When We Have Tried Every Road but Failed? Finding the Class That Has to Be Patched. A Sample Scenario That Requires Patching. Patching a Class to Provide New Logic. Reconfiguring the Application to Load and Use the Patched Class. Patching Sealed Packages. Quick Quiz. In Brief.



6. Using Effective Tracing.

Introduction to Tracing. Tracing As an Effective Method of Learning the Software. Tracing and Logging Tools and APIs. Tracing Dos and Donts. Quick Quiz. In Brief.



7. Manipulating Java Security.

Java Security Overview. Bypassing Security Checks. Quick Quiz. In Brief.



8. Snooping the Runtime Environment.

The Value of Understanding the Runtime Environment. System Properties. System Information. Memory Information. Network Information. Accessing Environment Variables. Quick Quiz. In Brief.



9. Cracking Code with Unorthodox Debuggers.

Understanding the Internals of Unknown Applications. Conventional Debuggers and Their Limitations. Hacking with an Omniscient Debugger. Quick Quiz. In Brief.



10. Using Profilers for Application Runtime Analysis.

Why and When You Should Use Profiling. The Best Profilers for Java. Investigating Heap Usage and Garbage Collection Frequency to Improve the Performance. Browsing Object Allocation and References to Find and Fix Memory Leaks. Investigating Thread Allocation and Synchronization. Identifying Expensive Methods to Improve Performance. Investigating an Application at Runtime Using a Thread Dump. Quick Quiz. In Brief.



11. Load-Testing to Find and Fix Scalability Problems.

The Importance of Load-Testing. Load-Testing RMI-Based Servers with JUnit. Load-Testing with JMeter. Quick Quiz. In Brief.



12. Reverse Engineering Applications.

User Interface Elements and Resources. Hacking Text. Hacking Images. Hacking Configuration Files. Quick Quiz. In Brief.



13. Eavesdropping Techniques.

Eavesdropping Defined. Eavesdropping on HTTP. Eavesdropping on the RMI Protocol. Eavesdropping on JDBC Driver and SQL Statements. Quick Quiz. In Brief.



14. Controlling Class Loading.

JVM Internals from a Class Loading Perspective. Writing a Custom Class Loader. Quick Quiz. In Brief.



15. Replacing and Patching Core Java Classes.

Why Bother? Patching Core Java Classes Using the Boot Class Path. Example of Patching java.lang.Integer. Quick Quiz. In Brief.



16. Intercepting Control Flow.

Control Flow Defined. Intercepting System Errors. Intercepting System Streams. Intercepting a Call to System.exit. Reacting to a JVM Shutdown Using Hooks. Intercepting Methods with a Dynamic Proxy. The Java Virtual Machine Profiler Interface. Quick Quiz. In Brief.



17. Understanding and Tweaking Bytecode.

Bytecode Fundamentals. Viewing Class Files Using the jClassLib Bytecode Viewer. The JVM Instruction Set. Class File Format. Instrumenting and Generating Bytecode. Bytecode Tweaking Compared with AOP and Dynamic Proxies. Quick Quiz. In Brief.



18. Total Control with Native Code Patching.

Why and When to Patch Native Code. Native Code Usage in the Java Virtual Machine. Generic Approaches to Patching Native Methods. Patching Native Code on the Windows Platform. Patching Native Code on Unix Platforms. Quick Quiz. In Brief.



19. Protecting Commercial Applications from Hacking.

Setting Goals for Application Protection. Securing Data with Java Cryptography Architecture. Protecting Application Distribution from Hacking. Implementing Licensing to Unlock Application Features. Quick Quiz. In Brief.



Appendix A. Commercial Software License.


Appendix B. Resources.

Utilities and Tools. Decompiling. Obfuscating. Tracing and Logging. Debugging. Profiling. Load-Testing. Eavesdropping. Bytecode Tweaking. Native Code Patching. Protection from Hacking.



Appendix C. Quiz Answers.


Index.

 
Best Value

Book + eBook Bundle  $53.98  $35.39

Book Price: $26.99
eBook Price: $8.40

Add To Cart

This book includes Instant Online Access with Safari and free shipping!

Instant Online Access with Safari Books Online

With your book purchase you are entitled to free, instant online access to that book on Safari Books Online for 45 days. After you've completed your purchase, you will receive instructions on how to log into Safari Books Online. If you do not want to receive online access to the book, simply uncheck the box for Instant Online Access in your cart.

Add To Cart

Book  $29.99  $26.99

Usually ships in 24 hours.

This book includes Instant Online Access with Safari and free shipping!

Instant Online Access with Safari Books Online

With your book purchase you are entitled to free, instant online access to that book on Safari Books Online for 45 days. After you've completed your purchase, you will receive instructions on how to log into Safari Books Online. If you do not want to receive online access to the book, simply uncheck the box for Instant Online Access in your cart.

Add To Cart

eBook  $23.99  $21.59

About this eBook

Requires the free Adobe® Reader® software.

Download after purchase.

Information Before downloading this DRM-encrypted Adobe® Reader® PDF file, be sure to:


  • Install Adobe Reader 6.x, 7.x, or the free Adobe Digital Editions software on your machine. Adobe Reader and Adobe Digital Editions software only works for Macintosh and Windows. The Linux and Unix versions of Adobe Reader do not have the plug-ins required to decrypt the eBook.
  • Activate the DRM through the Adobe Reader software or at Adobe's DRM Activator site.
  • Follow the procedures as specified by Adobe.
  • Visit our eBook FAQ page for more information.
Safari Books Online

What is this?

Online access to books, videos, and tutorials from Addison Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media and others - starting as low as $22.99. Learn more and start a free trial.

Start Reading Online
Informit Network