lunes, 31 de diciembre de 2007

Reflection

CHenry [chenry@hha.sld.cu]

Continuando el articulo anterior otra de las características de reflection es la posibilidad de generar código en tiempo de ejecución algo realmente interesante ya que no solo nos permite obtener los metadatos de un ensamblado si no que también podemos ejecutar alguna secuencia de código antes durante o después de la llamada a algún método de un tipo en especifico de ese ensamblado pero ya basta de bla bla bla e aquí un ejemplo que habla por si solo.

Ejemplo Como generar código dinámicamente en tiempo de ejecución
Using system;
Using System.reflection;
Using system.reflection.Emit;

Namespace
{
  Class CodeGenerator
  {
     Type t;
     AppDomain currentDomaine;
     AssemblyName assemblyName;
     ModuleBuilder moduleBuilder;
     TypeBuilder typeBuilder;
     MethodBuilder methodBuilder;
     ILGenerator msilG;

     Public static void Main()
     {
        CodeGenerator codeGen = new CodeGenerator();
        Type t 0 codeGen.T;
        If(t!=null)
        {
           Object o = Activator.CreateInstance(t);
           MethodInfo helloW = t.GetMethod(“HelloW”);
           If(helloW!=null)
           {
//ejecuto el método helloW
              helloW.Invoke(o,null);
           }
           Else
           {
              Console.WriteLine(“No se recibió el methodInfo”);
           }
        }
        Else
        {
           Console.WriteLine(“No se puede acceder al type”);
        }
     }
     Public CodeGenerator()
     {
//obtiene el dominio de la aplicación actual esto es necesario
//cuando se construye código
        currentDomain = AppDomain.CurrentDomain;
//crea un nuevo ensamblado para nuestros métodos
        assembleName = new AssemblyName();
        assembleName. Name= “Hash”;
        assemBuilder = currentDomain.DefineDynamicAssembly(assemName,AssemblyBuilderAccess.Run);
//crea un nuevo modulo en este ensamblado
        moduleBuild =assemBuilder.defineDynamicModule(“HackModule”);
//crea un Nuevo tipo en el modulo
        typeBuilder = moduleBuilder.DefineType(“HackClass”,TypeAttributes.Public);

//ahora podemos agregar el método HelloW a la clase recién creada //
        MethodBuilder = typeBuilder.DefineMethod(“HelloW”,MethodAttributes.Public,null,null);
/*Ahora pod3mos generar algo de lenguaje intermedio de Microsoft que simplemente escriba una línea de texto en la consola.*/
        msilG.= methodBuilder.GetILGenerator();
        msilG.EmitWriteLine(“Hello From me”);
        msilG.Emit(OpCodes.Ret);
//crea un tipo
        t= typeBuilder.CreateType();
     }
     Public Type T
     {      
        Get
        {
           Return thist
        }
     }
  }
}

Continuar leyendo

Mantenimiento simple

Alien [blackhat4all@gmail.com]

Luego de pasar por el mejor foro de discusión (no me canso de decirlo), encontré un mensaje de alguien que pedía ayuda, ya que al parecer la máquina no le estaba rindiendo lo mismo que hace un tiempo atrás.

No es menos cierto que escobita nueva barre bien; y no hay nada mejor que tener una máquina recién sacada de la caja: rápida, linda, nueva y sabrá dios cuantas otras características pueda tener. Sin embargo, a medida que le vamos dando uso y empezamos a instalarle programas y sobrecargar el disco duro con información, la computadora se va volviendo lenta, tanto en procesar la información que le suministremos como en operaciones que para nosotros resultan sencillas.

Para solucionar este problema existen en la red, a disposición de todos, varios software dedicados por completo a tratar de optimizar el rendimiento del ordenador en aras de dejarlo lo más rápido posible. Uno que está muy de moda en estos tiempos es el TuneUp, el cual tiene una gran cantidad y variedad de subaplicaciones todas listas para optimizar el rendimiento de la computadora.

Pero como dice el texto de este artículo, lo que trataré de explicar aquí es como darle un mantenimiento SIMPLE a nuestro ordenador, sin necesidad de instalar programas adicionales a los que por defecto trae Windows.

Scandisk:

Cuando la computadora es nueva y me refiero a nueva por completo, suele tener también un disco duro nuevo, el cual desde la primera vez que tratemos de acceder a el, nos va a demostrar en velocidad todo el esfuerzo que se hizo por parte de ingenieros y demás para lograr que un pedazo de hierro sea capaz de almacenar información.

A medida que va pasando el tiempo, aunque los HDD no tienen una “pastica especial” que se gaste, si van perdiendo facultades y por otra parte está la acción de nosotros sobre el dispositivo. Si a esto le sumamos un reiniciado incorrecto, o un bajón de voltaje, o simplemente problemas de hardware, es lógico que el disco duro valla sufriendo los efectos de estas cosas, lo que redundará en posteriores problemas en su estructura física.

Cuando esto sucede puede, de la forma más normal del mundo, que al tratar de acceder a un archivo o lugar de la computadora, esta deje de responder o incluso hasta apagarse, haciendo que los problemas sean cada vez mayores.

En estos casos, una herramienta que nos proporciona el sistema operativo para tratar de, en lo posible, solucionar estas cosas es el Scandisk, que como su nombre lo indica, escanea el disco duro en busca de errores físicos que puedan estar provocando un mal funcionamiento de la unidad.

