lunes, 17 de marzo de 2008

Buffer Overflow

Gorums [gorum@lab.matcom.uh.cu]

Tratare de desglosar muy brevemente de que se trata el BufferOverflow sin entrar en profundidad ya que el tema tiene tela por donde cortar. Para la comprensión de esto, explicare tres conceptos que se construyen uno sobre el otro y que ayudaran un poco al entendimiento de este tema.

Concepto de Pila:

En programación no es más que una estructura de dato, que tiene ciertas características, hagamos una analogía con los arreglos que es la estructura de dato que todo programador debe al menos conocer. El arreglo tiene un tamaño fijo (Estático), la pila en teoría no (Dinámico), en el arreglo tu puedes insertar o eliminar un objeto (no me refiero directamente a la POO) en cualquier posición mientras este esté dentro de sus limites establecidos, en la pila el ultimo que entra es el primero que sale, o sea el control de la inserción y la eliminación no lo tenemos nosotros sino la propia estructura y esta es la característica esencial que la distingue de las demás estructuras de datos.

Concepto de Proceso relacionado con la pila:

Cada aplicación que es cargada en memoria para ejecutarse se le nombra proceso, o sea, un programa en ejecución no es mas que un proceso y según la arquitectura PC que es la que mayormente todos usamos, un proceso se divide en varios segmentos, entre ellos se encuentra el segmento de dato que se encarga de almacenar toda la información estática de nuestra aplicación, como las variables globales y estáticas; el segmento de código que almacena las intrusiones de nuestro programa y el segmento de pila que el se encarga del almacenamiento de la información que tiene un carácter dinámico o volátil.

Concepto de Función relacionado con el segmento de pila de los procesos:

Cuando una función en términos de programación llama a otro, esta necesita poder almacenar el puntero a la siguiente instrucción, después de la llamada a la función, ya que cuando la función llamada termina, esta tiene que retornar a la función llamadora para continuar su ejecución por el punto donde se quedo. Esto es posible gracias al segmento de pila de los procesos y a los lenguajes que hacen uso de este recurso, permitiendo que mecanismo como la recursividad sean posible. Pero no solo la pila sirve para almacenar el puntero a la próxima instrucción llamado IP, también se almacena los argumentos que le son pasados a la función y las variables locales que estas declaran en el cuerpo de las funciones.

A la hora de la función llamada llegar al finar de su bloque de instrucciones, se tiene que sacar todo los elementos introducidos en la pila según el mecanismo de esta(el ultimo en entrar es el primero en salir), y así no dejar información que seria basura para la función llamadora, quedando el IP de la próxima instrucción de la función llamadora en el tope de la pila, y así actualizando el registro IP con el valor de la pila, se ejecutaría la siguiente instrucción después de haber echo el llamado a la función.

Expliquemos este proceso en forma algorítmica y seguro nos entenderemos mucho mejor, usaremos para esto con un poco de seudo código.

Un último punto a aclarar antes de entrar en el seudo código: Hablemos de dos registros del CPU que juegan un papel importante en el trabajo con el segmento de pila, estos son el EBP y el ESP, este último es el que apunta al tope de la pila y es incrementado o decrementando dependiendo de si se introduce o se elimina objetos en la pila, en cuanto al EBP su funcionalidad es el de acceder a los parámetros y a las variables locales mediante un offsets fijo para cada una de las variables.
La función f() llama a la función g():

Pseudocódigo

f()
{
int a=1;
int * b = &a;
....
g(a,b);
//<- aqui call g()
a=4; //siguiente instrucción después de llamar a g()
...
}

1-introducir en la pila la dirección o el valor de los argumentos:

f.push(a); // valor de a
f.puch(b); //valor de dirección de apuntador de b
2- Al llamar a g(), introducir en la pila la dirección de la siguiente instrucción a ejecutar después de la llamada y tomar la nueva dirección a ejecutar para saltar a ella:

f.push(ip); //dirección de la instrucción a=4
ip = &g; // dirección de g()

3- Almacena en la pila el EBP para a si poder modificar a este con el ESP:

f.push(ebp); //guardo el valor de bp ya que este va ha ser modificado
mov ebp,esp; // el registro pb toma el valor del registro sp

4-g() introduce en la pila sus variables locales

