A ver, en la memoria se almacenan bytes... el procesador no entiende otra cosa que bytes, nada impide "hacer ejecutar un txt" al procesador... sin embargo el sistema operativo es quien media, es decir, tiene un formato esperado. Si a un txt, le impones (adjuntas delante) el formato esperado y lo arrancas el procesador lo 'tragará' como si fuera un ejecutable, pero si tiene escrito: "Desde un lugar de la Mancha de cuyo lugar no quiero acordarme"... esos bytes, el procesador los interpretará puramente como ensamblador, intentará decodificar operaciones que por no ser organizadas como tal, el resultado será impredecible... incluso podría dar alguna operación no válida.
Por ejemplo, la interrupción 21, en ensamblador es "CD 21", eso son dos bytes (en hexadecimal), cuyos valores (en byte decimal) son: 205 033 (entra también en juego el orden de los bytes, pero al caso lo obviamos para no complicarte más), estos bytes en la tabla ASCII se corresponden con: "Í!", es decir si escribes eso en un fichero de texto plano, y luego ese fichero fuera modificado para ser antecedido por una cabecera de ejecutable... ya ejecutaría una interrupción 21, y según que valor hubiera en un registro ejecutaría una u otra cosa...
En definitiva, los ficheros de datos, son 'consumidos' por los ejecutables, por si mismos no son ejecutados en el procesador, se cargan en memoria y son la 'materia prima' de los ejecutables... instrucciones a ejecutar por el procesadro requerirán algún dato que serán tomado de un fichero.
Un ejemplo tonto: Tienes el texto siguiente en un fichero de texto: "en un lugar de la mancha de cuyo lugar no quiero acordarme.", tu ahora abres este fichero en un editor de texto, y dices: vaya "en" empieza con mayúscula igual que en "La Mancha", ydecides cambiarlo, el editor (que es un ejecutable), llevará el texto a memoria, y una función específica cargada en procesador tomará las letras precisas y las remplezará la "en", por la "En", y "la", por "La" y mancha por "Mancha" (solo la letra afectada, pongo la plabara para ver donde aecta) y finalmente guardará a fichero el texto así cambiado. algo sencillo sin embargo conlleva bastante trabajo... abrir el fichero, leer su contenido, crear una ventana y cargar toda su interfaz, escribir el texto en la pantalla, en el sitio adecuado, cortando líneas y deplazando hacia abajo palabras si modificas el ancho de línea (si se ajusta a la vista), luego seleccionar el texto afectado con la interacción del ratón, y pulsación de teclas, sobre un menú o botones, y finalmente realizar el remplazo, recorriendo el texto para acceder a las letras seleccionadas para ser remplazadas por su equivalente en mayúscula (al final en el procesador convertir una letra a mayúsculas es muy simple: se ejecuta una operación
letra = (letra or 32), en el procesador sería algo como:
mov ah, letra //traer de una dirección de memoria 1 byte al registro llamado ah
or ah, 32 // realizar una operación or entre el contenido en el registor ah y el valor 32 (esto es pone a 1 el bit 5 en dicho registro)
mov letra, ah //llevar a la misma dirección de memoria el contenido del registro ah...
Previamente debe asegurarse que la letra que se quiere convertir en mayúsculas entra en el rango de 'caracteres mayusculables' (valga el palabro), un "3" no admite ser convertido en mayúsculas... as´ihab´ra una comparación previa... una tabla de 256 valores (desde el 0 al 255), cuyo contenido es 1 ó 0, si es 1 señala que esa casilla puede ser convertido a mayúsculas si es 0, no... etc... todo a grosso modo, dado tus escasos conocimientos.
Básicamente todos los ficheros se podrían resumir en sólo 2 modelos: ejecutables y datos. Los ficheros ejecutables se encargan de 'operar' con datos. Los ficheros de datos, son reconocidos por ejecutables específicos. El procesador no sabe nada de nada, es la artificiosidad del ser humano, quien le da funcionalidad y sentido a un ejecutable y a los datos. Incluso un ejecutable a un nivel más íntimo, también son datos... pero que una vez el S.O. lo identifica como tal y lo carga en memoria y lo apunta al procesador es cuando puede ser 'ejecutado'.
Esto es lo mismo que por ejemplo cocinar: el diseño inicial, la idea del programador es como una receta, el fichero ejecutable es como el cocinero haciendo la receta, y el fichero de datos, serían los ingredientes... unos ejecutables de 'segundo grado' son las librerías (son ejecutables que no funcionan solos, solo con llamadas especñificas dentro de ellos), sería como aparatos de que se sirve el cocinero (horno, el fuego, batidora, etc... que resuelven tareas especñíficas. Fíjate que cada 'aparato' utiliza siempre algún 'ingrediente' (datos), a los que opera: "batir huevos", "cortar rebanadas de pan", "pesar 100 gramos de queso", "subir a 200 grados el horno", etc... el cocinero de forma secuencial va realizando tareas... recurriendo a los artefactos para manipular los ingredientes, hasta obtener el palto coinado finalmente... Algo muy vago, pero piensa por ahí para resolver tú mismo varias cuestiones que todo el mundo puede llegar a ellas (por sí mismo).
Pero para que todo esto te aparezca claro, sería acertado que miraras (si sientes la curiosidad que despierta al que se acerca a la informática más de la cuenta )), empezaras por el principio... estudia como opera un procesador a grandes rasgos, luego que lo tengas asumido hazlo a un nivel más detallado, y así en cada etapa tendrás más claro todo hasta que comprendas todo el puzzle.
se me olvidaba... venía responderte solo esto y al final, te he puesto cosas que no pensaba y me olvidaba de a lo que venía:
Este foro es de "Hacking avanzado·, dejando de lado lo de 'avanzado', qué tiene que ver tu consulta con el hacking???... no veo adónde quieres ir a parar, solo ausmo que tienen un embrollo tremendo en tu cabeza, y que tratas de arrojar un poco de luz a todo ello, pero qué tiene ver tu consulta con respecto al hacking?... por algo publicaste en este sección en espcífico, no?.