Esta herramienta puede estar configurada para buscar o para buscar y corregir. En caso que estemos casi seguros que nuestra unidad funciona correctamente bastará con que, para estar 100% seguros, hagamos un escanea rápido; pero si los errores son evidentes, entonces tendremos que invertir más tiempo en el análisis para ahorrarnos más dinero en una compra.

Nota: Para acceder al Scandisk haga clic derecho sobre la unidad que quiera inspeccionar, diríjase a la opción propiedades que sale al final y en la ventana que se abrirá haga clic primeramente en la pestaña herramientas y luego en el botón scandisk.

Desfragmentar:

Esto, junto con una limpieza del registro, son quizás las aplicaciones que más ganacias nos reportan en cuanto a velocidad.

Un disco duro nuevo o casi vacio no tarda en acceder a la información, pero cuando se empiezan a hacer modificaciones en el, los datos se guarda no de la mejor forma, sino como mejor pueden.
Ejemplo:
Un disco duro vacio se vería de esta forma.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imaginemos que cada uno de esos cuadritos son clúster, ahora, cuando se graba en el disco un archivo (A), este suele ponerse en el primer espacio vacio que encuentra y si es lo bastante grande ocuparía más de un clúster, quedando de esta forma:

A

A

A

A

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

El segundo archivo (B) se colocaría a continuación:

A

A

A

A

A

B

B

B

B

 

 

 

 

 

 

 

 

 

 

 

Un tercer archivo (C) de un tamaño más grande que los anteriores casi llenaría el disco.

A

A

A

A

A

B

B

B

B

C

C

C

C

C

C

C

C

 

 

 

Ahora, antes de tratar de introducir en la unidad el archivo D que ocupa 5 clúster, por problemas de espacio nos veremos en la necesidad de eliminar uno de los anteriores. Si eliminamos A, el archivo tratará de reemplazar su lugar, si eliminamos C entonces iría al final, pero si lo que hacemos es eliminar el archivo B, entonces D ocuparía parte de lo que le corresponde a B y como no cabe por completo, el resto de su información la colocaría al final

A

A

A

A

A

D

D

D

D

C

C

C

C

C

C

C

C

D

D

 

Como ven el archivo D está dividido, o sea, fragmentado. Esto trae como consecuencia que, por muy rápido que sea el procesador que usemos y con este todos los componentes del sistema, el tiempo invertido para leer y procesar la información del archivo D será mayor que con el archivo A, ya que después de llegar al final de la primera parte de D, se tendría que localizar en el disco duro la otra parte.

Este es un ejemplo sencillo donde se utilizó un disco duro de 20 clúster, hay un solo archivo fragmentado y en dos únicas partes. Ejemplos peores vivimos cada día sin saberlo, basta tener un disco de 80 Gigas, con cientos de archivos fragmentados y cada uno en más de 10 pedazos.

El desfragmentador de discos lo que hace es organizar la información de forma tal que existan la menor cantidad de archivos fragmentados en la unidad, acelerando con esto el acceso a los datos.

Nota: El Desfragmentador esta en la misma ubicación que el Scandisk

El Registro

Hace unas ediciones atrás hablaba sobre el registro, sin embargo me limité a hablar sobre su contribución al aumento del rendimiento del sistema.

Al registro van a parar todas nuestras barbaridades y esto incluye no solo las instalación y desinstalación de programas, sino también cosas que a veces pasamos por alto como puede ser añadir más fuentes (tipos de letra) a la computadora.
Muchos miden el rendimiento de la máquina mirando la cantidad de veces que pasa la barrita de “Cargando Windows” antes de mostrar el cuadro de diálogos de contraseña y aunque los dos anteriores (Scandisk y Desfragmentador) juegan un papel importante también en esta fase, el registro no se puede dejar de mencionar.

Es desde ahí de donde el sistema obtiene los datos que mostrará en la siguiente ventana, así que mantenerlo optimizado y lo más pequeño posible sería una buena opción. Antes de cargar la pantalla de contraseñas, Windows necesita saber que tipos de letra están disponibles, pero no es obtener sus nombres solamente, sino ver si están disponibles e interpretar cada tipo para luego escoger cual es la correcta. Desde el registro se obtiene la lista de usuarios que se mostrarán y si se hará de la forma clásica o no. En el Regedit se almacenan los programas que serán cargados acto seguido de la identificación correcta de un usuario, los controladores de audio para reproducir la musiquita, el tamaño de pantalla (1024, 800x600, 640x480 (alguien utiliza esta última aún??)).

En fin, que desde que la máquina está encendida, hasta que los fanes del micro dejan de girar, el registro está ejerciendo influencia, así que bien valdría la pena tratar de que este contenga la información con la que realmente se va a trabajar y tratar de eliminar de esta aplicación los enlaces que ya no estén disponibles, así como datos que dejan algunas aplicaciones al desinstalarse.

Megas libres

Algo que agiliza en mucho la velocidad del sistema es dejar al menos un 30% libre en la unidad primaria. Cuando Windows se encuentra en apuros y la memoria RAM es escasa, parte de el disco duro es tomado para suplir la función de esta y mientras más espacio se tenga disponible para esta función, más rápido podremos mover el ratón y ver que no se demora segundos en responder.

Última opción

Como última opción en esta misión de dar un mantenimiento simple, dejaría el formateo de la unidad, cosa que contrario a lo que muchos pudieran pensar es algo con lo que debemos lidiar al menos una vez al año (en dependencia claro está de las características de cada sistema).

