lunes, 5 de mayo de 2008

¿Quieres ser un hacker? (Parte 3)

NightRaider [lexy.galban@fcf.camaguey.cu]

Conceptos básicos de redes

Dispositivos

Antes de empezar a explicar protocolos y puertos, hay que familiarizarse con los iconos de los dispositivos más comunes que se ven en los esquemas básicos. Éstos son:

Topologías

Con estos dispositivos se pueden crear las denominadas redes de área local o LAN (Local Area Network). Con una LAN se puede tener una comunicación eficaz de dispositivos tales como ordenadores e impresoras para compartir recursos, se puede dar acceso a Internet con total control del administrador, etc. A la hora de diseñar una LAN, se puede optar por alguna de las siguientes topologías físicas:

En la primera, topología de Bus, se tienen todos los ordenadores conectados a un único medio de transmisión que a su vez está conectado a unas terminaciones a ambos lados. Todos los ordenadores se ven entre sí. En la configuración en Anillo se conecta un ordenador al siguiente, y el último al primero, de esta manera sólo se ve un ordenador con el contiguo. En la topología en Estrella se conectan todos los terminales a un único punto central y es éste el que se encarga de retransmitir la información. Si se conectan varios puntos centrales entre sí, se obtiene una topología de Estrella Extendida. Por lo contrario, si se van concatenando dispositivos a diferentes niveles se obtiene una topología Jerárquica

Modelo TCP/IP:
Introducción

El modelo TCP/IP fue desarrollado por el DoD (Department of Defense) de los EUA y DARPA (Defense Advanced Research Project Agency) en la década de los 70. El modelo TCP/IP fue pensado como un estándar abierto para poder conectar dos máquinas cualesquiera, todo el mundo puede utilizarlo y es en el que se basa Internet.

Capas TCP/IP

El modelo TCP/IP define cuatro capas totalmente independientes en las que divide el proceso de comunicación entre dos dispositivos. Las capas por las que pasa la información entre dos estaciones o máquinas son las siguientes:.

Aplicación

Es la capa más cercana al usuario final y la que le proporciona servicios de red. Como es la capa superior, no da servicios a ninguna capa. Es la responsable de traducir los datos de la aplicación, programa, para que puedan ser enviados por la red. Sus funciones se resumen en:
- Representación
- Codificación
- Control de diálogo
- Gestión de las aplicaciones de usuario

Transporte

La capa de transporte establece, mantiene y termina circuitos virtuales, proporciona mecanismos de control de flujo y permite las retransmisiones y proporciona mecanismos de detección y corrección de errores. La información que le llega de la capa de aplicación la divide formando diferentes segmentos. El direccionamiento se realiza a través de puertos. Sus funcionalidades básicas son:
- Fiabilidad
- Control de flujo
- Corrección de errores
- Retransmisión

IP

Divide los segmentos de la capa de transporte en paquetes y los envía por la red. No proporciona fiabilidad en las conexiones, de esto ya se ocupa la capa de transporte. Realiza un direccionamiento lógico de red mediante las direcciones IP. Es la capa responsable de proporcionar conectividad entre usuarios. Selecciona la mejor ruta a elegir entre origen y destino.

Acceso a Red

Se encarga de controlar el acceso al nivel físico utilizado y enviar la información por el mismo. Transforma a información básica (bits) toda la información que le llega de las capas superiores y la prepara para que se pueda enviar por el medio. El direccionamiento físico de la red lo hace mediante direcciones MAC.

Protocolos

Para poder enviar información entre dos máquinas, es necesario que ambas estaciones hablen el mismo lenguaje para que se entiendan entre ellas. A este lenguaje se le llamará protocolo.
Los protocolos más representativos que figuran en la capa de Aplicación de la torre TCP/IP
son:
- File Transfer Protocol (FTP)
- Hypertext Transfer Protocol (HTTP)
- Simple Mail Transfer Protocol (SMTP)
- Domain Name System (DNS)
- Trivial File Transfer Protocol (TFTP)

Los protocolos de la capa de Transporte son:
- Transport Control Protocol (TCP)
- User Datagram Protocol (UDP)

El protocolo más conocido de la capa de Internet es:
- Internet Protocol (IP)

El protocolo utilizado en la mayoría de redes locales en la capa de Acceso es:
- Ethernet

A continuación se describirán los protocolos anteriormente comentados y su puerto asociado de la capa de Transporte. Más adelante se detallarán todos los puertos y su significado.

Protocolos de la capa de Aplicación

