The camera control API (free, but requires registration) that canon offers obviates the need for reverse engineering in my opinion. I wrote something very similar to this using the API, but with added features like those from Magic Lantern (false color, AI autofocus, etc) hope to open source it soon if there's interest.