Me he topado con personas que piensan que formatear la unidad donde se almacena el sistema es cosa de locos, que eso se hace solo cuando la máquina está rota o tiene un virus que no es posible desinfectar. En realidad esta forma de pensar es errónea, puesto que formatear la unidad primaria es algo que todos deberíamos aprender a hacer y hacer de hecho.

Cuando se formatea el disco duro, además de tomarse un respiro, vuelve a su estado original y es como tenerlo casi nuevo. Cualquier daño lógico es eliminado de inmediato y se recupera cualquier error que sea posible recuperar de su estructura física. Formatear es mucho mejor que pasar Scandisk y desfragmentar, es mejor que reparar mil veces el registro, es, casi casi, comprarse un disco duro nuevo.

Continuar leyendo

Microprocesador

DR3X [lanleyva@infomed.sld.cu]

El microprocesador, o simplemente el micro, es el cerebro del ordenador. Es un chip, un tipo de componente electrónico en cuyo interior existen miles (o millones) de elementos llamados transistores, cuya combinación permite realizar el trabajo que tenga encomendado el chip.

Los micros, como los llamaremos en adelante, suelen tener forma de cuadrado o rectángulo negro, y van o bien sobre un elemento llamado zócalo (socket en inglés) o soldados en la placa o, en el caso del Pentium II, metidos dentro de una especie de cartucho que se conecta a la placa base (aunque el chip en sí está soldado en el interior de dicho cartucho).

A veces al micro se le denomina "la CPU" (Central Process Unit, Unidad Central de Proceso), aunque este término tiene cierta ambigüedad, pues también puede referirse a toda la caja que contiene la placa base, el micro, las tarjetas y el resto de la circuitería principal del ordenador.

La velocidad de un micro se mide en megahercios (MHz), aunque esto es sólo una medida de la fuerza bruta del micro; un micro simple y anticuado a 500 MHz puede ser mucho más lento que uno más complejo y moderno (con más transistores, mejor organizado...) que vaya a "sólo" 400 MHz. Es lo mismo que ocurre con los motores de coche: un motor americano de los años 60 puede tener 5.000 cm3, pero no tiene nada que hacer contra un multiválvula actual de "sólo" 2.000 cm3.

Debido a la extrema dificultad de fabricar componentes electrónicos que funcionen a las inmensas velocidades de MHz habituales hoy en día, todos los micros modernos tienen 2 velocidades:

Velocidad interna: la velocidad a la que funciona el micro internamente (200, 333, 450... MHz).
Velocidad externa o de bus: o también "FSB"; la velocidad con la que se comunican el micro y la placa base, para poder abaratar el precio de ésta. Típicamente, 33, 60, 66, 100 ó 133 MHz.

La cifra por la que se multiplica la velocidad externa o de la placa para dar la interna o del micro es el multiplicador; por ejemplo, un Pentium III a 450 MHz utiliza una velocidad de bus de 100 MHz y un multiplicador 4,5x.

Partes principales del microprocesador

Encapsulado: es lo que rodea a la oblea de silicio en sí, para darle consistencia, impedir su deterioro como por ejemplo por oxidación con el aire y permitir el enlace con los conectores externos que lo acoplarán a su zócalo o a la placa base directamente.

Memoria caché: una memoria ultrarrápida que almacena ciertos bloques de datos que posiblemente serán utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM, aumentando as í la velocidad y diminuyendo la el número de veces que la PC debe acceder a la RAM. Se la que se conoce como caché de primer nivel, L1 (level 1) ó caché interna, es decir, la que está más cerca del micro, tanto que está encapsulada junto a él, todos los micros tipo Intel desde el 486 tienen esta memoria.

Coprocesador matemático: es la FPU (Floating Point Unit - Unidad de coma Flotante) parte del micro especializada en esa clase de cálculos matemáticos; también puede estar en el exterior del micro, en otro chip.

Unidad lógica aritmética (ALU): es el último componente de la CPU que entra en juego. La ALU es la parte inteligente del chip, y realiza las funciones de suma, resta, multiplicación o división. También sabe cómo leer comandos, tales como OR, AND o NOT. Los mensajes de la unidad de control le dicen a la ALU qué debe hacer .
Unidad de control: es una de las partes más importantes del procesador, ya que regula el proceso entero de cada operación que realiza. Basándose en las instrucciones de la unidad de decodificación, crea señales que controlan a la ALU y los Registros. La unidad de control dice qué hacer con los datos y en qué lugar guardarlos. Una vez que finaliza, se prepara para recibir nuevas instrucciones.

Prefetch Unit: esta unidad decide cuándo pedir los datos desde la memoria principal o de la caché de instrucciones, basándose en los comandos o las tareas que se estén ejecutando. Las instrucciones llegan a esta unidad para asegurarse de que son correctas y pueden enviarse a la unidad de decodificación.
Unidad de decodificación: se encarga, justamente, de decodificar o traducir los complejos códigos electrónicos en algo fácil de entender para la Unidad Aritmética Lógica (ALU) y los Registros .
Registros: son pequeñas memorias en donde se almacenan los resultados de las operaciones realizadas por la ALU por un corto período de tiempo.

Velocidad del Reloj

En la CPU, todas las partes internas trabajan sincronizadas, gracias a un reloj interno que actúa como metrónomo. Con cada ciclo de reloj, el micro puede ejecutar una instrucción del software.
La velocidad de reloj es la cantidad de ciclos por segundo generados, cuanto más alto sea ese valor, más veloz será la PC típicamente, un micro cualquiera trabaja a una velocidad de unos 500 MHz y más, lo cual significa 500 millones de ciclos por segundo.