El protocolo FTP es útil para la transmisión de archivos entre dos máquinas. Utiliza TCP para crear una conexión virtual para la información de control, y luego crea otra conexión para el envío de datos. Los puertos utilizados son el puerto 20 y 21. El protocolo HTTP es para visualizar la mayoría de páginas web de Internet. Sus mensajes se distribuyen como los de correo electrónico. El puerto que se utiliza es el 80. El protocolo SMTP es un servicio de correo que se basa en el modelo de FTP. Transfiere mensajes de correo entre dos sistemas y provee de notificaciones de correo entrante. El puerto que se utiliza es el 25.

El protocolo DNS es el que se encarga de reconocer el nombre de la máquina remota con la que se quiere establecer la conexión y traduce el nombre a su dirección IP. El puerto que se utiliza es el 53. El protocolo TFTP tiene las mismas funciones que el protocolo FTP pero funciona sobre UDP, con lo que hay mayor rapidez pero menor seguridad y confiabilidad. El puerto que se utiliza es el 69.

Protocolos de la capa de Transporte

Dentro de la capa de transporte existen dos protocolos que se utilizan para el envío de segmentos de información:
- TCP: El protocolo TCP establece una conexión lógica entre puntos finales de la red. Sincroniza y regula el tráfico con lo que se conoce como “Three Way Handshake”. Controla el flujo para que no se pierdan los paquetes y evitar así una congestión en la red. Es un protocolo orientado a conexión.
- UDP: El protocolo UDP es un protocolo de transporte no orientado a conexión que intercambia datagramas sin la utilización de ACK ni SYN que se utiliza como acuse de recibo en el caso de TCP. El procesamiento de errores y retransmisiones es soportado por los protocolos de capas superiores.

Protocolos de la capa de Internet

El protocolo IP sirve como protocolo universal para unir dos ordenadores en cualquier momento, lugar y tiempo. No es un protocolo orientado a conexión y no es confiable. Ofrece servicios de Best Effort: hará cuanto sea posible para que funcione correctamente. El protocolo IP determina el formato de la cabecera del paquete IP donde se incluye la dirección lógica y otras informaciones de control.

Direcciones IP

Las direcciones IP son los identificadores que se utilizan para diferenciar a cualquier dispositivo que se encuentre en la red. Cada dispositivo debe tener una dirección IP diferente para que no haya problemas de identidad dentro de la red.

La dirección IP consta de 32 bits que se dividen en 4 octetos (8 bits) separándolos por puntos. Lógicamente se compone de una parte que identifica la dirección de red (network) a la que pertenece y una segunda parte que es su propio identificador dentro de esa red, dirección de máquina (host).

Hay direcciones IP públicas y privadas. Las primeras deben ser únicas en todo Internet porque sino no sería posible el encaminamiento y por tanto la comunicación. En cambio, las direcciones privadas corresponden a redes de uso privado y que no tienen conexión alguna con otras redes, no tienen conexión a Internet. En las redes privadas hay que tener en cuenta que no se puede duplicar ninguna dirección IP en toda la red privada. Las direcciones IP privadas existentes y que están definidas por el organismo internacional IANA son las que se engloban en los márgenes siguientes:

10.0.0.0 a 10.255.255.255
172.16.0.0 a 172.31.255.255
192.168.0.0. a 192.168.255.255

Las direcciones IP se dividen en clases que dependen del tamaño asignado para la parte de red y el tamaño que corresponde a la parte de la maquina.

Según el tamaño asignado a cada parte se podrán o crear más redes o albergar más dispositivos en cada red creada. Las clases existentes son:
- Clase A: El primer bit es siempre cero, con lo que comprende las direcciones entre 0.0.0.0 a 126.255.255.255. Las direcciones de 127.x.x.x están reservadas para el servicio de loopback o localhost.
- Clase B: Los dos primeros bits del primer octeto son ‘10’. Las direcciones que pertenecen a esta clase están comprendidas entre 128.0.0.0 y 191.255.255.255.

Clase C: Los tres primeros bits del primer octeto son ‘110’. Las direcciones están comprendidas entre 192.0.0.0 y 223.255.255.255.
- Clase D: Los cuatro primeros bits del primer octeto son ‘1110’. Las direcciones están comprendidas entre 224.0.0.0 y 239.255.255.255. Se utilizan para grupos multicast. Las restantes direcciones son para experimentación. A este último grupo se les puede encontrar como Clase E.

Actualmente, para la diferenciación entre la parte de red y la parte de máquina no se utilizan las clases, sino que lo que se utiliza es la máscara. La máscara identifica con un ‘1’ binario la parte que es de red y con un ‘0’ binario la parte que es de máquina. Por lo tanto, para identificar una máquina, además de la dirección IP es necesario especificar una máscara de red: IP: 172.16.1.20 Máscara: 255.255.255.0

