ORA-01113: file 1 needs media recovery -- system01.dbf
Without a valid database backup: forget it.
If you do have a valid backup you could use that to restore the database.
If your database is also running in archivelog mode and you have all archives created since that backup, you can also roll forward the transactions in them and doing so recover all data.

It all starts with a valid backup, or a standby database. No magic involved, just common sense.

You could take a look on jdul
 a tool that has 'reads datafiles when db is down or corrupted' in it's description. I never used it. Kurt has made more nice tools.