Resolviendo CAPTCHA con Javascript y Canvas

cpatchasolved1

Un grave problema de seguridad para aquellas páginas que cuentan con el uso de CAPTCHAs para prevenir el registro automático de robots en páginas web. El programa usa un script en javascript y el elemento HTML 5 canvas, incluso poniendo una muestra de cómo resuelve los captchas de la página Megaupload. Lo interesante del programa es que usa una implementación de una red neural en javascript de un sistema de reconocimiento de caracteres ópticos.

Saber que locale están instalados en el servidor con PHP

Si intentamos mostrar una fecha en PHP es posible que nos encontremos que salga con el formato:

July 31, 2007

Para que se muestre correctamente debemos usar el “locale” correcto que haga que se muestre la fecha en el formato adecuado. Los locales más habituales son del estilo de éstos:

es_ES
es_ES.ISO_8859-1

Para establecer un locale se usa la siguiente función:

@setlocale(LC_TIME, 'es_ES');

El problema es que hay que hay que poner el nombre exacto del locale ya que de otra forma no funcionará. Aquí tenéis un sencillo script en PHP que te ayudará a saber qué locales están instalados en tu servidor:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a');
echo '‘;
?>

Si quieres que se muestren sólo los españoles:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a | grep -i es');
echo '‘;
?>

Grabar CD/DVD en Consola con Mkisofs y Cdrecord

Este pequeño tutorial fue probado en CentOS 5 pero funciona para cualquier versión de Linux, al final la consola es igual para todos.

Para quemar en consola, necesitamos contar con una quemadora de CD/DVD, Bastantes CD/DVD donde quemar, lo que queremos quemar y los siguiente programas que instalamos a continuación.

# yum -y install mkisofs cdrecord

Necesitamos crear una .ISO de lo que deseamos quemar. para esto utilizamos el comando mkisofs

# mkisofs -r -l -o imagen_que_quiero_crear.iso /home/data_que_quiero_quemar

Mas o menos nos saldrá la siguiente información

INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
1.98% done, estimate finish Thu Jul 3 10:28:10 2008
3.96% done, estimate finish Thu Jul 3 10:28:10 2008
5.94% done, estimate finish Thu Jul 3 10:28:10 2008
7.92% done, estimate finish Thu Jul 3 10:28:10 2008
9.89% done, estimate finish Thu Jul 3 10:28:10 2008
11.87% done, estimate finish Thu Jul 3 10:28:10 2008
13.85% done, estimate finish Thu Jul 3 10:28:10 2008
15.83% done, estimate finish Thu Jul 3 10:28:10 2008
17.80% done, estimate finish Thu Jul 3 10:28:10 2008
19.79% done, estimate finish Thu Jul 3 10:28:10 2008
21.76% done, estimate finish Thu Jul 3 10:28:10 2008
23.74% done, estimate finish Thu Jul 3 10:28:10 2008
25.72% done, estimate finish Thu Jul 3 10:28:10 2008
27.70% done, estimate finish Thu Jul 3 10:28:10 2008
29.67% done, estimate finish Thu Jul 3 10:28:10 2008
31.66% done, estimate finish Thu Jul 3 10:28:10 2008
33.63% done, estimate finish Thu Jul 3 10:28:10 2008
35.61% done, estimate finish Thu Jul 3 10:28:10 2008
37.59% done, estimate finish Thu Jul 3 10:28:10 2008
39.57% done, estimate finish Thu Jul 3 10:28:10 2008
41.54% done, estimate finish Thu Jul 3 10:28:10 2008
43.52% done, estimate finish Thu Jul 3 10:28:10 2008
45.50% done, estimate finish Thu Jul 3 10:28:10 2008
47.48% done, estimate finish Thu Jul 3 10:28:10 2008
49.46% done, estimate finish Thu Jul 3 10:28:10 2008
51.44% done, estimate finish Thu Jul 3 10:28:10 2008
53.41% done, estimate finish Thu Jul 3 10:28:10 2008
55.39% done, estimate finish Thu Jul 3 10:28:10 2008
57.37% done, estimate finish Thu Jul 3 10:28:10 2008
59.35% done, estimate finish Thu Jul 3 10:28:11 2008
61.33% done, estimate finish Thu Jul 3 10:28:11 2008
63.31% done, estimate finish Thu Jul 3 10:28:11 2008
65.28% done, estimate finish Thu Jul 3 10:28:11 2008
67.26% done, estimate finish Thu Jul 3 10:28:11 2008
69.24% done, estimate finish Thu Jul 3 10:28:11 2008
71.22% done, estimate finish Thu Jul 3 10:28:11 2008
73.20% done, estimate finish Thu Jul 3 10:28:11 2008
75.18% done, estimate finish Thu Jul 3 10:28:11 2008
77.15% done, estimate finish Thu Jul 3 10:28:11 2008
79.13% done, estimate finish Thu Jul 3 10:28:11 2008
81.11% done, estimate finish Thu Jul 3 10:28:11 2008
83.09% done, estimate finish Thu Jul 3 10:28:11 2008
85.06% done, estimate finish Thu Jul 3 10:28:11 2008
87.05% done, estimate finish Thu Jul 3 10:28:11 2008
89.02% done, estimate finish Thu Jul 3 10:28:11 2008
91.00% done, estimate finish Thu Jul 3 10:28:11 2008
92.98% done, estimate finish Thu Jul 3 10:28:11 2008
94.96% done, estimate finish Thu Jul 3 10:28:11 2008
96.93% done, estimate finish Thu Jul 3 10:28:11 2008
98.92% done, estimate finish Thu Jul 3 10:28:11 2008
Total translation table size: 0
Total rockridge attributes bytes: 264
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
252750 extents written (493 MB)