g.push(_varLocal1); //valor de _varLocal1
g.puch( _varLocal2); //valor de _varLocal2
....................
g.push( _varLocalN); //valor de _varLocalN

Nota: Hasta aquí esto es gracia a la instrucción en ensamblador CALL que es la que se encarga de todo este proceso.

5- Luego g() al terminar saca todo las cosas que le corresponde de la pila, de atrás hacia delante según el mecanismo de la pila.

g.pop( _varLocalN); //valor de _varLocalN
....................
g.pop(_varLocal1); //valor de _varLocal1
ebp = g.pop(ebp) // restauro el valor de ebp

6. El registro IP toma el valor que anterior mente había dejado en la pila, "asegurando" que la proxima instrucción sea la siguiente a la llamada de g()

ip = g.pop(ip); //ip apunta a la instrucción a = 4 de f()

Nota: Esta última parte es responsabilidad de las intrusiones en ensamblador RET o IRET en el caso de las interrupciones.

7. Continua la ejecución después de la llamada a g()

a=4;
......

Bien, mi intención es que se lleven al menos la idea de como es el proceso en el interior de una llamada a función en el lenguaje de programación C, y esto es valido para casi todo los lenguajes, o sea que esta es su forma de proceder.

Pasemos en este momento al plato fuerte:
!!El bufferOverflow EN VIVO!!
Voy a colocar el código y será explicado como comentarios de forma que se pueda entender por lo menos la idea.

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

/*
Nota Importante:
Para poder comprender las instrucciones y los mecanismos que se aplican en este ejemplo es indispensable haber entendidito todo lo expuesto arriba y tener a manos una buena base sobre el lenguaje C, principalmente con el trabajo con los punteros.
------------------------------------------------------
Compilado sobre C/C++ Builder 6.0
*/

void bufferOverflow()
{

//buffer es un array de 5 elementos del tipo char, lo cual tiene un tamaño (sizeof) de
//10 byte en total, ya que el char ocupa dos byte por cada posición del arreglo
  char buffer[5];

  int *ret;

//los 10 byte de buffer mas los 2 byte del EBP que ocupan en la pila
//suman 12 que es el desplazamiento que tiene que hacer ret para
//apuntar a la posición de retorno
  ret = buffer + 12; //Aritmética de puntero, ret ahora apunta a la posición de retorno

//sobrescribo el valor de la posición de retorno sumándole 26 para así
//poder saltarme las líneas x = 2 y el primer printf ()
  (*ret) += 26;
}

int main(int argc, char* argv[])
{
  int x;

  x = 1;
  bufferOverflow();
  x = 2;
//esto no se ejecuta
//ni este primer printf tampoco
  printf("Esto no se muestra porque yo no lo deseo %d",x);

  printf("Bienvenido a su primer Buffer Overflows [x = %d]",x);
  
return 0;
}

//---------------------------------------------------------------------------

Este código como bien esta expuesto en el comentario de encabezado esta diseñado para ser compilado y ejecutado sobre el IDE C/C++ Builder 6.0, recalcando que puede ser que sobre otros compiladores incluso sobre compiladores de la misma línea de los Builder este ejemplo no realiza su cometido, producto a que cada compilador traduce a código maquina a su forma, generando offsets diferentes para programas con idénticas instrucciones, lo que provoca que las direcciones de desplazamientos de estas instrucciones varíen de un compilador a otro.

Si usted entendió a lo sumo la parte teórica y observo algo del código, sin mucho rodeo le diré que el programa lo único que realiza es modificar la dirección de retorno asiendo que la misma se salte unas líneas, y eso es en teoría lo que consiste el bufferOverflow, ósea no es mas que sobrescribir la dirección de retorno, haciendo que el programa salte a donde nosotros queramos, observe que esto es posible gracias a la inseguridad que nos proporcionan los punteros y los arreglos, estos últimos como casos particulares de los punteros.

Como dato curioso el gusano de Morris, según muchos el primer gusano de Internet, pudo expandirse gracias a un bug del demonio finger, usando como exploit un bufferOverflos sobre la función gets() de la biblioteca estándar de entra/salida, gracias a que esta función no limita la cantidad de byte que debían ser introducidos en el buffer que después era enviado al servicio finger de la maquina victima. Existen infinidades de ejemplos de bufferOverflow que afectan mayormente a los sistemas operativos de la familia de los Unix y cada día aparecen muchos otros y nuevas forma de explotarlos.

