Posts Tagged ‘Software’

A Word for OllyDbg

OllyDbg is a very nice tool for debugging other people’s code. While I definitely still prefer WinDbg in most situations, OllyDbg is great for stepping through assembly.

OllyDbg

I had a good reason to use it last week. I have an old VB6 application that needs to interop with new .NET applications. The VB6 code is using an ancient COM library for encryption; this library is fairly opaque in regards to what it is actually doing.

Without giving away too many details, there’s no way I can move the old code to over to anything else. I wish the original author had just imported the advapi32 Crypt* functions, but it’s too late for that now.

So, needing to decrypt data coming from the VB6 side, I was left with a few choices. I could just use COM Interop and reference the old library in my new code. But I wasn’t really happy with that, mostly because of the complexity that it adds to deployment.

I was familiar enough with the Crypto API to know that the COM library couldn’t be doing anything too complicated. This is where OllyDbg comes in.

I stepped through the library call in assembly, stopping when it made Crypt* calls. I got the parameters from the stack, and wrote them all down.

From there, I wrote a quick C++ console app to test out recreating the calls and decrypting some sample data. As it turned out, the specific algorithms that the COM library was using weren’t exposed in System.Security.Cryptography, so the C# version I ended up with had to use P/Invoke with advapi32.

But anyway, I got rid of an annoying dependency. A very satisfying hack. You can read about an even better one here—Lee Holmes uses OllyDbg to crack a program to run as a non-admin.

DivX Sux

Look –

I am an end user of DivX. I could not possibly care less about how great the DivX codec is. To be honest, my discerning eye cannot tell the difference between a DivX-encoded movie and an animated GIF. I do not encode my own movies.

So given all of that, explain to me why in the hell I would want this notification icon.

The DivX notification icon makes me want to die

Even if you MUST create a notification icon, I still expect it to hide correctly. Instead, for some reason, it shows and hides itself about once a second while I am watching, say, a Channel 9 video.

This resizes everything on my taskbar. It is absurdly distracting, and makes it more difficult to concentrate on the video. If for no other reason, this makes DivX automatically the worst possible codec with which to record a movie.

DivX, you are not the coolest most amazing program ever written in the history of mankind. You are a stupid video format and you should operate behind the scenes where you belong.

A pox on you and your family.