iPhone 3G/3GS/4 Undelete Photos/Videos Datarecovery
I found this technique listed in many places which shows you how to use a common Linux tool "dd" to dump the raw partition of your iPhone.
I give credit to this site for showing me the correct way to dd from the iPhone, I never thought to try it in the other direction: http://log.ijulien.com/post/182804914/iphone-3gs-data-recovery
Requirements
1.) Jailbreak your phone
2.) Install OpenSSH on your phone
Steps
*WARNING - make sure that you don't mix up the if= and of= commands, if you make that mistake your iphone will either be bricked and you will lose data for sure.
1.) From your computer (from the shell/terminal) run this command (*Note you must run it from your computer and not your iPhone, otherwise it won't work):
Correct Command: ssh root@youriphoneipaddress dd if=/dev/rdisk0s2s1 bs=1M | dd of=iphonebackup.img
This command is posted all over but doesn't work: dd bs=4096 if=/dev/disk0s2s1 | ssh user@192.168.1.125 ‘dd of=iphonebackup.img'
/bin/dd: opening `/dev/disk0s2s1’: Resource busy
2.) Recover with testdisk/photorec
Just point photorec to the image, and it will ask you a few questions and do the rest.
I was able to recover a lot of things but some .mov files don't play, I believe they may be alright but I need to find a way to fix the header (the header seems to be missing so they won't work).