No indica que se ha creado una imagen de 493 MB

Antes de proceder a quemar primero necesitamos identificar el dispositivo (en este caso la quemadora) entonces escaneamos el dispositivo

# cdrecord -scanbus

Linux sg driver version: 3.5.27
Using libscg version ‘schily-0.8’.
cdrecord: Warning: using inofficial libscg transport code version (schily – Red Hat-scsi-linux-sg.c-1.83-RH ‘@(#)scsi-linux-sg.c 1.83 04/05/20 Copyright 1997 J. Schilling’).
scsibus4:
4,0,0 400) ‘HL-DT-ST’ ‘DVD-RAM GSA-H55N’ ‘1.02’ Removable CD-ROM
4,1,0 401) *
4,2,0 402) *
4,3,0 403) *
4,4,0 404) *
4,5,0 405) *
4,6,0 406) *
4,7,0 407) *

Con esto podemos notar que nuestra quemadora esta identificada en 4,0,0 400) ‘HL-DT-ST’ ‘DVD-RAM GSA-H55N’ ‘1.02’ Removable CD-ROM

Procedemos al quemamos, donde en la opción dev=xxx devemos indicar en identificador de nuestra quemadora, que en el paso anterior salio.

# cdrecord -v dev=4,0,0 speed=10 imagen_que_quiero_crear.iso

Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1114112 = 1088 KB
Drive DMA Speed: 129024 kB/s 733x CD 93x DVD
FIFO size : 4194304 = 4096 KB
Track 01: data 493 MB
Total size: 566 MB (56:10.02) = 252752 sectors
Lout start: 567 MB (56:12/02) = 252752 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 7
Is not unrestricted
Is not erasable
ATIP start of lead in: -11597 (97:27/28)
ATIP start of lead out: 359849 (79:59/74)
Disk type: Short strategy type (Phthalocyanine or similar)
Manuf. index: 20
Manufacturer: Princo Corporation
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 107097
Starting to write CD/DVD at speed 16 in real TAO mode for single session.
Last chance to quit, starting real write 0 seconds. Operation starts.
Waiting for reader process to fill input buffer … input buffer ready.
trackno=0
BURN-Free is ON.
Turning BURN-Free off
Performing OPC…
Starting new track at sector: 0
Track 01: 493 of 493 MB written (fifo 100%) [buf 93%] 16.4x.
Track 01: Total bytes read/written: 517632000/517632000 (252750 sectors).
Writing time: 224.775s
Average write speed 15.0x.
Min drive buffer fill was 90%
Fixating…
Fixating time: 18.114s
cdrecord: fifo had 8154 puts and 8154 gets.
cdrecord: fifo was 0 times empty and 8011 times full, min fill was

Esto es todo, expulsamos nuestro cd con eject y listo.

Nota: no es necesario ser root para hacer todo estos pasos.

Cómo instalar CentOS remotamente

Es posible instalar centos remotamente, siempre y cuando exista previamente en el servidor grub. No importa el linux que haya.

Supongamos el siguiente escenario:

Requisitos locales:
La laptop mía será la IP 1.2.3.4 y estará con el vncviewer instalado (paquete vnc). Ésta laptop tendrá abierto el puerto 5500 o redirigido ese puerto hacia ella (en caso de que esté detrás de un firewall). La laptop por supuesto tiene linux, CentOS.

