Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Unholy Alliance

March 10th, 2008 by Multimedia Mike (his actual domain name), the father of the WordPress blogging system, snapped this photo at the SxSW event and it gave me a cold chill for some reason:

Blu-Ray/Java Segway

I did a little searching and realized that I had already been exposed to the idea that Blu-Ray was colluding with Java. Now it occurs to me to wonder: Has there been demand for free multimedia players to support the Java functionality necessary to play Blu-Ray discs?

Posted in Java | 5 Comments »

Android Multimedia SDK

November 12th, 2007 by Multimedia Mike

Google has unveiled their mighty Android platform SDK today. It apparently based uses that phone-based flavor of Java. An ergonomic Eclipse-based development environment and a software emulator are both provided for your experimentation.

Android logo

That’s nice. But let’s cut to what really matters — multimedia. The SDK specifies the Media API along with its MediaPlayer and MediaRecorder APIs. According to the AudioEncoder class, audio can be encoded to AMR-NB. The VideoEncoder class specifies H.263, H.264, and MPEG-4 SP. All pretty standard for a mobile application, I suppose.

Who handles the multimedia heavy lifting? Vitor noticed this press release and associated fluffy overview from PacketVideo

It’s Java, though, and that means obfuscated Java bytecode programs. Time for a renaissance for my Java de-obfuscator?

Posted in Java, Multimedia PressWatch | 6 Comments »

Blu-Ray Java

January 3rd, 2007 by Multimedia Mike

IMDb Studio Briefing carries a news snippet today about new Blu-Ray discs that can play in Sony PlayStation 3 units but not in standalone players: Sony Encounters New Blu-ray Glitches. It seems that the new discs use some system called BD-Java for processing extras and additional features. Just when you thought multimedia tech couldn’t get more complicated and bloated. So now players have to have some kind of Java VM?

As usual, Wikipedia is on top of it.

Posted in Java, Multimedia PressWatch | 5 Comments »

COD File Redux

August 12th, 2006 by Multimedia Mike

Just in case anyone is following this blog in hopes of finding information about a Java-related COD file format that I mentioned last year, some folks at a blog called Reverse & Форсаж (would love to know what that title means) have posted a 2-part (so far) analysis of the format. Part 1 and Part 2.

Posted in Java, Reverse Engineering | 3 Comments »

Java Deobfuscation In Use; Eclipse For Refactoring

August 28th, 2005 by Multimedia Mike

Believe it or not, other people actually are using my Java de-obfuscation via RetroGuard solution. Further, they are finding a lot of problems with my basic solution and have contributed a number of patches to make the program stronger. I hope to incorporate the patches in the next few days and also maybe figure out how to release an actual .jar file so that using the program will be simpler.

On a Java-related topic, there is the Eclipse project. I am not especially familiar with it but apparently it is supposed to be God’s gift to software engineering. The reason I bring it up is that one of the Java de-obfuscator contributors passed along that Eclipse can help refactor Java code (automatically searching for and replacing identifier names throughout an entire project). The catch, it seems, is that the source code needs to be compilable. The de-obfuscator did not always meet that requirement which is why this particular individual needed the program fixed.

Anyway, I just thought I would mention it since I have not seen a tool that can do this. The refactoring support would be useful for reverse engineering/de-obfuscation work.

Posted in Java, Reverse Engineering | Comments Off

Reverse Engineering Blackberry Java Native Modules (?)

August 21st, 2005 by Multimedia Mike

Readers of this blog have highly diverse reverse engineering goals. I was contacted by a reader who is interested in reverse engineering a .cod file. This file comes from the Blackberry run time environment and has to do with Java. I suspect that it is a file full of native CPU code for whatever CPU happens to run inside of a Blackberry. Anyway, since I have neither the time nor the inclination to chase after every code format in existence (and I have never even been entirely sure on what a Blackberry even is), I thought I would put it to the readers in case anyone happens to know off the top of their head. Pertinent details, questions, and speculations:

  • Blackberry JDE is available here
  • Blackberry development documentation
  • Is the .cod a native CPU code file?
  • If it is a native code file, is this a fabled Java Native Interface (JNI) code file?
  • If yes, is there a standard way to disassemble the files?
  • If no, and this is some kind of custom file format, what is the format, the section definitions, etc.?
  • I have examined one sample .cod file. It starts with hex bytes DE C0 FF FF (CODE FFFF in little endian). No other patterns jump out at me except for a few embedded PNG files.

If you have any insight into this format, feel free to contact me.

Posted in Java, Reverse Engineering | 9 Comments »

Java Multimedia Library

August 15th, 2005 by Multimedia Mike

Every so often, a discussion of the Java Multimedia Format (JMF) library pops up on an open source multimedia development list. I had never given it any kind of attention until a Google search recently led me to the documentation. I always assumed that it just supported raw formats and some common, open MPEG formats. It turns out that the library actually supports a few better known codecs, some of which are not completely reverse engineering. Of course, my interest in this would be decompiling them and de-obfuscating them beforehand, as necessary. The library contains a non-obfuscated, pure-Java implementation of the Cinepak codec. It also includes an obfuscated, pure-Java implementation of what I believe are some or all of the MPEG-1 codecs.

However, most interesting codecs (including all of those that are not yet RE’d) are only supported via the Win32 or Linux/Solaris “Performance Packs” which are presumably compiled, SIMD-optimized x86 code.

Some curious features– the pure-Java portion of the library supports some of the quirkier Sound Blaster playback frequencies like 11127 Hz and 22254 Hz (while the performance packs support 8000 Hz -> 48000 Hz). Also, I can not get over the fact that the documentation for the class states that SMC corresponds to “Sorenson format”. (Here is the SMC format, apparently named for its creator, one Sean M. Callahan.)

Posted in Java | No Comments »

Java Multimedia Inventory

July 20th, 2005 by Multimedia Mike

compn has put together a nice inventory of Java-based multimedia formats, including some reverse engineering efforts. And I quote:

Read the rest of this entry »

Posted in Java, Reverse Engineering | No Comments »

Monitoring The Competition

May 27th, 2005 by Multimedia Mike

I learned that this blog ranks highly on Google with the search query “deobfuscating java”. I decided to see what other items come up with such a term. In doing so, I found someone who eats, sleeps, and breathes code obfuscation the same way I do de-obfuscation and reverse engineering.

And if “deobfuscating java” brought you here, this page on Retroguard deobfuscation is the reason.

Meet Paul Tyma, Ph.D. I became aware of him through this I, Cringely column entitled “Misinterpretation”. Tyma and his company PreEmptive Solutions have developed code obfuscators for both the Java and .NET languages. The article notes that one technique under development (possibly already deployed?) is called “Program State Code Protection”. From what I can discern, it almost sounds like self-modifying code for Java. I would be interested to see it in action.

Further, the company has 2 patents assigned to it:

  • 6,102,966: Method for renaming identifiers of a computer program
  • 5,903,761: Method of reducing the number of instructions in a program code sequence

Tyma also has an article in a Java publication entitled “The New Obfuscation”. This piece presents some examples of code mangling that are difficult to decompile and would be almost impossible to recompile.

Posted in Java, Reverse Engineering | No Comments »

Distributed Reverse Engineering

May 21st, 2005 by Multimedia Mike

I don’t know why this did not occur to me sooner: Distributed reverse engineering!

Read the rest of this entry »

Posted in Java, On2/Duck, Reverse Engineering | No Comments »

« Previous Entries