Si se te quedo un poco corto este articulo por favor referirse a la phrack 48-0x14, referencia obligatoria para los mas exigentes en el tema.

Saludos Gorums

“No sabe mas aquel que lo sabe todo, sino el que sabe donde buscar”.

Continuar leyendo

Troyano u.bat

Reynier Reyes [rreyes33@alumno.uned.es]

En la edición 44 de esta revista publiqué un artículo sobre el virus troyano nideiect.com que al parecer por alguna confusión, no entiendo por qué el nombre que salió fue, ntdelect.com y en varias partes del artículo lo tecleé correctamente, sólo hago esa aclaración para que no se me confunda nadie. Ahora he detectado otro que realmente hace algo parecido pero con muchos otros cambios, en sí el ejecutable "amvo.exe" se mantiene, esta vez no lo detecta el antivirus Avast que fue el que utilicé en esta ocasión, ni tampoco detecta el fichero u.bat que permanece oculto mientras el virus está ejecutándose en el sistema.

La importancia del Registro del Sistema (regedit)

Ya casi no sabía qué hacer, pues el antivirus detectaba los ficheros, "autorun.inf" en todas las unidades y otros 2 ficheros dll dentro de la carpeta Windows, uno de ellos "amvo0.dll", me resultó familiar con respecto al que describí en el artículo de la edición 44, entonces entro en el registro del sistema, la clave "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" donde me encuentro con el valor "amva" con la cadena "C:\Windows\System32\amvo.exe", debemos hacer un clic derecho y luego eliminar para evitar que se inicie de nuevo cuando reinicie la sesión. Esta vez tiene otro tipo de programación porque el otro "amvo.exe" el antivirus lo detectó perfectamente la otra vez, esto lo hice después de haber escaneado dos veces el disco duro completo y observé que pasaba lo mismo, detectaba los mismos ficheros y no el ejecutable. Para eliminarlo se procede a abrir la línea de comandos de Windows "cmd.exe" donde iremos al directorio raíz mediante el comando "cd.." hasta que diga C:\> tecleamos del /f /s /q /a amvo.exe damos Enter y habremos eliminado el archivo de cualquier parte donde se encuentre en la unidad C: (Este comando utilizado de esta forma sólo debemos hacerlo cuando estemos seguros que no hay otro fichero con el mismo nombre en esa unidad que nos haga falta).

Los Ficheros Ocultos

Si ha eliminado de forma manual el ejecutable, entonces deberá eliminar también los demás para que no vuelva a reiniciar la infección, lo hacemos mediante la línea de comandos cmd, como mismo eliminamos "amvo.exe" hacemos lo mismo pero con "amvo0.dll", "autorun.inf" y "u.bat", estos dos últimos son los que se copian constantemente hacia todas las unidades de disco y memorias Flash, por lo que hay que hacer la operación para todas las unidades con esos dos ficheros.

Por lo menos este troyano no es tan fácil de eliminar manualmente, el antivirus Avast con la actualización del 8 de marzo solamente detecta los archivos autorun.inf y amvo0.dll, no tengo idea de si otro antivirus los detecta a todos. Espero que esto sirva de base para ir aprendiendo en el caso que el Antivirus nos falle con su protección porque el virus sea nuevo o porque no esté actualizado.

Continuar leyendo

TFT vs. CRT ¿Una Pelea Justa?

Yordan Pérez [truano@infomed.sld.cu]

Esta información les servirá como base para el momento en que decidan comprar un monitor saber si vale la pena invertir mas en uno plano, o bien ahorrar nuestro dinero y conformarnos con los CRT de siempre.