Se ha visto que las direcciones IP 127.X.X.X estaban reservadas y que no se pueden utilizar para identificar a ningún dispositivo. Del mismo modo existen otras direcciones de máquina que no se pueden utilizar, éstas son la dirección de red y la dirección de braodcast. La dirección de red es aquella en que la parte que identifica al dispositivo dentro de la red es toda ceros. Esta dirección no se puede utilizar ya que identifica a una red y, por lo tanto, nunca debe identificar a un dispositivo en concreto. IP: 172.16.1.0 Máscara: 255.255.255.0

La dirección de bradcast es aquella que los bits que identifican al dispositivo dentro de la red son todo unos. Esta dirección tampoco se puede usar ya que es la que se utiliza cuando se quiere enviar alguna información a todas las máquinas que pertenecen a una red en concreto. IP: 172.16.1.255 Máscara: 255.255.255.0

Puertos

Tanto TCP como UDP utilizan puertos para pasarse información con las capas superiores. Con la definición de un puerto, es posible acceder a un mismo destino, un host, y aplicar sobre él distintos servicios. Con la utilización de los puertos los servidores son capaces de saber qué tipo de petición a nivel de aplicación le están solicitando, si es http o ftp, y pueden mantener más de una comunicación simultánea con diferentes clientes.

Si se quiere acceder a la web de www.osstmm.org cuya IP es 62.80.122.203, como el servidor de WEB está en el puerto 80, lo que se está estableciendo es una conexión al denominado socket 62.80.122.203:80 Para entenderlo mejor, se puede hacer la analogía siguiente: pensemos que la dirección IP es como el puerto de Barcelona, donde llegan muchos barcos, y los puertos de las direcciones IP son cada uno de los muelles en los que van a parar cada barco. Para poder mantener una coherencia en los números de los puertos la IANA, organismo internacional regulador, establece que los puertos inferiores a 1024 se utilizan para los servicios comunes y el resto de números de puertos es para asignaciones dinámicas de programas o servicios particulares.

Encapsulación

Para enviar, por ejemplo, un mail desde un ordenador a otro la información irá pasando una serie de transformaciones, es decir, la capa superior generará una serie de datos que será recogida por la capa inmediatamente inferior. La capa inferior cogerá la información que le han pasado y le añadirá una cabecera para poder agregar información suficiente para que la capa del mismo nivel del destino pueda entender qué debe hacer con aquella información. A este procedimiento recursivo se le conoce con el nombre de encapsulación. Cada capa hace una encapsulación de la anterior, hasta llegar a la última capa, la de enlace, que hace posible la transmisión de los datos por el medio físico de la LAN: cable, radio, etc. En el siguiente esquema se explica la encapsulación de una forma más gráfica:

Cuando la información encapsulada llega al destino, éste sólo tiene que desencapsular la
información realizando el procedimiento contrario.

Continuar leyendo

Seguimos tapando huecos

master [jglopez.uci@gmail.com]

Hace ya unos días leí un artículo en una página antigua de la escuela:
"Microsoft ha publicado seis boletines de seguridad (MS07-030 al MS07-035) dentro de su ciclo habitual de actualizaciones" y decido compartirlo con ustedes.

Seis Boletines de Seguridad en Junio.

Según la propia clasificación de Microsoft cuatro de los boletines presentan un nivel de gravedad "crítico", mientras que uno es "importante" y otro "moderado".

* MS07-030: Evita dos vulnerabilidades en Microsoft Visio que pueden ser explotadas por atacantes remotos para comprometer los sistemas afectados. Tiene una clasificación de "importante" y afecta a Visio 2002 y 2003.

* MS07-031: Se trata de una actualización para corregir una vulnerabilidad en la forma en que Windows Schannel en un equipo cliente valida las firmas digitales enviadas por el servidor. Afecta a Windows 2000, Windows Server 2003 y Windows XP, está considerado como "critico".

* MS07-032: Esta actualización resuelve una vulnerabilidad local en Windows Vista que podría permitir que usuarios sin privilegios tuvieran acceso a almacenes de datos de información de usuario locales, incluidas las contraseñas administrativas del Registro y el sistema de archivos local. Está calificado de gravedad "moderada".

* MS07-033: Actualización acumulativa considerada "crítica" para Microsoft Internet Explorer, que además soluciona seis nuevas vulnerabilidades que podrían permitir la ejecución remota de código arbitrario. Afecta a Internet Explorer 5.01, 6 y 7.

