miércoles, abril 28, 2010

Find, busqueda en UNIX, Linux, etc.

Normalmente utilizaremos el comando FIND.
Si hay que hacer algo con los ficheros encontrados podemos redirigir la salida a otro comando con pipe o pipeline.

En el siguiente ejemplo busca los ficheros que se hayan modificado hace más de 15 días y se los pasa como argumento al comando rm para que los elimine:


find /dir-ejemplo/otro-directorio –type f –mtime +15|xargs rm

-type f indica que lo que buscamos son ficheros "normales" (regular files).

En cuanto a mtime si ponemos una cantidad negativa (-15) buscaría los modificados hace menos que 15 días.


Para buscar ficheros con extensiones concretas:

La parte de las extensiones la he bajado del repositorio libre: http://www.dzone.com/snippets/find-files-certain-extensions

find ./ -regex ".*\(php\|html\|tpl\)$"

También se puede así: find ./ -iname "*.php" -or -iname "*.tpl" -or -iname "*.html"


Otras opciones:

A veces en lugar de mtime nos puede interesar más utilizar el ctime o atime:
ctime: cambio en el inodo. Cada vez que cambia el mtime cambia también el ctime. Pero además ctime cambia otras veces. Por ejemplo cuando cambia el propietario o algún permiso del fichero.
mtime: cambio en el fichero. Cambia cuando escribes en el fichero. Es la “edad” de los datos.
atime: access time es la última vez que se ha leído el fichero.
Puede ocurrir también que en lugar de buscar en días queremos buscar en minutos (los modificados hace menos de 15 minutos por ejemplo):

cmin, mmin, amin son los equivalentes en minutos de ctime, mtime y atime.


Continuando con opciones de find:


-name busca el patrón que pongamos a continuación.
Por ejemplo find / -name 'nombr?'

-iname es igual que name pero no distingue entre mayúsculas y minúsculas.
-depth procesa cada subdirectorio antes que el propio directorio.

-xdev indica que no se descienda por directorios de otros filesystems.
-delete CUIDADO. Borra ficheros. Aunque no lo pongamos -delete supone hacer -depth.

-path busca dentro de los directorios que cumplan el patrón:
Ejemplo: find . -path '*dbs*' -print
Junto con -path podemos usar la opción -prune y -o:
-prune (=limpiar). Se suele utilizar en combinación con -o que si no se cumple lo que hay a su izquierda (expresión 1), ejecuta lo que hay a su derecha (expresión 2).
Este ejemplo muestra el contenido de los directorios que no cumplen el patrón:
find . -path '*dbs*' -prune -o -print

Observación sobre -prune: 

Saludos.

sábado, abril 24, 2010

Themida

¿Qué es Themida?

Algunos pensarán que es malware (software malicioso), otros te dirán que es un programa de ayuda al desarrollador.

En principio Themida es un software que desarrolla una compañía llamada Oreans Technology y no debería ser visto con suspicacia:


Ofrecen diferente software para proteger nuestros paquetes. Ya lo dicen en su web: "Protege tus aplicaciones Shareware con WinLicense".

El Themida serviría para "proteger sus aplicaciones con las tecnologías más avanzadas contra la ingeniería software y piratería".

Lo que ocurre es que mala suerte, resulta que los troyanos también son aplicaciones y el personal se ha dedicado a proteger troyanos con las tecnologías más avanzadas contra la ingeniería software.

De esta forma todo tipo de malware se puede empaquetar y pasar desapercibido ante los antivirus y herramientas similares.

Esto ha degenerado en que los antivirus dan falsos positivos ante cualquier programa protegido con Themida.

¿Y que opina la empresa de esta práctica?

Pues están hasta el gorro. En especial del NOD32. Aquí la queja de un desarrollador de Themida recomendando qué hacer en caso de que el antivirus detecte un falso positivo (suelen identificarlo como WIN32.PACKED.THEMIDA):


¿Cómo se utiliza para fines maliciosos?

En portalhacker.net hay un pequeño manual y unos cuantos enlaces al Themida. Cuidado si decidís descargarlo. No olvidar para qué lo utilizan.

Saludos.

martes, abril 20, 2010

Goody, un juego pequeño pero difícil

En el post anterior viene el enlace a la descarga del juego y la forma de instalar y configurar un emulador si es que no utilizamos windows.


En la imagen vemos la entrada al metro de Madrid en Opera (igual que el nombre de la compañía). A lo largo del juego habrá más lugares de Madrid como el parque del retiro por ejemplo.