Para comenzar es bueno saber las ventajas que podremos disfrutar teniendo un TFT en vez de un CRT (Monitor normal de Tubo de Rayos Catódicos).

  • Espacio: El TFT se puede colocar incluso como un cuadro a la pared.
  • Consumo de Electricidad: Un TFT consume solo una tercera parte de lo que consume un CRT pero además genera considerablemente menos calor, debido a lo cual también se consume menos aire acondicionado para mantener la temperatura de la habitación donde esté ubicado.
  • Brillo: El TFT funciona como un obturador por lo tanto para ofrecer mas brillo solo tiene que aumentar la potencia de las lámparas, mientras que el CRT tiene que añadir corriente al haz de luz haciéndolo mas grande, afectando así la resolución final y esto a veces provoca desenfoque, en datos técnicos un CRT tiene un brillo de hasta 100nits, mientras que los TFT están entre 200 y 400nits.
  • Cero Parpadeo: Todos sabemos que para evitar el molesto parpadeo de la imagen en un CRT tenemos que configura la velocidad de refrescamiento sobre los 75hz, provocando esto un desgaste superior al normal de la vida útil del monitor, en el TFT esto no existe, ya que tiene una fuente de iluminación constante sobre toda la pantalla.
  • Enfoque: En un CRT el haz de electrones es circular cuando apunta hacia delante, pero se distorsiona cuando apunta hacia arriba, abajo, izquierda o derecha mientras hace el barrido de imagen, lo que puede causar problemas de claridad de imagen o de enfoque en las esquinas de la pantalla. Esto no ocurre en un TFT ya que cada píxel es independiente de su "vecino" y tan sólo de abren para dejar pasar la luz.
  • Geometría: Tan importante es la geometría para los diseñadores gráficos que estos deberían ser los primeros en adquirir un buen TFT ya que nos muestran imágenes geométricamente perfectas, no siendo así en el CRT, donde los problemas antes mencionados sobre el brillo y el contraste, terminan afectado a la imagen final.
  • Vida Útil: En un CRT el envejece de dos formas principalmente, al crearse capas de oxido en el cátodo del emisor de electrones, disminuyendo así la potencia del haz de luz, por otro lado el fosforo pierde eficiencia con los años; en el TFT solo envejece la fuente de luz, compuesta por 1 o mas tubos fluorescentes; en resumen la vida útil de un CRT está entre 10 000 y 20 000 horas, para llegar a la mitad del brillo, mientras el TFT la vida útil de la fuente de luz es de hasta 50 000 horas.
  •  Radiación: Simplemente no existe en los TFT, debido a que en su funcionamiento no interviene ningún elemento electromagnético, tampoco muestra reflejos de luz por lo que cansa menos la vista.

De la misma forma que mencionamos las ventajas también sería prudente mencionar las desventajas.

  • Contraste: Un TFT por muy bueno y moderno que sea aun está lejos de ofrecer el contraste que puede brindarnos un CRT, el máximo nivel de contraste que nos brinda un TFT es de 800:1, mientras el CRT alcanza los 10000:1, aunque esto solo afecta seriamente a un profesional del color.
  • Precio: Los TFT al ser una tecnología aun nueva adquieren unos precios aun lejos del poder adquisitivo de la mayoría de nosotros estando como mínimo entre los $250.00 y los $500.00, precio muy superior al del CRT más grande.

Continuar leyendo

Windows no es fácil

Zion [rcorrales@estudiantes.uci.cu]

Hola comunidad, hace cuestión de días tuve el deleite que merecemos todos de navegar por la www. Inclinado por las cuestiones del software libre y encontré este artículo en http://sinergiatec.wordpress.com <http://ucixs34.uci.cu/exchweb/bin/redir.asp?URL=http://sinergiatec.wordpress.com> fechado el día 12 de febrero de 2008. Con gusto lo comparto con ustedes. Creo que cambiarán muchas de sus ideas después de leer esto.

Aquí los dejo con el artículo:

Windows no es fácil. Windows PARECE fácil porque los pringaos como nosotros les instalamos y configuramos todo. Hacemos de soporte técnico de Microsoft. Fomentamos su uso. Fomentamos la piratería. Aunque no lo hagamos directamente, lo hacemos al instalar un PC nuevo con Windows.

Lo hacemos por instalar copias piratas de programa a los vecinos cuando nos lo piden, o por conseguirles los programas que necesitan. Lo hacemos por dar consejos sobre Windows, o por resolverles problemas. Nosotros somos el "Windows es fácil"

¿Qué pasaría si todos los que nos dedicamos a la informática nos negáramos a darle soporte a los Windows instalados que tienen: nuestros vecinos, cuasi-amigos, conocidos, primos, conocidos de conocidos...(y más a los que son piratas)? ¿Qué pasaría cuando a esas personas que abusan de nuestra buena disposición les salga la pantallita azul y tengan que llamar al servicio técnico de su tienda de informática y esta le cobre 45EUR por hora? ¿Qué pasaría cuando los jueguitos que se han pirateado no sigan funcionando por un parche mal instalado de Windows? ¿Qué pasaría si no tuviesen quien les recupere el sistema después de coger un virus, troyano, etc por acceder a una página donde le daban un crack para su software preferido?

