[HACK] [Fwd: [admins] Nota de prensa IRC-Hispano]

Krom krom at navarhack.org
Wed Mar 28 23:22:29 CEST 2001


muy buenas.

Si hay algo que me apasiona ultimamente y me quita más horas de sueño es el scripting, asi q ya que no suelo escribir mucho aqui
aprovecho la ocasión y hago un pkño estudio del famoso bug =)
En concreto me he fijado en el x-cript 5

el tema es este: tanto al hacer un whois como al enviar un mensaje privado (un query) a un nick marcado como away, el servidor nos
devuelve un mensaje raw 301 con el texto del away. Si este mensaje no es capturado por un script, mIRC lo mostrará en el status
(hasta aquí no problemo)
Para ser capturado por un script se debe escribir un script remoto de esta forma: (pulsar CONTROL + R para ver los remotes)

raw 301:*: .timer 1 1 echo -es 12Away (6 $+ $2 $+ 2) 4 :2 (14 $3- 2) | halt

En este caso le estamos diciendo a mIRC que al llegar un mensaje raw tipo 301, con cualquier texto (*) espere un segundo y ejecute
una acción (timer 1 1) que será mostrar en status (echo -es) un mensaje coloreado que incluye el nick ($2) y el motivo ($3-). Al
final de todo también le obliga a paralizar
el evento (halt) para que no aparezca el texto predeterminado en status. Ojo al dato: los comandos se delimitan mediante pipes
(carácter | )
Lo que nadie había pensado es  que el timer evalúa los pipes y por lo tanto ejecuta cada comando por separado, en lugar de tomar
todo el texto como parámetro del primer comando. Así un /timer 1 1 echo -s hola | echo -s adios , mostrará primero "hola" y luego
"adios", en lugar de mostrar "hola | echo -s adios", como hubiera preferido alguno =)

A partir de aqui tenemos multitud de posibilidades, desde las clásicas bromas de enviar texto a canales o cerrar el mIRC, hasta
escribir un script troyano a disco y cargarlo (lo juro xD), pero no describiré los métodos pq no se me ocurre ninguna forma honesta
de utilizarlo =)
Lo que me trae un poco de cabeza es si se podría cancelar el echo para que no se vea el away. La unica forma seria ponerle un $$1 al
echo, pero entonces tampoco se ejecutarán el resto de comandos. Alguna idea?

Aún no he mirado el resto de scripts. Sospecho que se trata del mismo problema del timer pero en otros puntos del código. Hay muchos
sitios en donde se usan para controlar la fluidez del texto que se muestra al usuario, o para evitar floods, por ejemplo.

A2!

{Krom}
krom at navarhack.org
http://www.navarhack.org




More information about the hacking mailing list