Hola, estoy tratando de parchear un ejecutable para DOS compilado con turbo-c de los tiempo de DOS, el simulador que estoy utilizando es dosbox-x y el ida pro 7.7 para hacer el análisis.
Para parchear elegí una función que no utiliza el programa.
Me puse a hacer pruebas y rellené con nops el espacio que voy a utilizar de la función para luego poner el código.
El problema que tengo es que al parchear manualmente la función con el HxD, yendo al ida viendo la dirección física y luego probando a rellenar con nops en el HxD, mi sorpresa fue que el byte en la posición 10, dentro de la función, cambia, haciendo varias pruebas, el byte cambia con un desplazamiento de 0x10.
Si insisto y lo parcheo con ida, poniendo un nop en el byte 10, y lo depuro con dosbox-x la situación se vuelve aún más extraña, y sucede donde originalmente estaba el mov ax, seg dseg:
Me gustaría entender por qué pasa eso sin tener que depurar dosbox-x, si alguien tiene alguna idea...