* MS07-034: Se trata de una actualización acumulativa de nivel "crítico" para Outlook Express y Windows Mail, que además resuelve cuatro vulnerabilidades que pueden permitir a un atacante remoto la ejecución remota de código arbitrario o obtener información sensible.

* MS07-035: En este boletín, de carácter crítico, se ofrece la resolución para una vulnerabilidad en la API Win32 que podría permitir la ejecución remota de código. Afecta a Windows 2000, XP y Windows Server 2003 y está considerado como "critico".

Las actualizaciones publicadas pueden descargarse a través de Windows Update o consultando los boletines de Microsoft donde se incluyen las direcciones de descarga directa de cada parche. Dada la gravedad de las vulnerabilidades Microsoft recomienda la actualización de los sistemas con la mayor brevedad posible.

¿Es que acaso un sistema operativo puede seguir a flote con tantos huecos? :)

Continuar leyendo

Probabilidades

Alien [blackhat4all@gmail.com]

Un tema recurrente en los libros sobre matemáticas y programación es el caso de las probabilidades. No es difícil encontrar al menos un capítulo sobre el tema en cualquiera de los textos citados anteriormente, y es que la probabilidad, en especial la aplicada a los juegos de azar es algo que, por mucho que se esquive, siempre resulta de interés.

Supongamos que estamos tirando monedas al aire, en la primera tirada obtenemos cara, en la segunda, casualmente obtenemos cara y por tercera vez volvemos a obtener una cara, ahora, si nos pidieran que escogiéramos entre cara o cruz para el cuarto lanzamiento, ¿que seleccionaríamos?. Pienso que todos concordarían conmigo en que seleccionaríamos cruz.

¿Por que?

A pesar de que existe el mismo porcentaje a que salga cara o cruz en cada tirada, por un problema de estadística, es más probable que salga cruz, ya que en los 3 casos anteriores salió cara y obtener el mismo resultado nuevamente sería un capricho del universo, aunque como dije antes, existe la misma posibilidad para una u otra elección.

De forma a veces inconsciente, hacemos este análisis a diario e incluso nos llevamos por el mismo para determinar ciertas decisiones en las que el azar juega un papel importante. Digamos por ejemplo que hemos confeccionado un programa cuya única función es generar números aleatorios entre el 1 y el 10. Al ejecutarlo por primera vez obtuvimos un 8. La próxima vez que lo corramos todos y cada uno de los números tienen la misma posibilidad de salir, sin embargo el 8 estará ya casi descartado de nuestra lista. En caso que saliera nuevamente deberíamos verlo como algo bastante curioso y si al intentarlo una vez más obtenemos el mismo resultado, al menos yo cambiaría el board con micro y todo antes de hacer una nueva ejecución (ja ja ja).

Hasta el momento les he puesto solo dos ejemplo, pero la gama de aplicaciones que pudiera tener este tema de las probabilidades es amplísima y puede ir desde un simple juego de dados, hasta uno de los más complejos juegos de mesa y en los que influye inmensamente la suerte y el azar.

Los juegos de azar han sido un desafío para matemáticos y programadores. Desde años atrás ambos grupos han luchado tratando de encontrar fórmulas que logren definir el comportamiento de un juego en un momento determinado o al menos las posibilidades que tiene un jugador para lograr acertar.

Para ilustrar mejor esto que explico, tomaré como referencia un juego que está prohibido, pero que por la dificultad para acertar dada la cantidad de posibilidades, veo como el más idóneo para la mejor comprensión de este artículo, me refiero a la bolita. No es mi interés adentrarme en el funcionamiento ni complejidades del juego, de hecho, el conocimiento que logré reunir del mismo para escribir este artículo es bastante básico, así que ruego me disculpen si no me ajusto de forma perfecta a las reglas.

En el intervalo del 1-100, solo tres números serán los seleccionados como válidos. Un jugador puede seleccionar todos los que quiera, pero solo si alguno de los números de su selección se corresponde con los 3 números sacados al inicio se considerará ganador. Como se puede apreciar, la probabilidad de acertar es bastante difícil, ya que se deberá escoger 3 de 100, o lo que es lo mismo, solo un número de 33 será el correcto.

Según tengo entendido, muchos escogen los números dejándose llevar por un sueño, en lo particular y como muchos que conozco no dedico demasiado tiempo a la cama y cuando lo hago no me puedo dar el lujo de ponerme a soñar (ja ja ja).

Si fuera un jugador me guiaría por el ejemplo de la moneda, o sea, dejaría pasar algunas tiradas para ver el patrón que se cumple o no y en base a eso haría mi selección. En este caso es más difícil, ya que no contamos con dos posibilidades sino con 100, pero básicamente es el mismo funcionamiento.

