50
Used, New, and Out of Print Books - We Buy and Sell - Powell's Books
Cart |
|  my account  |  wish list  |  help   |  800-878-7323
Hello, | Login
MENU
  • Browse
    • New Arrivals
    • Bestsellers
    • Featured Preorders
    • Award Winners
    • Audio Books
    • See All Subjects
  • Used
  • Staff Picks
    • Staff Picks
    • Picks of the Month
    • Bookseller Displays
    • 50 Books for 50 Years
    • 25 Best 21st Century Sci-Fi & Fantasy
    • 25 PNW Books to Read Before You Die
    • 25 Books From the 21st Century
    • 25 Memoirs to Read Before You Die
    • 25 Global Books to Read Before You Die
    • 25 Women to Read Before You Die
    • 25 Books to Read Before You Die
  • Gifts
    • Gift Cards & eGift Cards
    • Powell's Souvenirs
    • Journals and Notebooks
    • socks
    • Games
  • Sell Books
  • Blog
  • Events
  • Find A Store

Don't Miss

  • Scientifically Proven Sale
  • Staff Top Fives of 2022
  • Best Books of 2022
  • Powell's Author Events
  • Oregon Battle of the Books
  • Audio Books

Visit Our Stores


Kelsey Ford: From the Stacks: J. M. Ledgard's Submergence (0 comment)
Our blog feature, "From the Stacks," features our booksellers’ favorite older books: those fortuitous used finds, underrated masterpieces, and lesser known treasures. Basically: the books that we’re the most passionate about handselling. This week, we’re featuring Kelsey F.’s pick, Submergence by J. M. Ledgard...
Read More»
  • Kelsey Ford: Five Book Friday: Year of the Rabbit (0 comment)
  • Kelsey Ford: Powell's Picks Spotlight: Grady Hendrix's 'How to Sell a Haunted House' (0 comment)

{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##

Covert Java Techniques for Decompiling Patching & Reverse Engineering

by Alex Kalinovsky
Covert Java Techniques for Decompiling Patching & Reverse Engineering

  • Comment on this title
  • Synopses & Reviews

ISBN13: 9780672326387
ISBN10: 0672326388



All Product Details

View Larger ImageView Larger Images
Ships free on qualified orders.
Add to Cart
0.00
List Price:0.00
Trade Paperback
Ships in 1 to 3 days
Add to Wishlist

Synopses & Reviews

Publisher Comments

Have you ever been in a crunch where all conventional approaches have failed? Do you know of a product thatsolves exactly the same problem you are facing but there is no documentation on how to implement it? Are you using a third-party library for which you need to change some of the logic but you don't have the source code?

This book shows how to overcome unsurpassable problems with practical methods such as: Decompiling and obfuscating classesHacking non-public variables and methodsReplacing and patching application classesUsing Profilers for application runtime analysisEavesdropping to facilitate troubleshooting and performance tuningIntercepting control flow and controlling class loadingUnderstanding and tweaking bytecodeAltering third party application logicHacking JVM behaviorProtecting commercial applications from hackers

Author Alex Kalinovsky acknowledges that the techniques in "Covert Java are controversial, but as he says in the Introduction ..".Any information or discovery can be used for good or ill. This book is for the good guys, and if you are a bad guy please stop reading right now and get a new job with the testing team."

Tricks and in-depth information presented in "Covert Java can save you hours of effort. Each chapter focuses on a technique that solves a specific problem -- outlining the problem, demonstrating the solution, and then suggesting additional ideas for testing the approach.

Synopsis

Developers face problems created by others every day - when asked to maintain someone else's code, or when forced to use a third-party library without documentation. They might come across exactly the feature they need to implement but can't get hold of the source code. They might spend frustrating hours trying different solutions that don't work. Instead, the techniques in this book will teach developers to decompile, patch, and reverse-engineer applications, to better understand their implementation, and to work more efficiently with applications developed by others.

"Covert Java" offers a unique approach to solving common Java problems, from combating obfuscation in code, to patching core classes to change the intended function of an application. Each chapter focuses on a technique that solves a specific problem - outlining the problem, demonstrating the solution, then suggesting additional ideas for developers to test out the technique. Many chapters include anecdotal examples of the technique in action, and finish with summaries to ensure developers understand the most crucial points of the chapter.

Synopsis

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!

About the Author

Alex Kalinovsky was born in Ukraine in 1974 and moved to the United States in 1997. He has been in the IT industry for more than 10 years, with experience that ranges from writing C and C++ applications to developing enterprise Java solutions. Since 1997, Alex has worked solely with Java and is proud to be one of its original evangelists. He has taught more than 15 classes on Enterprise Java technologies and worked as a mentor for many teams. Alex has written for various publications, including JavaWorld, Sun JavaSoft, Information Week and the Washington Post. He is a Certified Enterprise Java Architect consulting for leading companies that use Java and J2EE. He is also a lead architect for WebCream, a revolutionary Java product that bridges Swing and HTML. In his spare time, Alex enjoys traveling, reading, wind-surfing, snowboarding and bodybuilding.

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.


What Our Readers Are Saying

Be the first to share your thoughts on this title!




Product Details

ISBN:
9780672326387
Binding:
Trade Paperback
Publication date:
05/01/2004
Publisher:
PEARSON INDIANA
Pages:
288
Height:
9.28 in.
Width:
7.30 in.
Thickness:
.69 in.
Grade Range:
General/trade
Number of Units:
1
Copyright Year:
2004
UPC Code:
2800672326389
Author:
Alex Kalinovsky
Subject:
Java (Computer program language)
Subject:
Computer Languages-Java

Ships free on qualified orders.
Add to Cart
0.00
List Price:0.00
Trade Paperback
Ships in 1 to 3 days
Add to Wishlist
Used Book Alert for book Receive an email when this ISBN is available used.
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
  • Twitter
  • Facebook
  • Pinterest
  • Instagram

  • Help
  • Guarantee
  • My Account
  • Careers
  • About Us
  • Security
  • Wish List
  • Partners
  • Contact Us
  • Shipping
  • Transparency ACT MRF
  • Sitemap
  • © 2023 POWELLS.COM Terms

{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]##
{1}
##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##