Requisitos remotos:
Sé la IP del servidor (1.1.1.2 en el ejemplo), conozco la máscara (255.255.255.248 en caso del ejemplo), y sé de su gateway (1.1.1.1 en el ejemplo). También conozco los DNS que usa ese servidor (1.1.1.1 en el ejemplo).

Por favor, alerta! si se te daña la máquina no me intentes culpar, no es mi culpa que tu hardware se te explote, dañe, queme, destroya, vaporice o lo que sea por el amor de dios si no te funciona es tu culpa, no la mía.

Paso a paso todo:

Sistema LOCAL:

  1. instalar el paquete vnc en tu máquina local: yum install vnc
  2. ponerlo a escuchar: vncviewer –listen
  3. abrir el puerto 5500 en caso de que tengas firewall o redirigir el puerto 5500 hacia tu maquina local.

Sistema REMOTO:

  1. Entrar al servidor remoto por ssh
  2. cambiarte a /boot (cd /boot)
  3. bajar vmlinuz e initrd.img del directorio images/pxeboot (aqui por ejemplo: http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/

Si tu maquina es de 64 bits, buscar el pxeboot adecuado, si instalaras otro centos (3 o 4) buscar el pxeboot adecuado.

puedes bajarlo con: wget URLDELARCHIVO

7- verifica que en el directorio /boot esté un archivo llamado vmlinuz y otro llamado initrd.img (quizá haya otros de los kernels anteriores, eso no es de importancia para el proceso).

8- Edita tu grub.conf, la idea es que tu grub.conf arranque con el siguiente kernel:

title pxe
root (hd0,0)
kernel /vmlinuz vnc vncconnect=1.2.3.4 headless ip=1.1.1.2 netmask=255.255.255.248 gateway=1.1.1.1 dns=1.1.1.1 ksdevice=eth0 method=http://mirror.centos.org/centos/5/os/i386/ lang=en_US keymap=us
initrd /initrd.img

Como curiosidad: sí, sólo uso teclado en inglés, porque el teclado en español tiene el «/» muy difícil de alcanzar.

vncconnect es la IP de tu máquina local, hacia donde se abrirá la sesión vnc

ip, netmask, gateway y dns son las IPs de tu máquina remota, mascara, gateway y dns.

ksdevice= para indicarle que saldrá por este dispositivo (solo util si tienes más de una eth).
method= de dónde bajará las cosas (de centos directamente, centos 5 en este caso).

9-Santiguarse  y reiniciar la máquina.

Este ultimo paso es muy importante.. es importante que lo tengas claro. TIENES QUE PROBAR LOCALMENTE.

Lo que yo hago siempre, SIEMPRE, es arrancar con pxe alguna máquina de aqui de mi casa, y hacer que abra una sesión de vnc contra mi laptop.. si funciona, entonces ya sé que tengo correctamnete la línea del GRUB y que puedo copiarla al servidor remoto y solamente cambiar las claves.

Lo típico es que te confundas en la IP o algún dato del servidor remoto.

Por favor, si algo te pasa coméntalo aqui para que los otros aprendan.. por mi parte también trataré de aprender con lo que te pase.

Descargar ReactOS 0.3.7

Qué es ReactOS ?

ReactOS es un sistema operativo Libre y de Código Abierto basado en el diseño de la arquitectura de Windows NT, incluyendo soporte para los drivers y aplicaciones existentes y una alternativa al sistema operativo dominante entre usuarios domésticos y servidores.

ReactOS® es un avanzado sistema operativo gratuito de código abierto que provee una implementación creada de cero de un sistema operativo compatible con Win XP. ReactOS tiene como meta lograr compatibilidad binaria con aplicaciones y drivers de dispositivo para sistemas NT (XP, 2003) usando una arquitectura similar y proveyendo una interfaz publica completa y equivalente.

ReactOS es el modelo más completo de un sistema operativo como Win disponible libremente. Por lo tanto, los programadores podrán aprender mucho estudiando el código de ReactOS o inclusive participando en el desarrollo del mismo.

ReactOS tiene y va a continuar incorporando características de nuevas versiones y cuando sea posible definirá tecnología de punta en sistemas operativos.

En resumen, ReactOS trata de correr tus aplicaciones y tus dispositivos, un sistema operativo gratis para todos!

Todavia ReactOS 0.3.7 estáen estado alpha, lo que significa que no está completo aún y no se recomienda para uso diario.

Tipo: OS

Compresion: ninguna solo *.zip

Hospedaje: desde la pagina del servidor

peso:30mb

Descargar desde el servidor

en *.ISO de Instalacion


y en live CD

y si por si acaso quieres tener su caratula para portada a qui esta