Debido a la extrema dificultad de fabricar componentes electrónicos que funcionen a las inmensas velocidades de MHz habituales hoy en día, todos los micros modernos tienen 2 velocidades:
Velocidad interna: la velocidad a la que funciona el micro internamente 200, 333, 450, 500, 750, 1000, etc. etc. MHz.
Velocidad externa o de bus: o también FSB, la velocidad con la que se comunican el micro y la placa base, típicamente, 33, 60, 66, 100, 133, 200, 233, etc. etc. MHz.

Los MHz y el índice iCOMP

Debe tenerse en cuenta que un ordenador con un micro a 600 MHz no será nunca el doble de rápido que uno con un micro a 300 Mhz, pues hay que tener muy en cuenta otros factores como la velocidad de la placa o la influencia de los demás componentes.

Esto no se tiene apenas en cuenta en el índice iCOMP, una tabla o gráfico de valores del supuesto rendimiento de los micros marca Intel. Es muy utilizado por Intel en sus folletos publicitarios, aunque no es en absoluto representativo del rendimiento final de un ordenador con alguno de esos micros.

En realidad, las diferencias están muy exageradas, a base de realizar pruebas que casi sólo dependen del micro (y no de la placa base, la tarjeta de vídeo, el disco duro...), por lo que siempre parece que el rendimiento del ordenador crecerá linealmente con el número de MHz, cosa que no ocurre prácticamente jamás. Un ordenador con Pentium MMX a 233 MHz es sólo un 3 ó 4% mejor que uno a 200 MHz, y no el 16,5% de su diferencia de MHz ni el 11,5% de sus índices iCOMP. Parecerá increíble, pero es así.

Vamos, que si le quieren vender un ordenador con el argumento de que tiene x MHz más, o un índice iCOMP inmenso, muéstrese muy escéptico. Mejor un ordenador con todos sus componentes regulares (mucha memoria, buena tarjeta de vídeo...) que un trasto a muchísimos MHz.

Breve (?) historia de los microprocesadores

El primer "PC" o Personal Computer fue inventado por IBM en 1.981 (a decir verdad, ya existían ordenadores personales antes, pero el modelo de IBM tuvo gran éxito, entre otras cosas porque era fácil de copiar). En su interior había un micro denominado 8088, de una empresa no muy conocida (en serio!!) llamada Intel.
Las prestaciones de dicho chip resultan risibles hoy en día: un chip de 8 bits trabajando a 4,77 MHz (sí, 4 coma 77), aunque bastante razonables para una época en la que el chip de moda era el Z80 de Zilog, el motor de aquellos entrañables Spectrum que hicieron furor en aquellos tiempos, gracias sobre todo a juegos increíbles, con más gracia y arte que muchos actuales para Pentium MMX.

El 8088 era una versión de prestaciones reducidas del 8086, que marcó la coletilla "86" para los siguientes chips Intel: el 80186 (que se usó principalmente para controlar periféricos), el 80286 (de cifras aterradoras, 16 bits y hasta 20 MHz) y por fin, en 1.987, el primer micro de 32 bits, el 80386 o simplemente 386.
Al ser de 32 bits (ya comentaremos qué significa esto de los bits) permitía idear software más moderno, con funcionalidades como multitarea real, es decir, disponer de más de un programa trabajando a la vez. A partir de entonces todos los chips compatibles Intel han sido de 32 bits, incluso el flamante Pentium II.
Ocupémonos ahora de eso de compatibles Intel. El mundo PC no es todo el mundo de la informática personal; existen por ejemplo los Atari o los Apple, que desde el principio confiaron en otra empresa llamada Motorola. Sin embargo, el software de esos ordenadores no es compatible con el tipo de instrucciones de la familia 80x86 de Intel; esos micros, pese a ser en ocasiones mejores que los Intel, sencillamente no entienden las órdenes utilizadas en los micros Intel, por lo que se dice que no son compatibles Intel.

Aunque sí existen chips compatibles Intel de otras empresas, entre las que destacan AMD y Cyrix. Estas empresas comenzaron copiando flagrantemente a Intel, hasta hacerle a veces mucho daño (con productos como el 386 de AMD, que llegaba a 40 MHz frente a 33 MHz del de Intel, o bien en el mercado 486).

Posteriormente perdieron el carro de Intel, especialmente el publicitario, y hoy en día resurgen con ideas nuevas, buenas y propias, no adoptadas como antes.

Volviendo a la historia, un día llegó el 486, que era un 386 con un coprocesador matemático incorporado y una memoria caché integrada, lo que le hacía más rápido; desde entonces todos los chips tienen ambos en su interior.

Luego vino el Pentium, un nombre inventado para evitar que surgieran 586s marca AMD o Cyrix, ya que no era posible patentar un número pero sí un nombre, lo que aprovecharon para sacar fuertes campañas de publicidad del "Intel Inside" (Intel dentro), hasta llegar a los técnicos informáticos de colores que anunciaban los Pentium MMX y los Pentium II.

Sobre ellos (los MMX y II, no los tipos ridículos de colores) y otros modelos recientes, hablaremos más adelante.

Continuar leyendo

Recopilación

Alien [blackhat4all@gmail.com]

