OK, so one of my coworkers opened a backup file from a 2005 server and a 2008 in a HEX editor server and found where there was a difference in the header of the file and it turns out that at position 3756 (0x0EAC) there is a two byte value that when converted to an integer is the internal database version. Here's some C# code to get it:
FileStream f = new FileStream("C:\\SQLData\\MyBackupFile.bak", FileMode.Open);
byte[] b = new byte[2];
f.Seek(3756, SeekOrigin.Begin);
b[0] = (byte)f.ReadByte();
b[1] = (byte)f.ReadByte();
Int16 dbVersion = BitConverter.ToInt16(b, 0);
f.Close();