Large downloads often seem to become corrupted due to one or more of the following reasons:
* Bug in the download manager.
* Bad proxy server.
* Bad web server.
* Problems with your own computer.
Re-downloading corrupted files, specially those sized over 500 MB are really painful for most of us. And there is no guarantee that the re-downloaded file will be free of corruption as far as you are using the same configuration.
In such cases, its best to fix them manually instead of downloading again. The whole process is very simple, but requries enough concentration. Once you have mastered it, you will never have to worry about corrupted files.
Tools Required:
* WinHex
http://www.winhex.com/winhex.zip
* CURL
http://curl.haxx.se/latest.cgi?curl=win32-nossl-sspi
Steps required in brief:
* Make a backup copy of the corrupted file and open it with WinHex.
* Identify corrupted segments. Large sequences of zeros are all we have to search for in most cases.
* Re-download the corrupted segments with CURL.
* Write the retrieved data on appropiate offsets.
Now, Let Us Look at a step By step Example:
Let us assume that we have a corrupted file named corrupted.rar. We open it WinHex, and do the following things:
* Switch the offset representation from hex to decimal by clicking once on the offset area.
* Now we search for corrupted segments. Most of the time they will be sequences of zeros. As we can see from the first bytes of the opened file, it's a rar file. Files we download over the Internet are mostly compressed formats. By design, a fresh file should not contain sequences of zeros or other repeating bytes after the header part. So, we scroll a few pages down.
# Now we start searching for such sequences with CTRL+ALT+F.
# The search takes us to a place where we can see some zeros and repeating bytes. Surely this is one of the corrupted segments.
So, now we have to download the missing data using CURL. It's always a good idea to retrieve the data with some margin. In our case, we get the bytes from 01094304 to 01094512 in order to cover the screenshot size. In real case it should be even higher. So, we start command prompt and issue the command "curl -r 1094304-1094512
http://badserver.com/mygoodfile.rar" target="_blank">
http://badserver.com/mygoodfile.rar -o 01094304.bin" to download the mentioned segment of the original file, and save it to a file named 01094304.bin. For details, curl manual can help. After it's done, curl will terminate and we will have our file 01094304.bin right inside CURL's folder.]