Si tienes localizado el offset del BYTE que quieres sobrescribir, puedes hacerlo sin necesidad de leer todo el fichero. Esto te lo permiten las funciones de fichero de C y la API de Windows. Si prefieres la API mira esto:
SetFilePointer. Para copiar un fichero:
CopyFile
Las funciones criptográficas de windows te permiten calcular el Hash MD5. Aquí tienes un ejemplo para calcular el MD5 de un fichero:
GetMD5FromFile.
Saludos.