El tema de los virus ha sido arduamente tratado ya en varias publicaciones, más no por esto deja de ser un contenido fascinante para quien se interese en el tema, interesante para los que tratan de estar al tanto de todo lo puede afectar positivamente o no sobre su ordenador y preocupante para el usuario inexperto que trata de proteger su computadora.

Un poco de Historia:

Los primeros programas destinados a dañar la computadora (sin calificarlos aún de virus), datan de 1960, cuando Douglas McIlory, Victor Vysottsky y Robert T. Morris crearon un juego para despejar la mente de alguno de los programadores de los laboratorios Bell de AT&T. La idea del juego era que dos programadores escribieran un códigos tal que, puestos ambos en la misma máquina, un programa obligara al otro a realizar una instrucción inválida. Cuando el juego terminaba, ambos programas se quitaban de la memoria, pues de lo contrario podrían afectar considerablemente a otros programas que corrieran posteriormente en la misma computadora.

Visto desde ese punto de vista, lo programas que eran creados, más que para hacer daños, servían para perfeccionar las técnicas de programación de sus creadores, haciendo que con el tiempo se especializaran más en estas.

El primer programa maligno fue creado en 1972 por Robert Thomas Morris y lo que hacía básicamente era mostrar periódicamente en pantalla un cartel que decía: "I'm a creeper... catch me if you can!" ("soy una enredadera... ¡agárrenme si pueden!"), contra el cual fue creado el primer antivirus de la historia, llamado Reaper (segadora).

En los inicios los virus eran bastante sencillos, ya que no se contaba con muchas de los adelantos de los que disponemos hoy en día, pero con el tiempo, a medida que iban cambiando los medios de almacenamiento, creándose nuevos servicios como el correo electrónico o apareciendo nuevos parches para los “bug” o agujeros de seguridad presentes en los sistemas, los programadores de virus se vieron obligados a, para mantener sus EXEs online, ir modificando sus campos de acción, hasta llegar a hoy en que, en la gran mayoría, no es el correo ni los disquetes el principal medio de propagación, sino las memorias flash, debido a su lo vulnerable que son para ser manipuladas y lograr con ella ejecutar de forma automática determinado programa que dentro de ella se encuentre.

Tipos de Virus:

Los virus, como ya habíamos dicho, tienen un campo de acción bastante grande, tanto como la inventiva e ingenio del programador. En la actualidad existen varios tipos de virus, y cada uno se especializa en algo determinada, como determinado es el fin que alcanza en caso de lograr ejecutar todo su código. En ocasiones podemos ver, tras la salida de un virus, algún que otro programa que logra eliminarlo, pero este programa lo más probable es que haya sido creado para eliminar solamente ese virus en especial y no otro, por mucho que se parezca en su modo de actuar.

Para eliminar varios virus es necesario un antivirus, que no es más que ese mismo programa, pero preparado para localizar que virus es el que nos ataca y, si está en su base de datos, eliminarlo del sistema. Pero para esto, los programadores de antivirus deben poder primeramente reconocer todos los virus, no solo por sus pequeñas peculiaridades, sino formando agrupaciones de ellos que actúen de la misma manera.

Para ello se han definido los siguientes grupos:

VIRUS RESIDENTES::
Son los que se esconden en la memoria RAM. Desde allí controlan todos los archivos que se abran, creen, copien, renombren... en fin, todo lo que se haga sobre un archivo binario. Generalmente atacan cuando se cumple una condición determinada; hasta entonces son "inofensivos".

VIRUS DE ACCIÓN DIRECTA::
A diferencia de los anteriores, estos no están en memoria, ya que su objetivo es la reproducción y actuar inmediatamente después de que sean ejecutados. Tienen como ventaja (o desventaja para el que los hace) que se pueden desinfectar los ejecutables contagiados.

VIRUS DE SOBREESCRITURA::
Como su nombre indica, sobrescriben los archivos que infectan, dejándolos permanentemente inservibles y haciendo que la única opción para los antivirus sea eliminarlos, perdiéndose toda la información que éstos contenían.

VIRUS BOOT::
Este tipo de virus no infecta ficheros, se graban en el sector de arranque de las unidades. Su única vía de propagación es encender la máquina con un disco infectado, de lo contrario es imposible contagiarse. Quizás años atrás, por los viejos sistemas utilizados, siendo a veces casi obligatorio insertar un medio de almacenamiento en alguna unidad, estos programas tenían cierto éxito, pero ahora, con el avance tecnológico, es casi inútil crearlos.

VIRUS MACRO::
Este tipo de virus se crea utilizando las macros que nos ofrecen algunos programas, dentro de los cuales se encuentran las aplicaciones principales de Microsoft Office. Aunque la mayoría de los programas que utilizan macros advierten cuando un documento incluye alguna, para los creadores de este tipo de virus no es nada difícil esquivar estas protecciones, utilizando cada día nuevas técnicas.

VIRUS DE ENLACE O DE DIRECCIÓN::
Este tipo de virus en específico se encarga de modificar las direcciones donde se encuentran los ficheros, haciendo que éstas lo referencien a él. Así, cuando un usuario ejecuta un archivo, realmente está cargando al virus, y éste pasa a su fase de continuar infectando otros archivos de la misma manera, o inicia un proceso de peores consecuencias.

VIRUS ENCRIPTADOS::
Estos virus se autoencriptan, sobre todo para evitar que programas antivirus los puedan detectar. A la hora de infectar tienen que desencriptarse, y luego que terminan su acción se vuelven a "esconder". Esta tarea es un poco pesada, si lo vemos desde el punto de vista del algoritmo de programación, pero así se asegura que el virus sea más "fuerte".