Para todos los que somos informáticos la respuesta está clara: Se les caería la venda de los ojos y verían que Windows no es el sistema operativo fácil, seguro y perfecto que creían.

Pero... y si además les recomendamos que se pasen a Linux y les demostramos que:

Pueden usar el Photoshop, el Call of Duty, el Dreamweaver, etc.
Que tienen miles de juegos a su disposición gratis y perfectamente explicados.
Que con un sólo click pueden instalarse más de 20.000 programas.
Que hay miles de usuarios de Linux dispuestos a echarles una mano con cualquier duda que tengan.
Que la reinstalación o actualización del sistema operativo no pasa por un borrado completo de su disco duro y sus datos.
Que la reinstalación de todos los programas de su menú se puede hacer de forma automatizada y con dos clicks.
Que pueden disfrutar de efectos 3D en su escritorio sin aumentar su hardware.
Que pueden capturar los videos de su cámara, manipularlos, hacer sus propias composiciones y verlas en su reproductor de mp4, ipod, móvil, etc.
Que catalogar su música, crear listas de reproducción, ripear sus CDs de música, sincronizarla con el contenido de sus reproductores de mp3 es sencillo.
Que el Messenger, Skype, eMule, Bittorrent, Gnutella... también funcionan en Linux
Que existe un navegador gratis al que le pueden añadir funcionalidades que te hacen la navegación una experiencia divertida, amena y con posibilidades casi infinitas.
Que pueden cambiarle los colores, los iconos, la pantalla de inicio, la forma de las ventanas... y todo eso sin necesidad de instalar un programa añadido... que ya viene en el sistema operativo.
Que la navegación por internet vuela y que realmente usas todo el ancho de banda de tu modem/router.
Que varias organizaciones gubernamentales están quitando Windows para poner Linux.
Que en España también hay organizaciones que realizan su propia distribución de Linux (Guadalinex)
Que nos encontramos Linux en los servidores de internet, en las consolas de juegos como la PS3, en móviles como Samsung.

... si le decimos todas esas cosas... ¿qué pasará?

Yo ya comencé y el efecto es liberador :-)

Aquí está el sitio del blog donde surge un buen debate sobre el tema mírenlo y verán muchas otras verdades

Continuar leyendo

Windows Server 2003 (Parte 2)

Chacal [mariav.hedez@infomed.sld.cu]

Ahora en esta edición trabajaremos un poco con más profundidad esta herramienta tan necesaria hoy en día en un Server 2003 que es el Active Directory, aquí lo tienen.

Definición

En una red de Microsoft® Windows® Server 2003, el servicio de directorio Active Directory® proporciona la estructura y las funciones para organizar, administrar y controlar el acceso a los recursos de red. Para implementar y administrar una red de Windows Server 2003, deberá comprender el propósito y la estructura de Active Directory.

Active Directory proporciona también la capacidad de administrar centralmente la red de Windows Server 2003. Esta capacidad significa que puede almacenar centralmente información acerca de la empresa, por ejemplo, información de usuarios, grupos e impresoras y que los administradores pueden administrar la red desde una sola ubicación. Active Directory admite la delegación del control administrativo sobre los objetos de él mismo. Esta delegación permite que los administradores asignen a un grupo determinado de administradores, permisos administrativos específicos para objetos, como cuentas de usuario o de grupo. Active Directory es el servicio de directorio de una red de Windows Server 2003, mientras que un servicio de directorio es aquel que almacena información acerca de los recursos de la red y permite que los mismos resulten accesibles a los usuarios y a las aplicaciones. Los servicios de directorio proporcionan una manera coherente de nombrar, describir, localizar, tener acceso, administrar y asegurar la información relativa a los recursos de red.

La funcionalidad

Active Directory proporciona funcionalidad de servicio de directorio, como medio para organizar, administrar y controlar centralmente el acceso a los recursos de red. Asimismo hace que la topología física de red y los protocolos pasen desapercibidos, de manera que un usuario de una red pueda tener acceso a cualquier recurso sin saber dónde está el mismo o cómo está conectado físicamente a la red. Un ejemplo de este tipo de recurso es una impresora.

