The best question to ask is if you're going to be making your own patch format, or are you using an existing patch type (Such as IPS or UPS)? If you're using an existing one, you may be able to find a library for it that will provide instructions on how to incorporate them into your own programs.
The most simple format would be to seek to an offset in the file using a StreamWriter (Or StreamReader if creating a patch) and write a byte value to that position. You'd have to have a way to store addresses and the new bytes that they represent as well so that it can be shared with multiple users.