Don't have an iPhone/can't afford a real authenticator? Look no further.
I whipped this up in an hour or so after stumbling upon Kynox's Battle.Net Authenticator Library (yes, about 99% of the work was done by him :P).
It's a simple program, it generates a serial for you to attach to your account, then continuously refreshes a working code whenever the program is open. However, I've added the extra feature of 'Server-Side Backup', which will place your authenticator in a database, just in case you ever accidentally mess up the files, or delete the authenticator before having a chance to remove the authenticator from your account. I can't tell you how many times it's happened to me. Okay, I can. Once. However it would have been handy if I could have backed it up before I had to call Blizzard.
Edit: When you attach the authenticator to your account, you may recieve an error message. I don't know why this is, but the Authenticator is definitely attached to the account!!
Anywho, here's a screenshot:
Here's the virus scans of the two files included in the zip:
PC Authenticator.exe
BlizzAuthenticator.dll
And here's the download link:
For US players
For EU players