I've been working on programming three for some time, and have successfully written a program in c++ which can partially bruteforce the serial numbers. The problem is, my method takes an extremely long time, and I only have 300 seconds. Basically, it starts by brute forcing the initial intMD5Total value and the first 6 values of the first serial number. It is then able to verify whether the combination works by using the -OEM- part of the serial. Several dead ends are also cut off by the fact that the fourth character has to be '-'. I've found that on average there are about 2000 possible combinations up to the third character (including the brute forcing of the initial total). This gives me a keyspace of 2000*35*35*35, which is about 900 million. Unfortunately this kind of keyspace takes hours to work through. Either my method is completely wrong, or there is a shortcut I have missed. Could somebody please shed some light on this for me?

Cheers

-- Mon Feb 16, 2009 2:00 pm --

Since i wrote the first post, i've managed to optimize my method to get the first 6 charactors of the first serial in a few mins. It's now starting to look like I may just be able to tackle the problem with my method with some optimization.