Ejemplo:
El siguiente ejemplo ilustra de manera abreviada el juego del que les hablo, y digo abreviada porque no trabajaré en base a 100 números, sino en base a 10.
Supongamos que el juego se desarrolla de la siguiente manera:

Días

Números

1 1-5-8
2 3-7-6
3 4-5-2
4 1-6-7
5 x-x-x
6  
7  

Lo que hemos hecho es una tabla en la que están representados los días y los números ganadores en cada día. Como se puede ver hasta el día 4 no ha salido el número 9. La lógica indica que en el transcurso de los días 5, 6 y 7 debe salir, sin embargo (REPITO), esto solo es una probabilidad, no una realidad. Para el 5to día podemos tener un resultado idéntico que para el 1er día, o puede ser que el 9 no salga en toda una semana, recuerden que, por mucho que se quiera tratar de graficar, este seguirá siendo un juego de suerte y azar.

Me gustaría poder seguir hablando sobre el tema, pero si han entendido hasta aquí, creo que lo mejor será que se dirijan hasta la sección de códigos, allí se explica mejor…

Continuar leyendo

Drivers o Controladores

Yordan [truano@infomed.sld.cu]

Hola amigos, este articulo estaré hablando de los drivers, ¿cuantos de nosotros no nos hemos vuelto locos tratando de conseguir en algún momento los drivers de un modem o de una motherboard de los cuales no tenemos el CD de instalación? Pero al final, ¿Qué son los Drivers?, ¿Para que tenemos que instalarlos en nuestra PC?, vamos a despejar todas estas dudas en este preciso instante.

Un Driver es un software que sirve de intermediario entre un dispositivo de hardware y el Sistema Operativo, el mismo le indica al SO bajo que condiciones trabaja un determinado dispositivo, cual es la IRQ (pedido de interrupción al micro) que usará ese dispositivo, y se encargará de tratar de sacarle el máximo partido al hardware para el que fue diseñado.

Tenemos que tener siempre en cuenta que cada drivers es especifico para cada modelo de hardware así como para cada SO, de esta manera tenemos que los drivers de una Tarjeta de Video ATI no servirán para una Nvidia, incluso dentro de la misma marca muchas veces no es compatible con varios modelos, en el caso de Nvidia crea paquetes de Drivers que sirven para toda una gama de modelos, pero no siempre es así, también tenemos que saber que los driver de Windows 98, no servirán sobre Windows XP ni viceversa, piensen en el driver como algo tan personal como un cepillo de dientes.

Cuando instalamos Windows en nuestra PC por lo general tenemos que hacer la instalación de los Drivers, Windows XP o Vista reconoce una gran cantidad de dispositivos pero incluso estos drivers que instala Windows son por defecto, es recomendable reinstalar los que vienen en el CD de instalación del dispositivo o mejor aun, un paquete de drivers bajados de internet mas actualizados, los cuales se pueden conseguir gratis en la web del fabricante.

¿Como podemos saber si a nuestra PC le hace falta instalar algún driver?
Fácil, para eso tenemos el Administrador de Dispositivos y vamos a aprender a utilizarlo.

En el explorador de Windows hacemos click derecho en Mi PC
Propiedades/Hardware/Administrador de Dispositivos
Ya estando dentro el Administrador nos mostrará con un signo de interrogación amarillo cuando a un hardware le falta el driver.

Cuando vamos a obtener un driver lo primero es conocer la marca y modelo del dispositivo que necesitamos, lo recomendable es usar un software de identificación de hardware, como el Sisoft Sandra, al AIDA, pero yo personalmente recomiendo el Everest, aun teniendo alguno de estos software hay veces que no podemos identificar nuestro dispositivo y tenemos por obligación que abrir nuestra PC y fijarnos en hardware en cuestión, en algún lugar de este siempre viene la Marca y el Modelo, ya teniendo esta información podemos entrar a internet e ir al sitio oficial del fabricante y bajar nuestro Driver.

Espero que todos estén complacidos y aprendan que es un drivers y como se utiliza.
Salu2 “El Pika”

Continuar leyendo

Códigos Beep Error en PC

NightRaider [lexy.galban@fcf.camaguey.cu]

El otro día estuve navegando y encontré una información de mucha utilidad que nos servirá para cuando la pc no quiera arrancar y comience a pitar.

Estos sonidos son emitidos en el arranque por el pequeño altavoz que lleva la torre y nos comunican los posibles problemas de los dispositivos de hardware. Para oírlos por supuesto el altavoz tiene que estar perfectamente conectado (es algo evidente ¿no?).

Lo normal es oír un beep cuando arranca el PC (eso es que todo va bien).

