Crear un USB de arranque

A continuación  se detallará como realizar un USB de arranque para poder disponer de sistemas operativos en nuestra memoria USB.

Necesitaremos los siguientes programas para realizar el siguiente tutorial:

Lo primero que necesitaremos será un sistema operativo ligero, que ocupe poco y que cumpla con nuestras necesidades, disponemos de variedad de sistemas operativos ligeros en la pagina http://www.livecdlist.com/.

El siguiente paso será formatear la memoria USB mediante el programa HP USB Storage Format tool, nos aseguramos de no disponer de datos importantes en la memoria USB, pues estos serán borrados, ejecutamos el programa, seleccionamos la memoria USB y el sistema de archivos deseado, por ejemplo FAT32.

Seleccionamos «quick format» para realizar el formateo a bajo nivel, así tardara menos tiempo, una vez formateado podremos comprobar que todos los datos que contenía se han borrado.

Con el programa Roho mini Drive crearemos una partición encriptada dentro de la memoria USB para proteger nuestros archivos.
Seleccionamos el idioma de la instalación y nos aparecerá la pantalla de bienvenida, aceptamos el acuerdo de licencia y seleccionamos si queremos un acceso directo, el programa se instalara en nuestro disco duro y nos permitirá ejecutarlo para realizar la encriptacion, seleccionamos «configurar la llave USB«

El programa detectará automáticamente nuestra memoria USB, introducimos la contraseña que deseamos y pulsamos en aceptar, Rohos Mini drive creará la partición cifrada.

Copiamos la iso del sistema operativo elegido en la memora USB.

Mediante el programa Universal Installer MultiBootISOs podremos cargar nuestras iso mediante un «GRUB» personalizado, ahora dispondremos de sistemas operativos en nuestro pendrive o memoria externa.


Procedimientos para eliminar malware (virus, troyanos, gusanos…)

Es común en el mundo de la informática que nuestro PC sea infectado tarde o temprano por un virus, a menudo debido a la ausencia de antivirus o a que este no cuenta con protección especifica contra malware concreto.

Generalmente, el procedimiento de la mayoría de malware que nuestro antivirus no logra eliminar es el mismo,  ejecutarse al inicio de nuestro sistema operativo (que el 99% de las veces será Windows) para ejecutarse nada mas iniciar el So, impidiendo luego el acceso a utilidades criticas del sistema como el panel de control o al propio antivirus, impidiendo así el correcto funcionamiento del sistema a la vez que impide su eliminación, los pasos a seguir para eliminar la gran mayoría de malware es sencilla, no es una panacea, pues a menudo nos toparemos con virus tan específicos, que requerirán otro tipo de medidas.

Paso 1- Iniciar Windows en Modo Seguro

Arrancamos el ordenador y pulsamos la tecla F8 justo antes de iniciarse Windows, aparecerá un menú en el que se nos presentaran una serie de posibilidades, seleccionamos iniciar en «modo seguro» (si lo deseáis podéis seleccionarlo con funciones de red para disponer de conexio), al iniciar en modo seguro, solo se iniciaran los servicios y programas indispensables y de total confianza, esto evitará que el malware (virus, troyanos, spyware…) se inicie con Windows.

Paso 2- Desactivar los servicios y programas de inicio sospechosos

En el menú inicio seleccionamos «ejecutar» e introducimos «msconfig» para acceder a la configuración de inicio de Windows, donde entre otras cosas podremos seleccionar los servicios y programas que se ejecutan al iniciar Windows.

Nos dirigimos a la pestaña servicios y ocultamos todos los de Windows marcando la casilla inferior,  revisamos todos los servicios que se inician con el sistema y confirmamos que son de confianza (programas que tenemos instalados y que consideramos indispensables), el resto, des-seleccionadlos, solo deben quedar aquellos programas que 100% seguro no son malware (preferiblemente dejar activo solo nuestro antivirus de confianza), realizamos el mismo procedimiento en la pestaña «inicio», podemos buscar uno por uno comprobando si son malware en las distintas paginas especializadas en archivos exe como por ejemplo Alegsa.com.ar, what-is-exe.com o la mas popular processlibrary.com, o directamente des-seleccionar todo el software a excepción del indispensable (programas que sepamos 100% seguro no son malware), el software des-seleccionado podrá iniciarse manualmente después de arrancar el SO, por lo tanto no perderemos nada, simplemente estos programas no arrancaran de inicio, tendremos que abrirlos nosotros mismos manualmente cuando necesitemos utilizarlos, nada grave, además, mataremos dos pájaros de un tiro, a menos programas de inicio, mas rápido arrancara el sistema.

