Buscar y reemplazar fragmentos binarios es relativamente sencillo. Quizás estos hilos te ayuden:
Cargar exe como texto plano
Buscar y reemplazar Bytes
Cambiar cadenas de un proceso en ejecución
Leer el archivo lo puedes hacer como lo hacer en un stream o en un buffer de memoria localizada a bajo nivel del tamaño del archivo y leer sobre el también a bajo nivel (lread)
Saludos.