VIRUS POLIMÓRFICOS::
Estos son más "poderosos" que los anteriores. En cada nueva copia de ellos se encriptan, o cambian parte de su código, su nombre, o cualquier otro factor identificable por los antivirus. De esa forma pueden mantenerse mucho más tiempo activos.

VIRUS MULTIPARTES::
Estos son los mejores... perdón, los peores. Son programados para utilizar varias técnicas unidas, no hacen distinción entre ficheros, macros, programas, discos, en fin, lo que sea. Programar uno de estos es realmente difícil, pera tras terminarlo, es casi seguro que permanecerá activo y sin solución por mucho tiempo.

VIRUS DE FICHEROS::
Son los más comunes. Este tipo de virus es conocido por la mayoría de los antivirus y su acción es sencilla. Utilizando código de ensamblador, sobrescribe los primeros bytes del archivo que quiera infectar y luego muestra un mensaje, alerta, o cualquier cosa que el creador haya definido. Es, además, el primer tipo de virus que programa alguien que quiera empezar a desarrollarse en esta tarea. Puede ser desarrollado con cualquier lenguaje y en poco tiempo, relativamente.

VIRUS DE COMPAÑÍA::
Se les llama así porque necesitan para su desarrollo de un archivo que previamente ya está en el sistema. Hacer un virus de este tipo generalmente se debe a que su tamaño es demasiado grande, o porque se desea que su acción tenga efecto en un tipo de sistema específico, así que no hay ninguna necesidad de cargar con archivos que ya están instalados. Por lo general son virus de ficheros.

VIRUS FAT::
Este tipo en especial es muy peligroso, ya que controlan la FAT y pueden denegar el acceso a ciertas partes del disco duro. Aclaro que no es lo mismo que esconder funciones del sistema operativo; eso es poco en comparación con el daño que pueden ocasionar los virus FAT.

GUSANOS::
Los gusanos en especial no necesitan infectar otros archivos. Su misión en sólo propagarse por las redes hasta saturarlas o hacer la misma operación dentro de la memoria del ordenador, hasta colapsarla.

TROYANOS::
Un troyano puede ser extremadamente peligroso. Su objetivo es instalar otros programas o enviar por correo electrónico información confidencial o potencialmente peligrosa sin el consentimiento de los usuarios. Por lo general no causan daños a la computadora, siendo su misión solamente la de espía.

BOMBAS LÓGICAS::
Las bombas lógicas son un tipo especial de programa maligno que permanece en la computadora hasta tanto se cumpla una condición definida por su programador. Generalmente suelen ser devastadores cuando liberan el potencial de su código.

VIRUS HOAX::
Estos programas no se consideran unos virus como tal, ya que no resultan peligrosos para los usuarios; sin embargo, sí pueden sembrar el pánico en aquellos que no conozcan mucho sobre computadoras. Pero no hay que asustarse, estos programas sólo muestran un cartel en la pantalla advirtiéndote, o en muchos casos amenazándote.

Después de conocer los grupos en que se dividen los virus, sería bueno aclarar que, aunque un Troyano solo es para monitorear, controlar, espiar la máquina o robar alguna información, parte de su código pudiera contener una instrucción del tipo FileCopy, cuya misión sería copiarse el mismo hacia otra locación de la unidad, comportándose por un momento como un gusano que se propaga dentro de la misma máquina o pudiera, luego de cumplir su objetivo, ejecutar cada un tiempo un ShowMessage con cierto mensaje preocupante, simulando ser un Hoax, pero por esto no deja de ser un Troyano, ya que su misión principal, y el objetivo por el cual se encuentra incubando en el ordenador, es para sustraer de el algún archivo.

De los virus informáticos se ha hablado bastante ya en casi todos los medios relacionados con la computación, y me refiero a correos, páginas web, boletines, revistas, proyectos, en fin, todo lo que pueda llevarse a formato digital, y ha salido más de una ves, de seguro contiene un escrito sobre virus; así que no pienso retomar yo las palabras de otro, y tras buscar algunos sinónimos bonitos con el Word crear un artículo similar y hacerlo aparecer bajo mi nombre.

De seguro todos conocen lo que es un antivirus, para que sirve este, y en la mayoría de los casos hasta como instalarlos, pero lo que seguramente no saben es que pueden hacer por ustedes mismos para evitar, o en caso que esto ya no se pueda lograr, detener una infección.

Conócela

El primer paso que creo obligatorio es conocer el sistema que tenemos, o tratamos de tener bajo control. En estos últimos años ha habido un auge en cuanto a la cantidad de computadoras que poseen las personas en sus casas, y aunque se ha hecho lo posible por aumentar en nivel de cultura informática de las personas, este aún no ha llegado a todos de la misma manera, y lo mismo podemos encontrarnos con alguien que conoce de su computadora hasta el tiempo exacto que demora en encender, hasta otros, menos preocupados, que ignoran, después de años de trabajo, la marca de su monitor, siendo estos el mayor foco de concentración de los software destinados a tratar de invadir nuestro sistema.
Para saber si podemos estar siendo víctimas de un virus, debemos haber hecho antes un análisis del sistema, saber reconocer que opciones no están disponibles que antes lo estaban, ver si es algo normal que nuestra disquetera se encienda cada un tiempo, tener el control en cada momento que estamos delante del ordenador, pero para eso deberíamos haberlo conocido antes de, y eso no lo da ningún software, eso se aprende con el día a día, y las “horas nalgas”.

