I would say rwsd and try (g)ddrescue
Its like dd but first safes the good sectors and later tries multiple times the bad ones...
It will probably try to do a full bir backup of the drive so try to get hand on another drive which can handle all stuff on the source Drive.
If the source drive has multiple partitions, try to safe them one by one.
Good luck.