I don’t know why this did not occur to me sooner: Distributed reverse engineering!
Thanks to the Jad decompiler coupled with my own Java de-obfuscation research, I can get a good head start on reverse engineering multimedia decoder modules written in Java. However, I only have so much time. Plus, I know there are more than a few folks out there who would like to check out the de-obfuscated source code and look for multimedia codec patterns.
So I am posting the work I have done so far to solve the Java cryptogram that is On2’s VP5 decoder. There are 2 files:
vp5-deobf.java is the file that I am modifying to try to recover the original algorithm. vp5-deobf-orig.java is the original de-obfuscated file. Use this for reference if you accidentally search and replace overzealously.
So take a look at it. See what patterns jump out at you. Use search & replace text editing features to replace the nonsense English verbs and animal names when if becomes obvious that they stand for something else. Send me patches against the current revision using ‘diff -u’. I will roll them back into the local Subversion (SVN) repository I am maintaining for this effort. I will keep your effort anonymous if you so wish.
Happy reverse engineering!