Ya en la época se consideraba un juego difícil, y más si no sabías el truco de las vidas infinitas.

Las teclas son muy sencillas: Q arriba A abajo O izquierda y P derecha.
Para utilizar la escalera portátil el Enter.
Para tirar un ladrillo a un enemigo la barra espaciadora.

Para vidas infinitas, antes de empezar pulsamos a la vez las letras de la palabra "OPERA" que fue la compañía que hizo el juego.

Hoy en día me parece increíble que todo el juego ocupe apenas 88 k-s. Para estos juegos se empleaban un motón de trucos ingeniosos. Por ejemplo, los escenarios se crean a base de repetición de bloques llamados tiles. En este sitio tenéis un buen análisis de los "tiles" del GOODY y del DOCTOR LIVINGSTONE SUPONGO.

Después del viaje en metro salimos en la parada GONZO. Gonzo Suarez fue el creador del Goody, y ésta su obra maestra.

Como en todo software, algún bug tenía que haber. ¿Veis la siguiente imagen? Voy a intentar atravesar la pared de la derecha...


Pues la atravieso sin problemas:


Y ahora una pequeña faena para el que quiera llegar al final:
Por muchas vidas infinitas que tengas, cuando te matan en una pantalla vuelves a aparecer en la misma igual que habías entrado.

Cuando llegas a un lugar concreto en un tramo de obras hay un salto muy difícil de hacer. Lo normal es que pegues en una viga y caigas sin llegar al otro extremo. Pues bien, en el escenario al que caes hay un bidón de alquitrán donde el Goody muere. Aunque tengas vidas infinitas caerás indefinidamente por lo que tendrás que cerrar la ventana e intentarlo otro día.


El mismo problema existe en "Doctor Livingstone supongo" por lo que nunca terminé ese juego.

Saludos.

lunes, abril 12, 2010

Primer paso: el emulador MS/DOS

Iba a empezar por una lista de juegos clásicos. Pensaba enumerarlos en el post anterior y luego ir analizándolos en detalle. Para analizarlos los iba a jugar otra vez en un viejo IBM 286 que me regaló un amigo pero el inconveniente era que no iba a poder mostrar los pantallazos fácilmente.

Por eso voy a explicar como instalar un emulador MS/DOS para nuestros viejos juegos, y esto tiene entidad suficiente para un nuevo post.

Para variar vamos a instalar otro emulador en Mac OSX a ver si mi colega Castrol se anima a probar esto.

INSTALACIÓN DE DOSBOX EN MAC OSX o en el sistema que queramos.

1.-Vamos a la zona de descargas de DOSBOX: http://www.dosbox.com/download.php?main=1

2.-Descargamos el de nuestro sistema operativo. En mi caso Mac OSX.
Esto es lo que nos encontraremos:


3.-Creamos una carpeta que por ejemplo llamaremos msdos. En esa carpeta guardamos los juegos MS/DOS que nos interesen. Yo lo he colocado en la raiz del disco duro para que todo resulte más fácil.

4.-Me descargo un clásico de mi adolescencia. El GOODY. Está disponible aquí: http://www.juegoviejo.com/pc/g/Goody_1.html
Mañana comentaré cosas de este juego y de otro.
Como he dicho antes colocamos la carpeta del GOODY dentro del que hemos llamado msdos.

5.-Ejecutamos el DOSBox.


6.-Ejecutamos el siguiente comando: mount c /msdos
Lo que hace es montar el contenido de la carpeta msdos como si fuera la unidad C del emulador.

7.-Pasamos a la unidad C: c:

8.-Cambiamos al directorio del juego: cd goody

9.-Entramos en el juego: goody y a disfrutar:


Por supuesto, el sonido va perfecto igual que la otra vez en Kubuntu Linux.

Saludos.

sábado, abril 10, 2010

Otra vez aquí...

Lo siento, no he podido dar señales de vida en los últimos días. Comienzo una nueva etapa con nuevas responsabilidades.

Nada mejor para empezar algo nuevo que repasar antiguas costumbres.

Empecé la semana leyendo un antiguo comic de SuperLopez (ante el asombro de diverso personal sanitario), y voy a terminar repasando algunos juegos de la prehistoria informática. Siempre podré decir, "yo estuve allí".

Super López y el Super Grupo aparece en el Super Humor número 1 de Bruguera dedicado enteramente a Super López (fecha que aparece en el volumen: 1983).







Mañana coloco la lista de los juegos...

Saludos.