No Hide

En la actualidad, por la facilidad con que pueden ser manipuladas por los programadores, por el auge que tienen y por la gran distancia que pueden recorrer, la mayoría de los programas malignos se trasmiten a través de las memorias flash. Para esto se crea dentro de estas un archivo que, al ser leído por el ordenador, interpreta lo que dentro de él se encuentre sin hacer distinciones entre la carga de el solitario de Windows o un Troyano.

Los virus, por mucho que se quieran esconder, por muy bien que estén programados, no dejarán de ser archivos, y si son archivos deben poder verse en el explorador de Windows. Para esto simplemente se debe habilitar mostrar todos los archivos en la opción Opciones de Carpeta de la barra de herramientas del explorador y allí mismo, casi al final, deberíamos desmarcar la pestaña que oculta los archivos protegidos del sistema operativo, haciendo lo mismo con la opción que nos impide ver las extensiones de los archivos. Con estas dos cosas dejaremos al descubierto a muchos virus que se ocultan utilizando estos métodos para no ser visibles o pasar desapercibidos ante el usuario.

Al principio quizás resulte un poco molesto tener que lidiar con ciertos archivos que antes simplemente para nosotros no existían, pero si es para aumentar la seguridad de nuestro sistema, creo que vale la pena.

Los procesos

Otra cosa que no puede hacer un virus es no ejecutarse, de lo contrario no cumpliría su objetivo. Creo por esto imprescindible es tener un buen programa que nos de más información sobre cada proceso que se encuentra ejecutándose en nuestra computadora; algo más efectivo que el clásico Ctrl+Alt+Del de Windows. De esa forma, no solo sabremos el nombre de la aplicación, sino que obtendríamos datos que nos servirían luego para descontaminar nuestra computadora.

¿Quién y por qué?

En la actualidad (y pienso que siempre haya sido así), los creadores de virus tienden a ser personas jóvenes, con cierto dominio de algún lenguaje de programación, analizadores a fondo del funcionamiento del sistema para el que crea sus aplicaciones, aunque esto puede no ser siempre así.

En realidad, aunque con el tiempo lo anteriormente dicho se ha convertido en una norma o estándar, no podemos dar completa seguridad que siempre sea así. No existe un patrón o norma que defina de forma exacta la personalidad de alguien que crea una aplicación, lo mismo puede ser un quinceañeros que sabe un poco más de computación que el resto de su aula y se leyó un libro sobre como hacer virus, que pudiera ser un adulto de la tercera edad y que desde hace tiempo intenta hacer una aplicación por la cual pueda dejar su nombre anclado en el futuro, lo que si no podemos negar es que en cualquier caso, generar un código maligno requiere de algo más que libros y tiempo, requiere de esfuerzo y una gran imaginación.

Como mismo no se puede concentrar a los viruker dentro de un grupo determinado, no se puede saber con exactitud las causas que lo llevaron a la compilación del programa. Pudiera ser por encargo, por complacer a una novia, por causarle daño a alguien, por… El caso es que casi siempre hay un poco de ego tras todo esto, los creadores de virus encuentran cierta satisfacción al ver sus “creaciones” propagándose por la red.

Esto ha traído como consecuencia que los virus no sean hoy en día tan dañinos como años atrás, lo que no quiere decir que no sean peligrosos, pero si en menor cuantía. La mayoría de los programadores de virus lo que busca es satisfacción personal, no causar daño y de muy poco sirve a un viruker insertar su código en un sistema que destruya antes de poder propagarlo hacia otro.

Continuar leyendo

La conciencia de un Hacker

The Mentor

Hoy agarraron a otro, esta en el diario. "Adolescente arrestado por escándalo informático", "Hacker arrestado luego de estafa a un Banco"…

- Malditos muchachos. Son todos iguales.

Pero ustedes, en su psicología tres piezas y su tecno-cerebro onda 1950, ¿alguna vez miraron por detrás de los ojos de un Hacker? ¿Se preguntaron alguna vez que lo hizo así, que fuerzas lo formaron, que pudo haberlo moldeado?. Soy un Hacker, entra en mi mundo... El mío es un mundo que comienza en la escuela...
Soy mas inteligente que la mayoría de los otros chicos, la basura que nos enseñan me aburre.

- Maldito infra dotado. Son todos iguales.

Estoy en la Secundaria. He escuchado a los profesores explicar por quincuagésima vez como reducir una fracción. Lo entiendo. "No, Srta. Pérez, no puse los cálculos en la hoja. Los hice mentalmente..."

- Maldito chiquillo. Probablemente se copio. Son todos iguales.

Hoy descubrí algo. Encontré una computadora. Esperen un segundo, esto es interesante. Hace lo que quiero que haga. Si comete un error, es porque yo hice algo. No porque yo no le guste, o porque se sienta amenazada por mí, o piense que no soy inteligente, o porque no le guste enseñar y no debiera estar aquí...

- Maldito mocoso. Todo lo que hace es jugar jueguitos. Son todos iguales.

Y entonces sucedió... se abrió una puerta hacia otro mundo...fluyendo a través de la línea telefónica como heroína en las venas de un adicto, mando un latido electrónico, veo un refugio de las incompetencias cotidianas...encontré una tabla. "Es esto. aquí es donde pertenezco". Conozco a todos aquí... aún si no los vi nunca, o no les hablé nunca, o no vuelva a oír de ellos nunca más... Conozco a todos Uds...

