assembly - Escribiendo mi propio BIOS
dos (4)
No estoy loco, solo reinventar la rueda: D
Escribí boot-loaders, mini-drivers para mouse y teclado, mini OS y más.
Siempre trato de evitar las interrupciones de DOS, solo con BIOS, tratando de avanzar un mini sistema operativo unitario, pero de repente decidí escribir mi propio BIOS :)
La Leyenda dijo:
Fui programador de alto nivel, luego de bajo nivel. ¡Algún día seré programador de lenguaje automático!
¿Está escrito un BIOS en ensamblaje? ¿Cómo puedo flashearlo? ¿Cuál es el mecanismo? ¿Puedo comenzar a editar mi BIOS actual?
FWIW Modbin es un programa de DOS que, como su nombre indica, MODIFICA las imágenes de BIN, especialmente con el propósito de realizar cambios simples y bastante extremos en el código de BIOS existente.
Si puedes obtener un viejo mobo (muchos se descartan aún trabajando) te animo a jugar con el BIOS. Es informativo y divertido, si uno tiene tanta inclinación y pareces estar :) Hubo un tiempo en que descargué imágenes de BIOS de mobos que tenían los mismos o similares chipsets, aunque hechos por un fabricante diferente ... a veces con una ventaja considerable, incluyendo tan simples como continuar obteniendo actualizaciones de la BIOS después de que el fabricante original de mobo dejara caer la pelota o se arrugara, pero también características y opciones y alteraciones orientadas al rendimiento.
Esto condujo a "HOT Flashing" que está arrancando un chip BIOS encajado de modo que los pines apenas hicieron contacto y una vez arrancaron, tirando de ese y sustituyendo uno malo (a menudo uno que fuxored) mientras todavía se ejecuta y parpadea empleando la característica de BIOS en caché que mantiene el sistema activo. Cosas divertidas para aquellos de nosotros de la persuasión geek y me dieron la confianza para escribir controladores de dispositivo para OS / 2
Hay formas de flashear la biografía, aparte de tener la PC funcionando quizás. Pero requiere algo de hardware. Sin embargo, no debería ser muy caro.
Puede intentar algo como este tipo de técnica: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/
Esta charla que vi hoy: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/
Lo explicó con más detalle, aunque es posible que no esté buscando infección, se cubren algunas técnicas para llegar a la biografía, donde el clip de programación es uno de ellos.
Si desea escribir un BIOS para una PC compatible con IBM PC (que es lo que la mayoría de las PC de escritorio son hoy, aunque con más extensiones para el conjunto de instrucciones de la CPU, y algunas interfaces de BUS diferentes), entonces le sugiero que consulte la IBM PC , IBM PC XT , y IBM PC AT Technical Reference Manuals . Particularmente, el manual de IBM PC AT, ya que es el estándar de facto.
Estos manuales tienen una lista de programas del BIOS completo que IBM usó en sus computadoras, y están en lenguaje ensamblador. Puede que tenga que buscar un poco esos manuales (especialmente IBM PC AT one) para encontrarlos, ya que algunos no se enumeran directamente en la tabla de contenido, pero están ahí. Con suerte, esos BIOS pueden ayudarlo a comenzar.
Un BIOS puede escribirse en ensamblador pero no tiene que ser así, algunas partes deben ser para obtener los parámetros para la llamada al sistema, ya que no coinciden con los convenios de llamada de los compiladores.
¿Cómo lo flasheas? Varía de la placa base a la placa base, comenzaría con una máquina virtual de código abierto y escribiría una biografía para eso. O crea una máquina virtual donde hayas escrito la biografía. El mecanismo varía de un proveedor a otro, generalmente se inicia dos (dos no está muerto, está muy vivo en el mundo de las PC, especialmente en el desarrollo de la placa base y los sistemas integrados). No me equivocaría con una placa madre real, si aún no conoces las respuestas a todas estas preguntas vas a construir una serie de placas base si tomas ese camino.
Puede tratar de tomar una actualización de BIOS para su placa madre y aplicarle ingeniería inversa (aunque es probable que haya un acuerdo de clic que indique que no lo hará). Si lo resuelves, puedes cargarlo y hackearlo en at. No iría allí, bloquearás tu sistema antes de resolverlo.
¿Escribir una biografía realmente es lo que buscas? Bastante vieja escuela, sería como escribir código 6502 por diversión. Hay muchos problemas de bajo nivel que son más útiles e interesantes.
Si puedes escribir asm, el código de la máquina de escribir no es tan difícil en absoluto, podrías hacerlo por diversión. x86 es espantoso, debe dedicar algo de tiempo a aprender otros sistemas y sus códigos ASM y máquina (y escribir sistemas operativos para ellos). ARM domina el mundo y no depende de una BIOS. Me han dicho que para obtener una tarjeta de video en un sistema que no sea x86, todavía tiene que manipular algo en x86 en la biosfera x86, podría descubrir cómo sacar una tarjeta de video convencional sin la necesidad de ejecutar la biosfera x86. ver un emulador ejecutar la BIOS y ver lo que hace, resolverlo reemplazar esa energía en init sin que la BIOS lo haga ... Escribir un simulador de conjunto de instrucciones o desensamblador es el siguiente paso más allá de escribir código de máquina, no lo desperdiciaría ni siquiera un segundo de tiempo en x86 sin embargo, puedo sugerir una lista de alternativas (o podría simplemente jugar con los simuladores que he escrito o recopilado).
Si una bios x86 es la forma en que desea ir, su mejor camino es escribir, reemplazar o piratear una bios para que una máquina virtual sea qemu, virtualbox u otra. Reemplazar esa BIOS con la suya probablemente estaría reemplazando un archivo en algún directorio o usando una opción de línea de comando para especificar una BIOS alternativa. Una vez que tenga mucha experiencia en eso, entonces, si todavía hay placas base con biografías heredadas, tal vez pueda hackear su camino hacia la programación de uno (necesita comprar varios de cada tipo de placa madre, como usted lo hará). Con tantos sistemas integrados que se pueden obtener por $ 20 a $ 200 con el mismo nivel de experiencia adquirida, no tiene sentido piratear una placa base de PC sin esquemas y documentación decentes. Podrías desenterrar una PC original con el esquema y la lista de biografías documentadas, y la bios estando enchufada así que si la tuya no arranca (y no destruye la placa base) no es un ladrillo puedes reprogramar o reemplazar la bio chip. Probablemente quiera usar un microcontrolador para presentarse como una biografía falsa, ya que encontrar el hardware adecuado para reprogramar más chips de la BIOS es quizás más difícil de encontrar que las PC originales que funcionan ... Hay una comunidad amiga que probablemente sea mucho más divertida y siéntete feliz de tener que mejorar / modificar su BIOS, por ejemplo, poner el hardware moderno detrás de las llamadas al sistema heredado.