Hack Captcha Jaws >= 0.6.0 y valiendo madres las mayusculas…..

Ups!, no se me ocurrio otro nombre para el post!.., pero esa es la idea >:-) , que cuando escriban mayusculas o minusculas en el codigo del captcha este se valide de manera correcta!.., y porque asi?…, haaa, porque a veces da un poco de flojera activar el bloque de las mayusculas o escribir con shift solo para poner texto en MAYUSCULAS!.., asi que ahora ya se puede escribir indistintamente en MAYUS o en MINUSC. (no se si me di a entender!…, pero bueno., fue una inquietud que tenia cuando empece el hack y que tambien me la expreso Marko en los comentarios del hack pasado)

Así que ahi les va lo que deben de modificar:

En el archivo include/JawsCaptcha.php hay que buscar la funcion IsValid y en la parte donde dice:

<br /> if ($guess == $captcha) {<br /> 

Se debe de reemplazar por el siguiente código:

<br /> if (strtoupper($guess) == $captcha) {<br /> 

Facil no?…., que fue lo que hicimos, haaaa!, pues utilizamos la función de PHP llamada strtoupper que se encarga de convertir el texto a mayusculas, ya que cuando se genera el codigo captcha y se guarda en la base de datos codificado con MD5, este se guarda en mayusculas B-)

Aquí les dejo la versión JawsCaptcha 0.2 para su descarga con los originales de la versión 0.1 y esta nueva, solo hay que descompactarlo en la carpeta include/

Hack Captcha Jaws >= 0.6.0

Lo prometido es deuda, así que ahi les va el manualito para ponerle algunos añadidos a nuestro captcha como:

* Uso de fuentes TTF, digo, para que se entienda el texto que es la idea principal
* Fuentes aleatorias, asi se pueden visualizar de manera diferente cada captcha
* Agregado de más colores en las lineas del fondo
* Agregado de pixeles en el fondo!, con muchos colores!..

Empecemos por lo primero!.., hacer un respaldo de los archivos a modificar, en este caso se trata del archivo include/JawsCaptcha/Image.php , en ese archivo se crea la imagen aleatoria.

Voy a empezar explicando algunas partes del código y al final les pongo ya como queda el archivo final!.., saz!.., así que manos a la obra!.., preparen su editor de textos favoritos y al ataque!..

Primero buscamos la función Build (esta aprox por la linea 29) y vamos a remplazar en donde dice imagecolorallocate por el siguiente código, se supone que esa función se encarga de crear la gama de colores especificado por los 3 ultimos parametros de esa función., el formato esta en RGB (Red, Green, Blue).

<br /> $color['white'] = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);<br /> $color['gray'] = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);<br /> $color['darkgray'] = imagecolorallocate($image, 0x50, 0x50, 0x50);<br /> $colorPixel[] = imagecolorallocate($image, 0xFF, 0xFF, 0x00); // Yellow<br /> $colorPixel[] = imagecolorallocate($image, 0xFF, 0x00, 0x00); // Red<br /> $colorPixel[] = imagecolorallocate($image, 0xC0, 0xC0, 0xC0); // Gray<br /> $colorPixel[] = imagecolorallocate($image, 0x00, 0x00, 0xFF); // Blue<br /> $colorPixel[] = imagecolorallocate($image, 0xC0, 0xFF, 0x00); // Green<br /> 

La idea básica es primero definir el arreglo color con los diferentes colores que utilizaremos en el pintado de las letras (tu puedes jugar y ponerle los colores que desees).
Despues tenemos el arreglo colorPixel , si se fijan no pongo ningun indice en el arreglo, ya que podemos luego agregar más y más colores!.., mediante la función imagecolorallocate en formato RGB recurden!., haa y en Hexadecimal, por eso tiene 0×00 hasta el 0xFF

Ahora sigue definir las fuentes TTF que utilizaremos en el captcha en este caso vamos a definir 2 tipos de letras, una llama AhnbergHand.ttf y la otra FuturaBook.ttf

<br /> $myFonts[0]['font'] = "AhnbergHand";<br /> $myFonts[0]['size'] = "14";</p>
<p>$myFonts[1]['font'] = "FuturaBook";<br /> $myFonts[1]['size'] = "18";<br /> 

Esto es facil de entender, en el primer arreglo bidimencional ponemos el nombre de la fuente, tal y como la tenemos en el servidor, sin la extención TTF y en la segunda parte el tamaño de la fuente a utilizar, lo hice así porque me di cuenta que si ponia un tamaño fijo a veces no se veia bien la letra….

Ahora vamos a remplazar la parte del creado de las lineas de fondo, en el código van a encontrar algo así //Generate a funny background.. con un for abajito.., haa pues eso lo reemplazan por:

<br /> //Generate a funny background..<br /> for ($i = 0; $i &lt; 5; $i++) {<br /> $x1 = rand(0,140);<br /> $y1 = rand(0,30);<br /> $x2 = rand(0,140);<br /> $y2 = rand(0,30);<br /> $newColor = rand(0,count($colorPixel));<br /> imageline($image, $x1, $y1, $x2, $y2 , $colorPixel[$newColor]);<br /> }<br /> 

Si observan ahi estamos usando el arreglo colorPixel definido arriba…, con esto coloramos la lineas, asi ya no aparecen de color gris como antes!… y para que sea aleatorio el color tons tenemos la función rand :-)

Y ahora sigue abajo de este for el siguiente código, este es para los pixeles de fondo!..

<br /> for ($i = 0; $i &lt; 300; $i++) {<br /> $xp = rand(0,140);<br /> $yp = rand(0,40);<br /> $newColor = rand(0,count($colorPixel)-1);<br /> imagesetpixel($image, $xp, $yp, $colorPixel[$newColor]);<br /> }<br /> 

Ahora sigue la inicialización de las fuentes TTF, entonces abajo de

<br /> //And write it in a random position..<br /> $text_length = strlen($text);<br /> 

Ponemos lo siguiente:

<br /> if (function_exists('imagettftext')){<br /> putenv('GDFONTPATH=' . JAWS_PATH . "include/JawsCaptcha");<br /> $fontsttf = true;<br /> $indexFont = rand(0,count($myFonts)-1);<br /> $showFont = $myFonts[$indexFont]['font'];<br /> $sizeFont = $myFonts[$indexFont]['size'];<br /> }else<br /> $fontsttf= false;<br /> 

La idea es primero verificar si el servidor tiene soporte para las fuentes TTF, si es negativo entonces utilizamos texto plano, tal y como esta actualmente el captcha (que por cierto no se entiende muy bien que digamos), pero si es positivo entonces inicializamos las fuentes definidas arriba en el arreglo myFonts y especificamos en donde estan posicionadas nuestras fuentes en el servidor (es lo del putenv GDFONTPATH)

Ahora sigue la parte en donde vamos a crear el texto, que es el For que esta abajo de todo esto…., antes del header, ahi remplazamos por:

<br /> for ($i = 0; $i &lt; $text_length; $i++) {<br /> if ($fontsttf){<br /> $x = $x + rand(15, 20);<br /> $y = rand(17 , 30);<br /> $angl = rand(-20,20);<br /> imagettftext($image, $sizeFont, $angl, $x, $y, $color['darkgray'], $showFont, $text{$i});<br /> }else{<br /> $fnt = rand(3,5);<br /> $x = $x + rand(12 , 20);<br /> $y = rand(7 , 12);<br /> imagestring($image, $fnt, $x, $y, $text{$i} , $color['darkgray']);<br /> }<br /> }<br /> 

Primero verificamos si esta activado el soporte para las fuentes TTF e imprimimos ya sea con soporte o sin soporte!.., y en el caso que se con soporte en la variable angl ahi especificamos cuantos grados queremos que gire el texto, por eso se tiene un random para que se vea más aleatorio todo el asunto.

Y listo!…, ya con esto tenemos un resultado más o menos como el que sigue:

Ahi se puede apreciar el resultado con las dos fuentes que les dije anteriormente!., ustedes son libres de poner las que más les agrade :-D

Aquí pueden descargar el código fuente del Hack JawsCaptcha con las 2 tipografias., solo las copian en include/JawsCaptcha/ y en teoria debe de funcionar todo :-O (esta en RAR para comprimirlo más)

[actualizado]
Aquí les dejo el hack para que funcione el Captcha Jaws con Minusculas y/o Mayusculas (alta mente recomendado :-P )

Actualización a la versión de Jaws 0.6.3

Despues de leer en el foro de Jaws un bug sobre Jaws relacionado con los privilegios del administrador del sitio he decidido actualizar mi Jaws y todos los sitios que utilizo Jaws a esta nueva versión 0.6.3

Y de pasada arregle el problema del texto feo en los captchas que a veces no se entendia ni madres…., la idea me basé del hack que realizo E-Corona llamdo Captchas II (a la e-Corona) solo que al parecer este hack es para las versiones 0.5 asi que lo tuve que modificar un poquitin para la nueva versi

Soporte técnico hasta Santiago de Compostela en España

Hoy me toco arreglar mi computadora que esta en España con mi hermana Susy, todo empezo con una llamada cuando estaba comiendo una deliciosa pizza de Dominos con Zulma (aunque algo ojetes los de la pizzeria…..) en donde mi mama me decia que susy tenia problemas con la computadora que me hiba a hablar a las 4:30 PM para checar el problema y a ver si le ayudaba.