Hay marcas de BIOS que tienen sus propios códigos pero principalmente son estos.

ningún sonido --------- fuente de alimentación defectuosa.
sonido constante------- tensión de la fuente de alimentación incorrecta.
Sonido largo----------- error de DRAM (refresco).
1 largo, 1 breve------- error de la placa base.
1 largo, 2 breves------ error de la controladora gráfica o de memoria gráfica.
1 breve---------------- error de la controladora de unidad gráfico, también posible error DRAM.
3 breves--------------- error de DRAM, el más frecuente.
4 breves--------------- error en el componente del reloj.
5 breves--------------- error del procesador.
6 breves--------------- error de la controladora de teclado (8042), error de Gate-A20.
9 breves--------------- Error de ROM.

Ahora códigos beep especiales de BIOS Award.

1 breve---------------- Normal, ningún error durante el POST.
1 breve, 2 largos------ error gráfico.
1 breve, 3 largos------ error de teclado.
2 breves--------------- cualquier error no fatal.

Códigos especiales de IBM.

1 Breve---------------- Normal, todo bien en el POST.
2 Breves--------------- error en el POST, indicación en el monitor.
Sonido constante------- error en la fuente de alimentación.
1 largo, 1 breve------- error de la placa base.
1 largo, 2 breves------ error gráfico (Mono/CGA)
1 largo, 3 breves------ Error gráfico (EGA)
3 largos--------------- error de teclado.

BIOS marca AMI.

1 breve---------------- error de DRAM de refresco.
2 breves--------------- error de paridad.
3 breves--------------- error de RAM (64 k Base).
4 Breves--------------- error de reloj.
5 breves--------------- error de procesador.
6 breves--------------- error de teclado.
7 breves--------------- error de modo virtual.
8 breves--------------- error general de memoria gráfica.
9 breves--------------- error de sumas de control del ROM-BIOS.
1 breve, 3 largos------ error Base/Extended-Memory.
1 largo, 8 breves------ Test de memoria gráfica incorrecto.

Los códigos de la BIOS Phoenix son especiales de verdad.

No se diferencian entre sonidos largos y cortos pero están formados por secuencias de sonidos.

1, 2 y 3 sonidos------- Error de CMOS.
1, 1 y 4 -------------- error de sumas de control de ROM BIOS.
1, 2 Y 1 -------------- ERROR DE RELOJ.
1, 2 y 2 -------------- error de inicialización DMA.
1, 2 y 3 -------------- error de Page Register de DMA.
1, 3 y 1 -------------- error de RAM de refresco.
1, 3 y 3 -------------- error de RAM (64 kb).
1, 4 y 2 -------------- error de paridad, RAM de 64 Kb.
1, 4 y 3 -------------- error Fail-Safe-Timer (EISA).
1, 4 Y 4 -------------- error de puerto NMI (EISA).
2, 1 y 1 -------------- error de RAM 64 Kb.
2, 1 y 4 -------------- Error de RAM (64 Kb).
2, 2 y 1 -------------- error de RAM (64 Kb).
2, 2 y 4 -------------- error de RAM (64 Kb).
2, 3 y 1 -------------- error de RAM (64 Kb).
2, 3 y 4 -------------- error de RAM (64 Kb).
2, 4 y 1 -------------- error de RAM (64 Kb).
3, 1 y 1 -------------- error en la primera controladora DMA.
3, 1 y 2 -------------- error en la segunda controladora DMA.
3, 1 y 3 -------------- error en el primer controlador de interrupciones.
3, 1 y 4 -------------- error en el segundo controlador de interrupciones.
3, 2 y 4 -------------- error de la controladora de teclado.
3, 3 y 4 -------------- error de memoria gráfica.
3, 4 y 2 -------------- error de tarjeta gráfica.
4, 2 y 1 -------------- error de Timer-Tick.
4, 2 y 2 -------------- error de Shutdown (Reset).
4, 2 y 3 -------------- error de Gate-A20.
4, 2 y 4 -------------- Ha surgido una interrupción inesperada en el modo protegido.
4, 3 y 1 -------------- error test RAM (>64 Kb).
4, 3 y 2 -------------- error en el reloj 2.
4, 3 y 4 -------------- error de Realtime-Clock.
4, 4 y 1 -------------- error de puerto de serie.
4, 4 y 2 -------------- error de puerto paralelo.
4, 4 y 3 -------------- Defecto del coprocesador matemático.


Todas las tablas de códigos las he sacado de un libro muy bueno sobre hardware que se titula "el gran libro de hardware" de Klaus Dembowski

Continuar leyendo