Solo nos queda desactivar la opción «restaurar sistema», pues es bien conocido que muchos tipos de malware son capaces de restaurar el sistema a un estado anterior deshaciendo todos los cambios  hechos previamente.
Para ello accedemos a «propiedades» de «mi PC», seleccionamos la pestaña «Restaurar sistema» y desmarcamos la casilla «Restaurar sistema en todas las unidades», una vez nos aseguremos de que el malware ha desaparecido podremos volver a activarlo.

Paso 3 – Reiniciar en modo normal (Este paso puede realizarse también desde modo seguro)

Una vez nos aseguramos de que hemos des-seleccionado aquellos programas que pudieran contener el malware reiniciamos en modo normal, comprobamos si en efecto, el malware ha desaparecido, si es así, no todo está hecho, queda «eliminar» realmente ese malware del ordenador (pues aun está ahí, solo que no se inicia al inicio), para ello disponemos de software especializado en malware como Malwarebytes, que hasta ahora me ha funcionado estupendamente, también disponéis de otro software antispyware como Dr.Web CureIt así como un gran repertorio de antivirus portables, así como el propio antivirus del que se disponga en el ordenador, una vez se nos haya detectado el malware y haya sido eliminado (y comprobado con un nuevo escaneo que no queda ninguno mas) podremos activar de nuevo «Restaurar sistema» y respirar aliviados.

Paso 3-B

En caso de que el virus continúe ejecutándose en el modo normal, convendrá desactivar todos los servicios (a excepción de los del sistema) y programas de inicio, entraremos en la carpeta «C:\Documents and Settings\All Users\Menú Inicio\Programas\Inicio«, accedemos a «Herramientas/opciones de carpeta«, pestaña ver y seleccionamos «Mostrar todos los archivos y carpetas ocultos«, nos aseguraremos de que no hay ningún archivo y de haberlo, lo eliminamos, realizamos la misma comprobación en el directorio «C:\Documents and Setting\Tu_Usuario\Menú Inicio\Programas\Inicio» con cada usuario del sistema, con el malwarebytes analizamos el registro para asegurarnos y reiniciamos en modo normal para repetir el paso 3.

Crear un dominio en Ebox y añadirse a el desde Windows XP

En el siguiente videotutorial (realizado mediante la voz sintética Loquendo) podréis ver como crear un dominio mediante un servidor con el sistema operativo Ebox y como desde una maquina cliente con Windows XP os podéis añadir a el.

Si estáis interesados en conseguir Ebox, desde aquí podéis descargaros-lo, pues se trata de software libre gratuito.

Seguridad para tus memorias externas (Pendrive, HD Externo, MP3…)

La portabilidad de las memorias USB como pendrives o discos duros externos, tienen en la posibilidad de utilizarlos en cualquier parte su mayor riesgo, pues las posibilidades de ser infectados con todo tipo de virus, troyanos o spyware es alta, y lo que es peor, nuestra memoria USB se convertirá en un medio de contagio que infectará todos los ordenadores por los que pase, incluido el nuestro si utilizamos estos dispositivos en nuestro lugar de trabajo o estudio, por ello os traigo una serie de herramientas de seguridad que impedirán que nuestro pendrive se vea afectado, o al menos, impedir que este infecte a nuestro PC.

MXONE 4.5

Es quizás uno de los antivirus mas conocidos para proteger nuestras memorias USB, se trata de software gratuito altamente fiable, puede instalarse en nuestro Pc o en nuestra memoria externa, permite diversos tipos de ejecución, desde protección de nuestra memoria externa para impedir que entre malware hasta su utilización para impedir que el malware de nuestra memoria externa infecte nuestro PC (eliminando a su vez el programa infeccioso), debe ser instalado en nuestro Pc para que se autoejecute cuando detecte que se ha introducido una memoria externa.

