dd will dump raw data from input source, and the data you dump is not a "file", it's just a combination of binary strings.
you may need hex editor/viewer to peek the contents of dd's dump file.
on linux, I often using hexdump.
if you using Windows, ultra editor can do this trick.
So, if you wanna retrieve the file you write in mmcblk0, you need:
1. remove the garbage data append in your dd dump. you have to calculate the size, and write a program to retrieve (wait a sec, why not using your previous program, just replace dd file instead /dev/mmcblk0 ? ).
2. or you just format your mmcblk0, and put the file in the file system.
after you get into your system, just mount this mmcblk0pX in /mnt, then get the file
I believe the second one is lot easier.