ORA-01113: file 1 needs media recovery -- system01.dbf The only way to recover is from media backup? I know I cannot "rebuild" system datafile, but if I don't have a backup - I know shame on me! - Is there anyway to recover database?
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.