Active Directory está organizado en secciones que permiten el almacenamiento de una gran cantidad de objetos. Como resultado, es posible ampliar Active Directory a medida que crece una organización, permitiendo que una organización que tenga un único servidor con unos cuantos centenares de objetos, crezca hasta tener miles de servidores y millones de objetos.

Un servidor que ejecuta Windows Server 2003 almacena la configuración del sistema, la información de las aplicaciones y la información acerca de la ubicación de los perfiles de usuario en Active Directory. En combinación con las directivas de grupo, Active Directory permite a los administradores controlar escritorios distribuidos, servicios de red y aplicaciones desde una ubicación central, al tiempo que utiliza una interfaz de administración coherente.

Además, Active Directory proporciona un control centralizado del acceso a los recursos de red, al permitir que los usuarios sólo inicien sesión una sola vez para obtener pleno acceso a los recursos mediante Active Directory.

La estructura lógica de Active Directory incluye los siguientes componentes:
Objects. Estos son los componentes básicos de la estructura lógica.

Object classes.
Son las plantillas o los modelos para los tipos de objetos que se pueden crear en Active

Directory. Cada clase de objeto es definida por un grupo de atributos, los cuales definen los valores posibles que se pueden asociar a un objeto. Cada objeto tiene una combinación única de los valores de atributos.

Organizational units. Usted puede utilizar estos container objects para organizar otros objetos con propósitos administrativos. Organizando objetos en Organizational Unit, se hace más fácil localizar y administrar objetos. Usted puede también delegar la autoridad para administrar las Organizational Unit. Estas últimas pueden contener otras Organizational Units para simplificar la administración de objetos.

Domains. Son las unidades funcionales core de la estructura lógica de Active Directory, y asimismo es una
colección de los objetos administrativos definidos, que comparten en una base de datos común del directorio, políticas de la seguridad y relaciones de confianza con otros Domains. Los Domains proporcionan las tres funciones siguientes:
Un límite administrativo para los objetos
Medios de administrar la seguridad para los recursos compartidos
Una unidad de réplica para los objetos

Domain trees. Son Domains agrupados en estructuras de jerarquía. Cuando se agrega un segundo dominio a un tree, se convierte en Child del tree Root Domain. El dominio al cual un Chile Domain se une, se llama Parent Domain. El Child Domain puede tener sus propios Child Domain, y su nombre se combina con el nombre de su Parent Domain para formar su propio y único nombre, Domain Name System (DNS). Un ejemplo de ellos sería corp.nwtraders.msft. De este modo, un tree tiene un Namespace contiguo.

Forests.
Un Forest es una instancia completa de Active Directory, y consiste en uno o más trees. En un solo two-level tree, el cual se recomienda para la mayoría de las organizaciones, todos los Child Domains se hacen Children del Forest Root Domain para formar un tree contiguo. El primer dominio en el forest se llama Forest Root Domain, y el nombre de ese dominio se refiere al forest, por ejemplo, nwtraders.msft. Por defecto, la información en Active Directory se comparte solamente dentro del forest. De esta manera, la seguridad del forest estará contenida en una sola instancia de Active Directory.

Siguiendo con todas estas funciones que nos brinda este Sistema Operativo que es Windows Server 2003, esperamos que les sirva de algo si alguien quiera profundizar en algun tema tratado en especifico me lo puede hacer llegar por mi email.

Salu2 nuevamente para la comunidad, este tema de los servidores esta abierto en el siguiente foro: www.ismm.edu.cu/SMF

Continuar leyendo

StartCraft (Parte 2)

Yordan Pérez [truano@infomed.sld.cu]

Consejos y Estrategias

Hotkeys: Para llegar a ser un buen jugador de StarCraft es imprescindible dominar a fondo las HotKeys o teclas de acceso directo, aquí trataré de mencionarlas todas.