Programa tu 3D engine

JKS [jksware@gmail.com]

Ahora que dispongo de tiempo libre – digo suficiente tiempo libre como para escribir del tema que les muestro a continuación – desde que me decidí finalmente a leer una de las páginas de la entonces “única” revista GiGA que por allá por el 2002-2003 (¿quién se acuerda, hasta internet se podía proxiar por sld.cu?) conformó lo que sin duda fue para mí un artículo clave e introductorio a lo que es el vasto (y universalmente remoto para el resto de los seres humanos ajenos al tema) mundo del 3d, me resumo a explicarles mis experiencias en la realización de un “motor” de renderización de 3D mediante algoritmos básicos.


Para entrar en materia podría decir que el artículo que leí en aquel tiempo hace referencia a lo que se podría llamar “construya su propio motor 3d” o más bien, es algo más parecido a “aquí les doy una herramienta matemática, rómpanse la cabeza tratando de adivinar dónde va…”. Me refiero al artículo publicado en GiGA número 6 año 2002 titulado “Dentro de la tubería gráfica” de Eduardo Lago Aguilar de la UCLV.

ABSTRACT

Para comenzar, debería dar una introducción a lo que se le nombra llanamente 3D: para la mayoría de los casos (y de los usos) esto no es más que la representación por medio de una proyección vectorial bidimensional de lo que es en sí un conjunto de valores gráficamente representables que se hacen ubicar en una matriz arreglada de tres ejes fundamentales (x, y, z). En otras palabras, a lo que llamamos “mira el 3D de ese juego” no es más que una mera proyección (y vuelvo con el término: dibujo o representación) de lo que verdaderamente hace verse la imagen en nuestras pantallas, un grandísimo conjunto de puntos (vértices) que en parejas forman líneas (aristas) y en tríos forman triángulos (polígonos) que conforman cada una de las imágenes que se pueden generar por simulación computarizada.

¿Por qué digo simulación, si en definitiva se está “viendo” el 3D? Es porque el simple hecho de ser arrojadas sobre una pantalla no concede al ojo toda la información visual que necesita para pasársela al cerebro y poder conformar una verdadera imagen tridimensional de lo que se está viendo.

¿Pero si los ojos humanos ven igual de bien a través de un monitor común o LCD que en la vida real? Si por ver se define que es la calidad de lo que se está viendo, con respecto a la cantidad de elemento por separado (píxeles) u otros factores quizá coincida con el que formule la pregunta, pero no es el caso. Sin entrometerme mucho en el área de los optometristas, les dejo caer a aquellos que no tengan idea del fenómeno, que la visión por medio de ambos ojos no recoge dos sino tres valores de posición del objeto que sea centro de atención de los mismos, uno de ellos es la profundidad, por lo tanto podemos decir que todo aquel que tenga ambos ojos sanos puede apreciar en tres reales dimensiones lo que sea objeto de observación.

Para no continuar haciendo del artículo un FAQ, paso a decirles que existen varias maneras de llevar esta realidad tridimensional al pobre mundo bidimensional de nuestros monitores. Claro que existen laboratorios en el mundo (como aquellos magníficos modelos de realidad virtual que se alojan como proyectos de física en el MIT – Massachusetts Institute of Technology) que acogen monitores que son capaces de simular con aún más realismo, o de por qué no, llevar al plano físico en que vivimos una escena en tres dimensiones creada por ordenador, pero no es el caso de todo lo que probablemente cada uno de nosotros veamos en al menos un par de años.

La manera más antigua de hacer este tipo de representaciones se la podemos atribuir a los ingenieros civiles y pintores que han legado en Europa al resto del mundo la manera más eficaz de por aquellos tiempos “renderizar” una escena determinada. Me estoy dirigiendo a lo que no por coincidencia aprendemos (mal que bien) a hacer en secundaria básica y que llaman los profesores de las asignaturas técnicas de “dibujo” de algunas de nuestras carreras de ingeniería “representación isométrica”.

Este es el modelo más fácil de llevar a la realidad y nuevamente no es coincidencia sea en el que se basan todos los juegos de estrategias habidos y por haber de antes de la era del Warcraft 3 (incluso nuestro emblemático Starcraft usa este tipo de gráficos). En pos del espacio no me refiero más a las proyecciones isométricas, sino a sus primas hermanas que devinieron con el consenso de lo que se “parece” más a la realidad, las proyecciones en “perspectiva”.