Descargar MXONE 4.5

ClamWin Portable

Otro antivirus gratuito y que podemos transportar en nuestra memoria externa, su principal ventaja es su precio, completamente gratuito, pues está desarrollado bajo licencia GNU, a diferencia de MXONE, no puede ejecutarse automáticamente, debe ser ejecutado manualmente cada vez que queramos analizar y limpiar nuestra memoria externa de virus.

Descargar ClamWin Portable

Ninja Pendisk

Ligera y sencilla herramienta antivirus, el programa debe instalarse en el Pc en el que queramos que no entren virus desde la memoria externa, el programa se inicia automáticamente con Windows protegiendo nuestras memoria externa desde el inicio del sistema, automáticamente cuando introducimos una memoria externa la analiza y elimina los archivos que bajo su punto de vista, son perjudiciales sin necesidad de seleccionar nada y de manera rápida y optima, sin embargo eso incluye el archivo autorun.inf, que puede ser de utilidad para aquellos que deseen autoejecutar programas al conectar la memoria externa.

Descargar ninja pendisk

Portable AVG 7.5 Anti-Spyware

Uno de los antivirus gratuitos mas populares junto con Avast, AVG Free en versión portable, al igual que Clamwin, no dispone de la posibilidad de ser autoejecutable, sin embargo, posee uno de los análisis mas completos y sofisticados de los que podemos encontrar, por lo que es una buena alternativa si no nos importa tener que ejecutar nosotros mismos el programa y ordenador el análisis del dispositivo.

Descargar AVG 7.5 Portable

El juego de la vida – Lenguaje de programación C

El juego de la vida es un autómata celular diseñado por el matemático británico John Horton Conway en el año 1970.
Este simula en cierta manera el mundo en el que vivimos, nos encontramos con una cuadricula de tamaño predeterminado (por nosotros) en el que cada casilla puede tener dos estados, vivo o muerto, este estado viene determinado por las casillas circundantes mediante unas sencillas reglas.

  • Una casilla muerta con exactamente 3 casillas vecinas vivas «nace» (el siguiente turno estará viva).
  • Una casilla viva con 2 ó 3 casillas vecinas vivas sigue viva, si solo tiene 1 vecino muere por soledad, si tiene mas de 3 vecinos muere por superpoblación.

En clase de programación se propuso como ejercicio realizar el juego de la vida en C, a continuación os dejo el código de mi programa.
En el juego se pueden formar múltiples formas, algunas variables, otras intermitentes y  otras fijas e inamovibles, en este programa solo se ha realizado un «bloque» principal pues es mi primera experiencia programando en tablas bidimensionales, el juego original estaría formado por docenas de bloques que irían evolucionando independientemente, se fusionarían o desaparecerían, como por ejemplo, podréis observar en el gif de arriba, para mas información, tenéis la Wikipedia.