SHIFT: La tecla shift tiene varios usos en starcraft. Uno de ellos es que apretando esta tecla y el botón izquierdo del mouse podemos quitar unidades de una selección. Ej: Hemos seleccionado 11 Marines y 1 Firebat, para sacar este último, apretamos shift y hacemos click izquierdo sobre dicha unidad. Otra utilidad es darle órdenes a una unidad y luego manteniendo apretada esta tecla podemos darles otras órdenes, y cuando termine de hacer una pasará a la otra; es decir, poner en la cola las órdenes. Se puede usar para los comandos de mover, atacar, minar, reparar, etc. Algunos ejemplos pueden ser por ejemplo que mandemos a un worker a explorar, cliqueamos a donde queremos que vaya y luego manteniendo shift apretado cliqueamos en otras partes, así nos ahorramos mucho tiempo. Otro puede ser en caso de los Terran, queremos que luego que un SCV construya algo vuelva a minar, para eso le damos la orden de construir el edificio y antes que empiece a construirlo apretando shift hacemos click en un mineral. Además, esta tecla tiene otro uso. Apretando shift y F2-F4 podemos guardar la posición del mapa en ese momento, puede ser útil si hay una zona conflictiva en el mapa y la queremos tener siempre a mano, sólo apretando F2-F3 o F4 podemos localizarla.

CTRL: La tecla ctrl(control) sirve para seleccionar todas las unidades del mismo tipo con sólo mantener esta tecla apretada y clickquear con el botón izquierdo sobre la unidad. Otra forma de hacer lo mismo es mantener la tecla presionada y clickquear en la imagen de la unidad en una selección. ¿Qué aplicación se le puede dar? Fácil, si tenemos unos cuantos Siege Tank (Tanques de asedio) dispersos en la pantalla, presionamos ctrl y clickqueamos en una de ellas, con esto, obtendremos una selección de todos los Siege Tanks, para poder por ejemplo, pasarlos a modo asedio.  Además, apretando Ctrl+ 0-9 (¡No los del teclado numérico!) podemos guardar un grupo de unidades o un edificio para encontrarlos rápido. Un ejemplo clásico es asignarle un número al Comsat Station para que sea más rápido el barrido con el Scan. Así, cuando queremos utilizarlo, hacemos la siguiente combinación de teclas: 0/9 + S (corresponde a la tecla de atajo para ejecutar el Sweep)

OTRAS TECLAS: Apretando la tecla espacio nos localizará el mirador del mapa en el lugar donde se produjo la última transmisión. Este no es realmente una tecla, sino un truquito...si cliquean en el portrait de una unidad serán ubicados en el lugar donde se encuentra dicha unidad. Recuerden usar siempre las Hot keys, son muy útiles para no andar gastando tiempo con el mouse. Cada unidad, edificio y poder especial tiene una, es aquella que aparece resaltada de las demás en el nombre de esta. Algunas son fáciles de recordar, como la del Marine(M),otras no tanto. Por ejemplo, siempre resulta más fácil y más rápido presionar la tecla "T" para lanzar un Psi Storm que andar buscando y clickeando en el ícono del poder.

Esta es la lista de los atajos del teclado, en la versión en inglés del Starcraft:

TERRAN

ZERG

PROTOSS

SCV:S

Select larva:S

Probe:P

Marine:M

Drone:D

Zealot:Z

Firebat:F

Zergling:Z

Dragoon:D

Medic:C

Hidralisk:H

High Templar:T

Ghost:G

Mutalisk:M

Dark Templar:K

Vulture:V

Scourge:S

Archon:R

Tank:T

Queen:Q

Dark Archon:R

Goliath:G

Delfier:F

Shuttle:S

Wraith:W

Ultralisk:U

Scout:S

Dropship:D

Lurker:L

Corsair:O

Valkeriye:Y

Guardian:G

Carrier:C

Battlecruiser:B

Devourer:D

Observer:O

Science Vessel:V

 

Arbiter:A

 

 

Reaver:V

Drops: Con el drop me refiero a los desembarcos, las estrategias y cómo atacar con ellos. Obviamente variará según las razas.

Terran: Tienen como unidad de drop al Dropship. Un ataque tempranero de unos Marines con Medics descargados por el Dropship en el medio de la fuente de recursos del enemigo puede dañarlo económicamente y darnos cierta ventaja. Pero eso no nos servirá para ganarle, para eso tenemos que atacar(todo con los drops no) con algo más fuerte, digamos 3 Dropships, en el primero ponemos dos Tanques, en el segundo otro tanque y 2 Goliaths y en el tercero 2 Marines,1 Medic,1 SCV (VCE) y 2 Goliaths. Los Goliaths nos servirán principalmente de defensa anti-aérea, y un también ofrecerán cierta protección terrestre. El SCV es para reparar los tanques y para construir edificios, como Bunkers y Turrets (Torretas), es más, yo les recomendaría que lleven más SCVs, pero lo dejamos ahí. La descarga debe ser en lo posible en un lugar desprotegido, fuera del alcance del enemigo, y que este no nos vea. Atacamos con los tanques y defendemos con las otras unidades, así de simple, si el drop tiene éxito continúen trayendo unidades. Pero no descuiden sus flancos.               

