Abriendolo con CreateFile( ), leyendo bloques de datos con ReadFile( ),
en cuanto llegues al bloque de datos deseado, en la posicion deseada,
podrás modificar ese o esos octetos del buffer de datos. Con
SetFilePointer retrocederás una longitud equivalente al buffer leido,
y deberás reescribirlo (con los octetos cambiados) con WriteFile( )
Recomiendo que hagas las pruebas con copias de los archivos
ejecutables hasta que veas que realmente funciona. El programa
deberá llevar la cuenta del desplazamiento dentro del
archivo tras las sucesivas llamadas a ReadFile( ) para
poder calcular en que posición has leido el buffer. La posición
deseada deberá ser equivalente a DesplazamientoActual + IndiceBuffer
Primero deberás dominar estas operaciones básicas de lectura
y escritura antes de poder terminar tu programa.