there is no way to recover physical bad sectors. at most wot can be done is, as siriusb said, they can be remapped if there are spare sectors.
however try the scandisk thingy in the end after trying every other software, coz once scandisk marks certain sectors as bad nothing can be done without a lowlevel format. the markings are pretty strong and once marked you can be sure that no data will be written to those "marked" sectors.