Marcando la diferencia

Del Mundillo de los Genios del Assembler – Entendiendo Como Saltarse a las Rutinas de la Bios de la PC


cubo3d

Hoy les voy a contar una buena experiencia de quien les escribe,  que les podrá ayudar a recorrer por cada rincón de los códigos que se encuentran en su computador a bajo nivel.

En mis primeros años de estudios, me sentía atraído por el mundillo interno de las computadoras, aveces no encontraba nadie que pueda manejar a ese nivel, ni profesores en la primera universidad donde me tocó estar, y eso que decían que es una de las mejores del país, muy pronto entendí que aveces se puede ser mejor que los propios profesores, lo único que no se tiene es la experiencia acumulada, pero no encontré ningún profesor que pueda entender lo que estaba interesándome y me pasaba muchas noches sin dormir revisando e imprimiendo miles de código en ensamblador. Hoy en día más alejado de informática, interesándome otras áreas, pero en ese entonces fue algo que necesitaba entender para continuar mis pasos para cumplir mis objetivos, evidentemente sabia que el campo laboral del Paraguay no requería personas que dominen este mundillo.  Hoy en recordación a eso, les voy a contar un secretillo!!!😉

Que entre tantas cosas que giraba en mi mente, las pude quitar; como algo que deseo compartirlas.

No voy a alargar las explicaciones voy a tratar de ser lo más preciso para que puedan entender.

Para empezar necesitan saber lo que son los:

VECTORES DE INTERRUPCIONES:  Son las tablas que usan los sistemas operativos y la Misma BIOS de las Computadoras para guardar pequeñas informaciones o punteros a las rutinas del sistema operativo o la BIOS. Dicho de otra forma, es la herramienta que se sirve el sistema operativo y la Bios, en especial en los procesos de arranque y test cuando se inicia las computadoras.   Parte de esa info es rellenada por la Bios y luego por el sistema operativo, ocupando el área más baja de la memoria, como su nombre lo dice es un vector, del mismo concepto que los aprendio en clases iniciales de las ciencias informáticas.  Pero tiene una particularidad importante.  En general son vectores que contienen punteros o apuntadores a otras áreas de memoria.  Viendo desde un nivel más alto eso es.  Pero imaginese si usted esta viendo como funcionan todo a nivel de assembler, es un mundo maravilloso.  Aunque puede imaginarse como FAR POINTERS del Lenguaje C.

Llamadas al sistema Operativo:  Dentro de la teoría de sistemas operativos, te podrían machacar con ideas que dicen que no se puede acceder a recursos del sistema operativo en forma directa, sino que debe usar las llamadas al sistema operativo.  Bueno, eso es en forma primaria una llamada a los vectores de interrupciones.

Gestor de interrupciones del MICROPROCESADOR INTEL; De hecho muchos de los procesadores o microcontroladores tienen operaciones de generación de llamadas a las interrupciones, los digo así para que no piensen que sólo los de la marca INTEL los tiene, o sólo las IBM PCs y Compatibles son propietarios de estas tecnologías.  La llamada general que me interesa hoy mostrarles es la sentencia para llamar a interrupción “INT XX” DONDE XX ES EL NUMERO DE LA INTERRUPCION A LA QUE SE DESEA LLAMAR…

Programas Desemsambladores:  Estos programas nos sirven para seguir la traza de lo que va pasando cuando un programa o parte del mismo está en ejecución.

¿COMO SE GENERA UNA INTERRUPCION?

Los programas, el sistema operativo o la Bios, pueden desencadenar en una llamada a interrupción. LLamando por ejemplo a una interrupción 10 de esta forma:  “int 10”.  Pero que ocurre internamente cuando se genera a esta interrupción, esta información no está documentada oficialmente, pero así funciona, es el motivo del porque les dejo este post.😉

Cuando se llama a una interrupción el Procesador lo que hace es ir a la posición más baja de la memoria de las computadoras e ingresar dentro del área del vector de interrupciones.  En ese momento lleva como una etiqueta pegada por la frente para que pueda ubicar la dirección donde empieza el indice del vector, una vez guardada esa dirección procede a un salto lejano a otra área de la memoria en forma de puntero, es decir, se va a un área donde se encuentra una rutina especial depositada por el sistema operativo o por la Bios.   Para que se entienda les voy a fabricar una formula, y con eso finalizo mis explicaciones,  Con esta premisa ustedes pueden seguir el funcionamiento interno de una rutina o cambiarla, si lo cambia inclusive está generando una especie de virus informático😉 un tips más…

POSICION = 4 * NUMERO DE INTERRUPCION,  PARA ESTE CASO: POSICION =  4 * 10

INT 10 = VECTOR (POSICION) = PUNTERO LEJANO A UN AREA DE MEMORIA DONDE SE ENCUENTRA UNA RUTINA.

SE MULTIPLICA POR 4 PORQUE DEBE CUMPLIR LAS NECESIDADES DE PUNTERO DE 32 BITs.

REFERENCIA: DEL PORQUE MULTIPLICAMOS POR 4.

NUMERO DE BYTES:

1 – BYTE

2  – WORD

4  – POINTER      <———

EXISTEN MUNDOS MAS INTERESANTES QUE PROGRAMAR, PERO TAMBIÉN LES DEBO MOSTRAR ESTA PARTE DE LA TECNOLOGÍA. LO DIGO PARA QUE SE PUEDA ENTENDER QUE MUCHOS CONFUNDEN Y DICEN QUE SOLO INFORMÁTICA ES TECNOLOGÍA. “OPEN YOUR MIND…”

“UNETE AL IEEE, ESTARAS EN AVANZADA…”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s