Protoss: Tienen la unidad de drop más rápida de todas las razas(con el upgrade obviamente),aunque no es muy fuerte, el Shuttle (Lanzadera lo compensa con su velocidad.
Principalmente se usa para el Reaver Rush, pero también se suelen hacer drops igual que los Terran con Zealots y Dragons, también útiles.

Zerg: Es el más interesante, y el mejor, ya que como el Overlord (Superamo) es la unidad de transporte y de supply, la tendremos en abundancia. ¡Pero no se olviden de tener unos cuantos extra y hacerles todo los upgrades! lo que se hace habitualmente es aprovechar esta ventaja para realizar una descarga MASIVA de Hidralisks, Zerglings o lo que sea en la base enemiga, aunque el enemigo puede llegar a destruir algunos Overlords, la mayoría llegará y descargará su contenido letal, y para colmo los Overlods son detectores, y no nos tendremos que preocupar por unidades escondidas. Un buen ataque de drop debe tener al menos, como mínimo para que sea destructivo unos 12/15 Overlords repletos con lo que sea. Otra cosa que se suele hacer es llenar los Overlords con Lurkers, digamos unos 3 o 4 Overlords, y descárgalos en el medio de la base enemiga, letal. Especial contra los Terran temprano en el juego.

Trucos

Yo particularmente no soy partidario de usar trucos, creo que cuando se usan trucos para ganar un juego uno mismo es quien se engaña, pero al final muchas personas prefieren usarlos y bueno, tampoco soy quien para criticar el gusto ajeno, para aquellas personas que gustan de los cheats, aquí van:
Para poner las claves presiona “enter” escribe el código y presiona “enter” una vez mas.

código

Descripción

BLACK SHEEP WALL: Mapa completo
BREATHE DEEP: 500 de gas

FOOD FOR THOUGHT: Construir unidades por encima del limite permitido.
GAME OVER MAN: Perder el juego.
HEAL MA: La unidad seleccionada a continuación explota
MAN OVER GAME: Ganar el juego.
MEDIEVAL MAN:   Mejoras gratis en las unidades.
MODIFY THE PHASE VARIANCE:     Construir todos los edificios.
NOGLUES:     Enemigos sin magia.
OPERACION CWAL:  Construye mas rápidamente las unidades y edificios.
OPHELIA:    Cambio de nivel.
PIERU:  Acceder a todas la unidades.
POWER OVERWHELMING:      Modo Dios.
SHOW ME THE MONEY:  10.000 de gas y 10.000 de minerales.
SOMETHING FOR NOTHING:  Todas las mejoras
STAYING ALIVE:   La misión acaba en empate.
THE GATHERING:   Energía ilimitada en todas las unidades.
THERE IS NO COW LEVEL:  Acabar la misión actual.
WAR AINT WHAT IT USED TO BE:  Quita la niebla.
WHATS MINE IS MINE: 500 de mineral.

Bueno espero que los fans de StarCraft me sepan disculpar porque en realidad hay muchísimo mas que hablar sobre este juego, pero si ya se han dado cuenta voy por 5 hojas de Word y comprenderán que no puedo extender demasiado un articulo, aun me queda material de sobra para extender este articulo al menos por 5 hojas mas pero sencillamente es imposible, bueno espero que lo hallan disfrutado, espero haberles podido enseñar algo a los que no son tan duchos pero quieren llegar a serlo, voy a preparar un txt con todo el material que tengo sobre starcraft y si alguien está interesado solo tienen que solicitármelo a mi correo y se lo envío.

En el próximo artículo hablaremos de otro gigante de la Blizzard, el WoW (Word of Warcraft). Espero les comience a gustar esta sección de juegos, todo aquel que pueda colaborar conmigo brindándome juegos para poder analizarlos, escríbanme a mi email, será de gran ayuda.

Continuar leyendo