- Maldito criatura. Otra vez jodiendo con el teléfono. Son todos iguales...

Apuesta lo que quieras a que somos todos iguales... en la escuela nos dieron papilla para bebés cuando teníamos hambre de carnes. Hemos sido dominados por los sádicos, o ignorados por los apáticos. Los pocos que tenían algo para enseñarnos encontraron en nosotros alumnos despiertos, pero esos fueron tan pocos como las gotas de agua en el desierto.

Este es nuestro mundo ahora, el mundo del electrón y el switch, la belleza del baudio. Hacemos uso de un servicio ya existente sin pagar por lo que podría ser absurdamente barato si no estuviera manejado por crápulas codiciosos, y nos llaman criminales. Exploramos, y nos llaman criminales, buscamos el conocimiento y nos llaman criminales. Existimos sin colores de piel, sin nacionalidades, sin separaciones religiosas, y nos llaman criminales. Ustedes construyeron bombas atómicas, financiaron guerras, asesinaron, engañaron y nos mintieron para hacernos creer que era por nuestro bien, y aún somos nosotros los criminales.
Si, soy un criminal. Mi crimen es la curiosidad. Mi crimen es juzgar a la gente por lo que dice y piensa, no por su apariencia. Mi crimen es ser más inteligente que ustedes, algo que no me vas a perdonar nunca.
Soy un Hacker, y este es mi manifiesto. Puedes pararme a mí, pero no vas a poder pararnos a todos, porque al final...

Todos somos iguales

Continuar leyendo

2008

Alien [blackhat4all@gmail.com]

Empezamos un 19 de febrero de este año que recién culmina y contra todo pronóstico, con nuestras buenas y nuestras malas, hemos tratado de mantenernos en la red con una sola interrupción en todo ese tiempo y publicando un boletín semanal.

Hemos pasado por momentos malos, momentos buenos, nos hemos visto en situaciones verdaderamente difíciles, hemos escuchado promesas de ayuda que jamás han sido cumplidas, hemos visto el fracaso de otros tocarnos de cerca y hemos tratado de levantar la cabeza y continuar adelante. Pero lo más importante, es que aún estamos aquí.

Tratando de llevar la información de nuestros colaboradores, tratando de hacer que tú, tu mismo, que estás sentado en esa silla cómoda te pares y te pongas a escribir esos fragmentos de código que jamás lograste hacer. Buscando a esas personas que, con los conocimientos más que suficientes para crear cosas buenas y útiles, están en sus casas perdiendo el tiempo en lugar de ponerse a compartir.

Llega BlackHat al final de este 2007 con más de 1000 lectores, cuando en realidad empezó con 7 y jamás estuvo concebido como un proyecto para más de 100 personas. Más de 350 textos publicados por un puñado menor de 40 miembros, y casi el 100% de los artículos y códigos creados por los mismos autores. Indudablemente estos datos confirman la obra que hemos estado realizando durante este tiempo.

¿Y ahora que?

Buena pregunta esa. Durante estos meses, desde el punto de vista interno y de presentación del contenido BlackHat ha estado atravesando un proceso complejo que se pretende nos lleve a otro nivel dentro de la aceptación de las personas. No pretendemos ser una institución, todo lo contrario, cada vez más alejados de términos complejos y más cerca de como nos llama Ariel: “formalmente informales”.

Nos gusta esta onda intermedia entre un Foro y un Periódico, nos gusta este lenguaje natural de decir las cosas, nos gusta saber que no pertenecemos a un sindicato, grupo o asociación determinada, nos gusta saber que lo que hacemos lo hacemos de corazón.

Mirando el contenido que presentamos sabemos que se avecinan cambios, cambios que no cesaran aunque estemos a solo un paso de la perfección. Continuará la aparición de nuevas secciones y la dejación de otras. Continuaremos poniendo esas fuentes verdes sobre fondo negro que a muchos eternamente les recordará los monitores antiguos. Continuaremos con una imagen en el top que de una idea de barrio, de pueblo, de ciudad, de todos. Sin importar los cambios o avances en la tecnología, continuaremos tratando de ser compatibles con todos los navegadores, de ser fáciles de leer por Alexis y como el, otros amigos invidentes. Continuaremos como hasta ahora, ocupándonos de todos los lectores que nos escriben ya sea para preguntar, para sugerir, para colaborar, para compartir.

Por problemas difíciles de explicar no se ha podido actualizar más nuestra web, pero si Mahoma no va a la montaña… Si, como lo oyen, las secciones que estaban en la web y no hemos podido actualizar serán añadidas a nuestra columna vertebral, nuestro soporte principal, nuestro boletín.

¿Avances?

Es difícil poder decir con certeza que es lo que se avecina, pues somos un grupo bastante grande ya de personas cuyo único enlace es un sombrero negro. Vivimos al día, alimentándonos de los artículos de Zeydi, de h0aX, de Ariel, de Reynier de otros muchos que hacen posible que la comunidad se fortalezca y se continúe demostrando que la informática también es cultura.

Cosas por hacer nos quedan muchas y esperamos que poco a poco este 2008 nos de tiempo, a tiempo, para hacerlas todas.

Gracias a todos los que han sido fieles lectores de BlackHat, gracias a los colaboradores, a los que han jugado y aún juegan un papel en este, su proyecto para todos…

Continuar leyendo