Bytecode in the .Jar
Words by Benjamin Newman
TTTO Whiskey in the Jar
(capo 2)
GEm
As I was looking over a website wise and witty
CG
I saw a Java applet there whose graphics were so pretty
GEm
So I unzipped the archive, but no source code was inside her
CG
I said: Stand and deliver, for I've got a decompiler!
D
public static void main(String[] args)
G
Hide all your source away
C
I'll find it anyway --
GDG
There's bytecode in the .jar!
GEm
I opened up the files and renamed the function headers
CG
But the logic was so clean I couldn't make it any better
GEm
So I changed the attribution and made out I was the author
CG
All supposing any applet can't be told from any other
D
public static void main(String[] args)
G
I'll claim this code is mine
C
A lie on every line
GDG
There's bytecode in the .jar!
GEm
Next week I got an email from the author of the applet
CG
And she said: I know you stole it and I know just how you hacked it
GEm
For you tried to change the headers but your changes were too sloppy
CG
And the call graph is a perfect match which proves your code's a copy
D
public static void main(String[] args)
G
Try stealing code from me
C
It's plain for all to see
GDG
There's bytecode in the .jar!
GEm
Well, I hoped my bit of thieving wouldn't do more than annoy her
CG
But the email that she sent me also went to my employer
GEm
And they told me when they fired me: That sure was a stupid gamble
CG
With this black mark on your record your career will be in shambles
D
public static void main(String[] args)
G
It's time this loser leaves
C
We won't consort with thieves
GDG
There's bytecode in the .jar!
GEm
Now my reputation's toast just like it sank in molten lava
CG
I'll make no more foolish boasts and I won't ever write in Java
GEm
And I'll take nobody's code that doesn't say it's for the taking
CG
For I thought I'd get away with it but sure I was mistaken
D
public static void main(String[] args)
G
The moral of this tale:
C
Code theft's an epic fail
GDG
There's bytecode in the .jar!