Did you add the files to be staged before you reset? If so then the following would work:
git fsck --cache --no-reflogs --lost-found --unreachable HEAD
That will show you something like:
Checking object directories: 100% (256/256), done.
unreachable blob 97145fe866b78bf0ff0d59b0b4d6b69f1446faa9
You can then say
git cat-file blob 97145fe866b > file
That will then add it back to the working tree.
Unfortunately if you did not add or commit the files there is no way to get back unstaged changes after a reset --hard.