#include<stdio.h>
#include<conio.h>
#define X 20    //el numero de filas declarado en una constante
#define Y 20   //el numero de columnas declarado en una constante
int main()
{
//declaración de variables
int ix, iy, ixd, ixe, iys, iyi, vius; //las variables ixd(ix derecha), iys(iy superior).etc..
//sirven para comprobar las casillas
alrededor de la casilla que se examina
char mundo[X][Y], estado[X][Y], opc;  //una tabla se mostrará, en la otra se aplicarán los cambios
//inicializar tabla mundo
for(ix=0; ix<X; ix++)
    {
        for(iy=0; iy<Y; iy++)
        {
            mundo[ix][iy]=' ';
        }
    }
//mostrar un menú y escoger el estado inicial de nuestro juego de la vida
printf("Selecciona el estado inicial:\na)bloque\nb)barco\nc)parpadeador\nd)sapo\ne)planeador\nf)
nave ligera\n");

do  //mientras la opción no sea valida, seguirá leyendo hasta dar con una letra valida
{
    scanf("%c", &opc);
}while(opc<'a' || opc>'f');

//situar estado inicial
switch(opc)
{
   case 'a':mundo[0][0]='X';mundo[0][1]='X';mundo[1][0]='X';mundo[1][1]='X';break;
   case 'b':mundo[0][0]='X';mundo[0][1]='X';mundo[1][0]='X';mundo[1][2]='X';mundo[2][1]='X';break;
   case 'c':mundo[0][0]='X';mundo[0][1]='X';mundo[0][2]='X';break;
   case 'd':mundo[0][1]='X';mundo[0][2]='X';mundo[0][3]='X';mundo[1][0]='X';mundo[1][1]='X';mundo[1][2]='X';break;
   case 'e':mundo[0][0]='X';mundo[0][1]='X';mundo[0][2]='X';mundo[1][0]='X';mundo[2][1]='X';break;
   case 'f':mundo[0][1]='X';mundo[0][4]='X';mundo[1][0]='X';mundo[2][0]='X';mundo[2][4]='X';mundo[3][0]='X';mundo[3][1]='X';mundo[3][2]='X';mundo[3][3]='X';break;
   default: printf("error, ha de ser entre 'a' i 'f'");
}
//bucle infinito, dado que el juego de la vida no tiene final
    while(1==1)
    {   //for para mostrar la tabla mundo
        for(ix=0; ix<X; ix++)
        {
            for(iy=0; iy<Y; iy++)
            {
                printf("%c",mundo[ix][iy]);
            }
            printf("\n");
        }
        system("pause");  //pausa el juego, hasta que pulsemos una tecla, no mostrará el siguiente estado de la tabla
        //recorrido total para comprobar si ha llegado al limite de la tabla
        for(ix=0; ix<X; ix++)
        {
            for(iy=0; iy<Y; iy++)
            {
                vivos=0;

                if(ix>=X-1)
                    ixd=0;
                else
                    ixd=ix+1;

                if(iy>=Y-1)
                    iyi=0;
                else
                    iyi=iy+1;

                if(ix<=0)
                    ixe=X-1;
                else
                    ixe=ix-1;

                if(iy<=0)
                    iys=Y-1;
                else
                    iys=iy-1;

                //comprobación para saber si los vecinos están vivos o muertos
                if(mundo[ixd][iy]=='X')    vivos++;
                if(mundo[ixe][iy]=='X')    vivos++;
                if(mundo[ix][iys]=='X')    vivos++;
                if(mundo[ix][iyi]=='X')    vivos++;
                if(mundo[ixd][iys]=='X')   vivos++;
                if(mundo[ixe][iys]=='X')   vivos++;
                if(mundo[ixd][iyi]=='X')   vivos++;
                if(mundo[ixe][iyi]=='X')   vivos++;

                //condicional para determinar si la casilla vive o muere
                if(mundo[ix][iy]=='X')
                {
                    // esta vivo
                    if(vivos<=1 || vivos>3)
                    {
                        estado[ix][iy]=' ';
                    }else{
                            estado[ix][iy]='X';
                    }

                }else
                {
                    // esta muerto
                    if(vivos==3)
                    {
                        estado[ix][iy]='X';
                    }else{

                        estado[ix][iy]=' ';
                    }
                }

            }// final del for iy

        } // final del for ix

        //guardamos la tabla estado en la tabla mundo, para que la próxima vez que entre en el bucle se muestre actualizada
        for(ix=0; ix<X; ix++)
        {
            for(iy=0; iy<Y; iy++)
            {
                mundo[ix][iy]=estado[ix][iy];
            }
        }  //final del for para guardar la tabla estado en la tabla mundo

    } //final del bucle

}

#include<stdio.h>

#include<conio.h>

#define X 20

#define Y 20

int main()

{

//variables

int ix, iy, ixd, ixe, iys, iyi, vius, aux;

char mundo[X][Y], estado[X][Y], opc;

//netejar mundo

for(ix=0; ix<X; ix++)

{

for(iy=0; iy<Y; iy++)

{

mundo[ix][iy]=’ ‘;

}

}

//mostrar menu i escollir estado inicial

printf(«Selecciona l’estado inicial:\na)bloc\nb)barca\nc)semafor\nd)gripau\ne)planador\nf)astronau\n»);

 

