Trinity:

http://trinityhome.org/Home/index.php?wpid=1&front_id=12

The first thing is to get all the data off the disk
Then you can start to repair the filesystem or recover data

Getting the data:
There are a couple of programs on there that will allow you to copy one disk to another a byte at a time. ddrescue is my tool of choice.
If it gets read errors it skips ahead until it can read again. Having recovered as much data as possible as quickly as possible, it then goes back to the 'holes' and uses a binary search approach to recover the data there. It then retries on errors.

I've recovered several failing disks this way.

Of course it's free - ain't community a wonderful thing
I mean - who'd want to profit from someone else's misfortune?

Oh, there are docs too:
http://trinityhome.org/Home/index.php?wpid=59&front_id=12

And it does antivirus etc etc...
_________________________
LittleBlueThing Running twin 30's