I know this is a bit late, but I just wanted to add this to the thread so that everyone has a better understanding of iTunes and the M4P's encryption.
Here's how it works:
In order to buy tunes from iTMS, you have to get an account with Apple and get an "AppleID" which is basically just an email address for the username of the account. This account gets a "user key" assigned to it that is unique to the account.
When you buy a song, a few things happen..
a) the song gets encrypted using your user key
b) it gets stuck into an M4P wrapper which, among info about the song, contains the username for your account
When you try to play a song, your copy of iTunes has to authorize itself. Authorization works like this:
a) iTunes reads the username from the song
b) assuming you haven't authorized for that account already, iTunes contacts home base and asks you for your password
c) iTunes downloads a copy of the user key from home base and stores it locally
d) however, the local keyring is also encrypted, using computer specific information like some registry keys, etc, etc.
So, when you play the song, iTunes grabs the computer specific info, uses this to build the "system key" which will decrypt the local keyring. That local keyring contains the user keys for every account that this particular computer is authorized for. Using the user key for that song, it can decrypt the song, produce straight AAC, and play the thing.
Jon's hack works because he figured out how to derive the system key from the computer specific information. Using the system key, he can decrypt iTunes keyring file. Then he grabs the now decrypted user keys, writes them off to disk in another file, and then Linux or Windows or whatever can play the songs without having to mess about. It simply grabs the user key from its new plain text keyring and can then decrypt/play the file.
The important part of all this is that he worked out how to derive the system key. That was the whole of the protection involved, really. Security through obscurity. Given the fact that iTunes can play the song without being connected to the network, once iTunes is authorized, everything required had to be on the machine somewhere. It was just figuring out what computer specific bits iTunes used to encrypt the keyring that was the real trick here.
It's also useful to understand how the iPod can play these files. The answer is simply that when you transfer the M4P's to the iPod using iTunes, iTunes decrypts the keyring using the system key, reencrypts the keyring using a system key derived from iPod specific information (such as the iPod's serial number), and copies the new keyring to the iPod. Now the iPod can do the same process, essentially.
The new RealPlayer can supposedly play M4P's too. If they have Apple's blessing, then it can either contact Apple home base to get the relevant user keys or it can decrypt iTunes's local keyring to get them. Either way would have the same effect, really.
All you need to decrypt an M4P is the user key. Now that the system key method is out in the open, direct conversion from M4P's to M4A's is possible. All the code you really need is right there in Jon's new code.
However, looking at Jon's code, it seems that there may be a legality issue. This code is very strange. It is highly confusing, to say the least, and either Jon has the oddest programming style *ever*, or he simply found the relevant portion of iTunes with a disassembler and converted the machine language directly to C, with a bit of tuning in the process. The big giant blocks of hexadecimal numbers tend to make this programmer think the latter of the two is more likely the case. If he did, in fact, disassemble and convert iTunes code into C, then he may be guilty of copyright infringement. Not that it really matters, now that the method is known, it'll be duplicated and revamped a bit, and eventually you'll see a M4P2M4A.exe program that does nothing but convert protected files to unprotected ones. It's pretty easy to do, really. I'm surprised it doesn't exist already, although the code is very hard to understand exactly WTF is going on in some parts.
Sticking this into the VideoLAN code was a pretty smart move on Jon's part though. It's easier to argue that he was trying to go for interoperability with Linux that way, instead of simply writing a converter, which probably would have been simpler. Given the fact that it needs registry keys and a whole lot of other Windows specific crud to derive the system key, this was the only real way to do it. Get the user key, save it somewhere where the Linux copy of VideoLAN could read and use it. Good planning. I guess he learned something from the CSS debacle.

Edit: Note that this isn't a total crack for it, exactly. You still need the user key to decrypt the thing, and it gets this user key from where iTunes stores it. This means that you still cannot decrypt files that your copy of iTunes is not authorized to play. But, if you were authorized to play them, you could convert them to straight AAC and thus not need to be authorized anymore.