do

{

scanf(«%c», &opc);

}while(opc<‘a’ || opc>’f’);

 

//situar estado inicial

switch(opc)

{

case ‘a’:mundo[0][0]=’X’;mundo[0][1]=’X’;mundo[1][0]=’X’;mundo[1][1]=’X’;break;

case ‘b’:mundo[0][0]=’X’;mundo[0][1]=’X’;mundo[1][0]=’X’;mundo[1][2]=’X’;mundo[2][1]=’X’;break;

case ‘c’:mundo[0][0]=’X’;mundo[0][1]=’X’;mundo[0][2]=’X’;break;

case ‘d’:mundo[0][1]=’X’;mundo[0][2]=’X’;mundo[0][3]=’X’;mundo[1][0]=’X’;mundo[1][1]=’X’;mundo[1][2]=’X’;break;

case ‘e’:mundo[0][0]=’X’;mundo[0][1]=’X’;mundo[0][2]=’X’;mundo[1][0]=’X’;mundo[2][1]=’X’;break;

case ‘f’:mundo[0][1]=’X’;mundo[0][4]=’X’;mundo[1][0]=’X’;mundo[2][0]=’X’;mundo[2][4]=’X’;mundo[3][0]=’X’;mundo[3][1]=’X’;mundo[3][2]=’X’;mundo[3][3]=’X’;break;

default: printf(«error, ha de ser entre ‘a’ i ‘f'»);

}

//proces

//bucle infinit

while(1==1)

{   //for per mostra la taula mundo

for(ix=0; ix<X; ix++)

{

for(iy=0; iy<Y; iy++)

{

printf(«%c»,mundo[ix][iy]);

}

printf(«\n»);

}

system(«pause»);

//recorregut total per comprobar si ha arrivat al limit del tauler

for(ix=0; ix<X; ix++)

{

for(iy=0; iy<Y; iy++)

{

vius=0;

 

if(ix>=X-1)

ixd=0;

else

ixd=ix+1;

 

if(iy>=Y-1)

iyi=0;

else

iyi=iy+1;

 

if(ix<=0)

ixe=X-1;

else

ixe=ix-1;

 

if(iy<=0)

iys=Y-1;

else

iys=iy-1;

 

//comprobació de si els veins estan vius o morts

if(mundo[ixd][iy]==’X’)    vius++;

if(mundo[ixe][iy]==’X’)    vius++;

if(mundo[ix][iys]==’X’)    vius++;

if(mundo[ix][iyi]==’X’)    vius++;

if(mundo[ixd][iys]==’X’)   vius++;

if(mundo[ixe][iys]==’X’)   vius++;

if(mundo[ixd][iyi]==’X’)   vius++;

if(mundo[ixe][iyi]==’X’)   vius++;

 

//condicional per determinar si la casella viu o mor

if(mundo[ix][iy]==’X’)

{

// esta viu

if(vius<=1 || vius>3)

{

estado[ix][iy]=’ ‘;

}else{

estado[ix][iy]=’X’;

}

 

 

}else

{

// esta mort

if(vius==3)

{

estado[ix][iy]=’X’;

}else{

 

estado[ix][iy]=’ ‘;

}

}

 

}// for iy

 

} // for ix

 

//guardem la taula estado amb l’estado actual a la taula mundo, per a que la seguent vegada que entri al bucle pugi mostrarla actualitzada

for(ix=0; ix<X; ix++)

{

for(iy=0; iy<Y; iy++)

{

mundo[ix][iy]=estado[ix][iy];

}

}

 

}

 

return 0;

 

}

Por motivos de fomatado de texto, es imposible mostrar correctamente todo el código sin que se excedan los margenes, dado que considero que realizar saltos de linea podría dificultar la lectura del código, adjunto documento de texto para que podáis descargaros el código cómodamente y así compilarlo vosotros mismos.

Agradecería el gesto de comunicar aquellos posibles errores detectados en el código, para así facilitar-les la vida a los lectores.