La proyección perspectiva concede el don a la isométrica (de cuyo nombre se deriva que todo objeto de iguales dimensiones que se represente en cualquier punto tenga iguales medidas a otro idéntico en otro punto) de aprecia la lejanía de un objeto en el espacio. Esto hace que dos objetos iguales no sean observados por igual (de igual tamaño aparente) cuando se encuentran a diferentes distancias del observador. Con sólo mirar el horizonte creo que acierto el punto. xD

THREE-DIMENSIONAL ENGINE

Cuando al principio del artículo me refería a un motor de renderización, quizá pasé por alto un par de asuntos importantes a tener en cuenta, y aunque no creo que desilusione a los más entusiastas, si puede hacerlos pensar por un momento.

Cuando hablamos de un motor (o un 3D engine por su original en inglés) me refiero no a lo que hace que en un juego se disparen los tiros, se oiga el sonido de alguien hablando, se mueva la cámara o se acelere un automóvil tuneado, sino a lo que está detrás de todo la interface de usuario del juego y que es por lo general un motor de representación; hace que la “cámara” se “vea” en nuestro monitor, que las ruedas del automóvil se las vea moviéndose o que aún mejor, nuestros cuadros por segundo (FPS – Frames per Second) se sientan drásticamente reducidos a 12 cuando estamos contemplando efectos de partículas, como smog, tierra, chispas, humo, agua, o cualquier otra cosa que atente contra nuestro GPU (Graphic Processor Unit) en grandes cantidades.

Entonces sacar a relucir que el mundo de los engine está realmente avanzado a hace un par de años, que pasó de caminar a la velocidad de una locomotora de vapor de la época de los 80 a un tren bala de 400 km/h con juegos como Call of Duty (CoD) 4 o Crysis, no está realmente aportando nada nuevo al asunto. Así que si ve que por mucho que programe incluso delante de un engine más que probado como DirectX, no obtiene los mismos resultados que en un súper-comercial Halo 3 no se desilusione, cálmese, y tómese un té con tío Linus, o mejor aún, mándele un mail a los de Frets on Fire (juego de guitarra GNU programado en Python nativo para Linux, pero que ha sido migrado a Windows y que utiliza a OpenGL de motor), y pregúntenle como les ha ido a ellos con los frame-drop.

THAT´S ALL FOR TODAY

Dependiendo del impacto directo que tengan estas informaciones en los lectores, y de la retroalimentación (feedback suena mucho mejor) que tengan estos en nuestros correos electrónicos, me dispondré a entrar en la verdadera materia (tortura diría para abreviar) de cómo hacer la programación de una sencilla representación tridimensional sobre un plano en Object Pascal (para todos los casos Delphi).
Lo mismo sucederá con unos artículos que le debo a la comunidad acerca del Dual Boot, que dependiendo de la cantidad de correos que se reciban en “nuestros servidores” alegando la reclamación del tema llegaré o no a completarlos.

Continuar leyendo

Procesos

Neo [erich14074@cha.jovenclub.cu]

Muchos de nosotros, por allá por la edición treinta y pico observamos con atención un articulo de h0aX muy good sobre backdoors, reconozco que YO fui uno de los que se dio durísimo contra el piso desde una mata de mango cuando lo usé por primera vez. Pero como en la informática y el amor todo se vale me picó el bichito e investigué. (No tengo oxiuro)

El factor de utilización del CR3 era precisamente tener un administrador remoto a base de consola (MSDOS) pero muchos de nosotros desconocíamos que para finalizar procesos de manera remota en un PC al cual por X o por Y conocemos su contraseña o está logeado como usuario restringido y nosotros como admin. Sencillamente “matamos” se proceso en nuestra PC. Y claro que se encuentre en nuestro dominio o red

¿Cómo? Mas fácil de lo que pensaba, basta con entrar a la ayuda de MSDOS y ver la sintaxis del comando tasklist o taskkill.

tasklist /s maquinaremota

Esto devuelve un listado de todos los procesos que se está ejecutando el la PC remota. Si por casualidad este comando devuelve un error de login deberíamos poner entonces:

tasklist /s Maq11 /u NEO /p Mat$Reloaded!

Que significa entrar como usuario NEO y contraseña, bueno la que está allá arriba.
Una vez conocidos los procesos remotos le decimos que los desmonte de RAM, es decir que los “mate”

taskkill /s maquinaremota /im nombredelproceso

O bien:
taskkill /s maquinaremota /pid piddelproceso

Donde /im es el nombre completo del proceso, ejemplo Explorer.exe (hay que ver como se molesta la gente cuando se les va toda la interfaz)
Y /pid es el numero del proceso en cuestión, todos los programas tienen uno diferente en cada PC por lo que eso depende del listado que resultó en el comando tasklist. Espero que les sirva y también pueden utilizar el programa adjunto.

Continuar leyendo