Monthly Archives: April 2006

Doxygen As RE Tool

It’s important not to overlook some obvious tools even though they may not be chartered for reverse engineering purposes. Think of Doxygen. This is that tool that can look at your project full of source code and extract all of the comments and data structures and functions and automatically generate a cleanly interlinked set of HTML files to browse.

Doxygen logo

It helps if you design a project from the ground up to take advantage of Doxygen’s features. But strictly speaking, Doxygen doesn’t really care how poorly a project is commented. It will still plow through the source code, analyzing it as best it can.

I am still working diligently on Understanding VC-1. Now, the SMPTE reference decoder is quite neatly documented. However, in trying to understand functions there is the inevitable jumping back and forth between source files trying to figure out what this or that data structure contains. In this, Doxygen relieves some of the RE pain. As a small example, here is what the Doxygen-generated HTML for the VLC data structure looks like (it’s a picture; don’t bother to click the links):


Doxygen example

This example turned out all right. Sometimes, however, the comments don’t match up with the fields since they weren’t formatted with Doxygen in mind. On average, it’s still an improvement than the standard file-hopping.

Moving Objects Video Codec

Breathless stories of new movie downloading servies are all too common on the IMDb Studio Briefing. However, this story stands out due to the claims it makes regarding fundamental video codec technology: Coming Soon: Instant Movie Downloads.

Euclid Discoveries…claims to have developed a technology that can compress a feature film into a file so small that it can be downloaded over the Internet in five minutes. …the system employs “object-based compression” that remembers recurring objects and stores them in memory. …a movie requiring 700 megabytes of storage with the established MPEG-4 compression technology uses just 50 megabytes under the new one.

FMV built using a series of moving objects is, of course, nothing new. In fact, that’s how video animation was performed in video games well before enough capacity was available to feasibly transport frames of compressed video. I know of several video codecs that contain provisions for moving sprites around the video field, including Duck TrueMotion 1 and ISO MPEG-4 (which makes it especially ironic that they should specifically mention the latter in the article). I imagine that both of those technologies were developed as vehicles to deliver video that was developed as layers of sprites on backgrounds. The challenging problem is to examine existing video and find discrete objects that move around from frame to frame.

Continue reading

2 More Pickover Puzzles

Every now and then Pickover tosses out an extremely obvious puzzle. Given the following sequence of numbers:

  1, 27, 125, 343, 729, 1331, 2197, 3375, x

what is x? Now, when I say “obvious” in this context I should clarify that the solution is relatively straightforward to the math-trained mind. Typically the solutions to such numerical puzzles are along the lines of “The latitude coordinates of the original U.S. colonies multiplied by the longitude coordinates of the same, then add 3.”

Anyway, that was today’s puzzle. The puzzle for April 4 was to find the numbers, A and B, that satisfy the following equation:

  AB + BA = A7

My first impulse was there should be some way to solve for A and B, maybe involving logarithms or something, until I noticed that there were 2 variables and only 1 equation which, per my math classes of long ago, proves difficult. So, a brute force program it was. Surprisingly, there is only 1 solution.

See [more] for the answers, I mean, if you really care.

I have a stack of puzzles to work through that should be brute-force-able using a combination of permutation logic and graph techniques. Eventually, I imagine I will be able to assemble a program toolkit to rip through an entire year of these puzzles automatically.

Continue reading