Y efectivamente, voy corriendo…, bueno en carro a la casa, aunque primero una deliciosa nieve , digo ya que hace un calor de la fregada aqui en Colima., espere un rato y vi que no me marcaba mi hermana asi que le tuve que hablar por medio del Yahoo Messenger, y ya me conto que le habia marcado un error del isass.exe (o Lisass???) que no la debaja entrar al wintendo XP. y me decia que solo a Linux si podia entrar.., que si hiban a borrar sus fotos , le dije que nopo!…, que no se borraria nada., asi que si el windows no te deja entrar, pues hay que calarle en modo a prueba de fallos (esta deberia ser la opcion predefinida jajaja) y le explique que tiene que presionar F8 rapido rapido rapido!…., y despues de varios intentos, por fin entro.

Ahora le tuve que dar un curso intensivo avanzado via telefonica VoIP del uso del Regedit y del MSConfig asi que despues de desabilitar algunos programas “extraños” y en la siguiente iniciada!…., saaaaz!.., todo funciono a la perfeccion!… ;-D

Lo mas curioso de esto es que Susy me dijo que pusiera mi negocio de soporte tecnico via telefonica, ya que le explique muy detalladamente los pasos a seguir jeje…, la verdad prefiero que la gente aprenda un poco mas de Linux en lugar de windows, pero bueno!, para que soñar mucho, ya que la mayoria de la gente utiliza el wintendo.

Haaaaa.., para aquellos que usan windows, y no conocen el navegador web Firefox!, la verdad se los recomienda un conocedor en estos menesteres de las chompus!. asi nos evitan que les estemos repare y repare su compu y ustedes se ahorran una lana $$$ jejeje.. :-P

Spam en el sistema de Bugs en Jaws

Solo eso faltaba tener SPAM en el sistema de bugs de Jaws!.. la verdad que esos spamers no perdonan nada!…, es más cuando quito lo de captcha de mi página en menos de 1 hora ya tengo mensajes con caracteres japoneces o una buena lista de medicinas extrañas! (supongo que ilegales) y yo se que a veces chafea el anti-spam que tengo aunque ya entendi que son caracteres en MAYUSCULAS y asi hay que ponerlos tal y como estan!.

Aquí les dejo un screenshot del mensaje que me llego a mi mail.

[phoo album=”14″ picture=”419″ title=”spam_jawsbugs” class=”imagen” size=”2″ border=”0″ align=””]

Ustedes como le hacen para no tener SPAM en los comentarios/chatbox de sus páginas?.., usan el anti-spam o se encomiendan a algun santo?. :-P

Incompatibilidades del IE con Javacript

Para variar el Internet Explorer (aka, Internet Exploder) no tiene buen soporte para Javascript, porque lo digo!, facil, traten de aplicar a X widget (jeje, ya se me esta pegando esto del Piwi de Jaws) un atributo con setAttribute en especial el onclick que es el que ando utilizando para un proyecto de un sistema de recordatorio de medicamentos en francia

La cosa esta así, uso Jaws con JSpan para todo lo de Ajax y Javascript que a su vez usan prototype para eso de la sintaxis:

Codigo que chafea en el IE.

<br /> $('delete_button').setAttribute('onclick','newBene();');<br /> 

Aqui la cosa esta que el Internet Exploder NUNCA reconoce el atributo onclick!…, despues de investigar un poco doy con una página en Frances (jeje, que casualidad que esta en frances.., ya parace que poco a poco voy aprendiendo el idioma) que indica la solucion a nuestros problemas.

<br /> $('delete_button').onclick = function(){ newBene(); };<br /> 

Cual es la diferencia???…, pues que ya no usamos setAttribute sino que especificamos como un atributo de la funcion delete_button (tiene esa sintaxis rara tipo PHP gracias a prototype) y despues lo igualamos a nuestra funcion, que en este caso es newBene() y listo!…

Ahora tengo otro problema que no puedo crear controles input ni hidden ni cualquier otro tipo en IE con Javascript y recibirlos mediante PHP (me imagino que en ASP tambien seria algun error) por eso digo y sigo insistiendo que el Internet Explorer apestaaa!…, y aunque me digan que es lo que usa la gente!., espero en un futuro no muy lejano que ya no sea el navegador predeterminado de las computadoras!. en verdad se los dice un programador web que vive dia a dia con estos problemas de incompatibilidad con explorer!.. porfas!…, INSTALEN FIREFOX u otro navegador descente en las compus de sus amigos, trabajo, casa, escuela!…

Los beatles no han muerto!.., andaban de parranda

Para la gente que piensa que los beatles desaparecieron estan en un grave error!…, aquí les presento la foto insolita del grupo de rock “Los Mexican Beatles”



Seguro los recordaran en aventuras de un desfile navideño, o excursión al nevado de Colima…, y si no se los presento de nuex, de izquierda a derecha y de arriba hacia abajo: José Oviedo, Mario Benavides, Carlos Banda y Hugo Ballesteros..

”La idea original y diseño de todo esto es cosa de Banda!. (abajo a la izquierda)”