The Artima Developer Community
Sponsored Link

Java Buzz Forum
I own the JVM, or: How I Learned to Stop Worrying and Love the Virtual Machine.

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Norman Richards

Posts: 396
Nickname: orb
Registered: Jun, 2003

Norman Richards is co-author of XDoclet in Action
I own the JVM, or: How I Learned to Stop Worrying and Love the Virtual Machine. Posted: Jun 27, 2003 12:38 PM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Norman Richards.
Original Post: I own the JVM, or: How I Learned to Stop Worrying and Love the Virtual Machine.
Feed Title: Orb [norman richards]
Feed URL: http://members.capmac.org/~orb/blog.cgi/tech/java?flav=rss
Feed Description: Monkey number 312,978,199
Latest Java Buzz Posts
Latest Java Buzz Posts by Norman Richards
Latest Posts From Orb [norman richards]

Advertisement

Damon pointed me to an interesting article written by a fellow AustinJUG member Vladimir Roubtsov on Cracking Java byte-code encryption. (Vlad, if you are out there, congratulations on the articles. I noticed you started writing for JavaWorld back in November, right after Michael Yuan and I gave our java authors technotizer at ajug. I don't know if there is any correlation between the two events, but it's a cool thought nonetheless)

The article is well done and worth a read. Another technique is presented as a side point in an old JDJ article by Paul McLachlan. Basically, it explains how the JVM has hooks built in to intercept the classes.

All these methods are quite interesting, but there is an important theme throughout this: I own the JVM. It's that simple. When you are running an application in my JVM I can see and control each and every bit. In the JVM, I'm Neo. (whoa!)

In the case of encryption, eventually the class has to be decrypted and run by the JVM. If the JVM can see it, I can see it. Sealing jars won't keep me out of your packages. I can modify your private variables and extend your final classes. I can even rewrite your classes as they are loaded. I own the JVM.

You can't count on any of the JVM security features to help you either. Remember, the JVM security features are there to protect me from your code, not to protect your code from me. That's an important distinction that a lot of people just don't seem to get. If you want to keep me out of your classes, the only solution is to run them on your own JVM.

But don't take that as bad news. It's actually good news. It's means you can stop worrying that someone might be able to see your classes. They can, and no matter how much snake-oil you buy, that is not going to change. Learn to love it.

Read: I own the JVM, or: How I Learned to Stop Worrying and Love the Virtual Machine.

Topic: Is it Now "Windows versus Java"? Previous Topic   Next Topic Topic: Mash That Trash-JDK Innovation

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use