Instalando Granola en Trisquel

Actualización: desde que se escribió esto, cambairon algunas cosas (granola ahora usa licencias comerciales para "orgaizaciones" y cosas así, con lo que desconozco si se puede seguir considerando libre, que no gratuito )

Un bot IRC

Aprovechando el PyIC escribí un bot que se une a un canal y responde a los típicos mensajes de "@loquesea" y "!loquesea", que están definidos en una base de datos SQLite3, la idea es algo así: Se crea un archivo SQLite3 (por defecto el nombre es "dbase.db", si quieres puedes cambiarlo en la línea 12) con 2 tablas, "talks" y "commands". La tabla "talks" tendría como mínimo 2 columnas, la primera es la palabra a la que responde, y la segunda, con lo que responde, por ejemplo, si la base de datos tiene esta fila:

=============================================================================== busca | http://www.lmgtfy.com/?q= ===============================================================================

El chat sería algo así

=============================================================================== : @busca loquesea < bot >: humano: http://www.lmgtfy.com/?q=loquesea ===============================================================================

IRC con Python (PyIC)

Si quieres programar algo que use IRC en Python puedes hacerlo tu mismo con sockets, puedes usar una librería y programarlo_por_eventos_con_pyirclib , PyIRC ...

A la hora de ver este tema, buscaba algo que se encargase de las cosas que no son interesantes del IRC (PING-PONG's, parseado de mensajes) y que no sea orientado a eventos, pero que siguiese permitiendo hacer cosas "poco comunes", como hacer que un archivo que se nos ofreció por esta red lo descargue directamente un servidor FTP (para eso hace falta algo mas, que la librería que trae python no lo permite), pero...

A falta de algo ya escrito, se programa, y eso es lo que traigo, otra librería de IRC más [ pyic.zip ]

El nombre... PyIRC ya estaba cogido xD, asi que supongo que valdrá PyIC (Python IRC Client)

Descargando una lista de webproxys

No ando con mucho tiempo para programar, asi que se me ocurrio hacer un pequeño script en python aprovechando el pycrawler para que descargue una lista de webproxies, el codigo no es gran cosa, pero funciona :)

Nota: la lista se descarga de proxy.org

Este es el codigo (o para descargar [proxylist.py])

!/usr/bin/env python

import pycrawler import sys if (len(sys.argv) > 1):     f = open(sys.argv[1],'w') else:     f = open(raw_input('Se guardara en: '),'w')

print "Descargando lista de proxy's..." c = pycrawler.crawler() site = c.crawlsite('proxy.org')

Se buscan los proxys en la pagina

for e in site.element_list:     if (e.tag_type == "option") and ('value' in e.property):         if ("." in e.property['value']):             print "->",e.property['value']             f.write(e.property['value']+"\n")

f.close()

===============================================================================

Hasta otra

pyCrawler 0.2

Pues hay actualizacion del pyCrawler, los cambios son bastante significativos... y lo que es mas importante, ahora hace algo util! :D

El motivo fue que ultimamente aprovechaba el codigo del primer_pyCrawler para los scripts que usasen la web, pero no es que sea un codigo muy pythonico (de hecho es bastante malo y tiene algunos bugs), asi que aproveche para reescribirlo desde cero... no le doy mas vueltas:

  • Pasa de ser un script a ser mas bien una libreria
  • Pasa de administrar las conexiones a mano (con sockets) a hacerlo con urllib, que es estandar, y lo hace mucho mejor
  • Se limpio el codigo para hacerlo mas comprensible

Se puede descargar aqui [pycrawler.zip]

El uso es bastante sencillo (o eso se intento), solo hay que importarlo

from pycrawler import *

y crear un objeto (solo es necesario uno), el unico argumento (opcional) es el de proxies, si no se especifica se usara el del sistema, la forma de definirlo es como los de urllib (que es la libreria que se ocupa de esa parte)

c = crawler()

Trasteando con Gambas

Ando trasteando con Gambas, que (a parte del marisco) como sabreis es un IDE/ compilador/lenguaje para programacion "visual" bajo GNU/linux, y que al parecer es bastante similar a Basic, y su nombre ya avisa de que "Gambas Almost Means Basic" (Gambas casi significa Basic)

Asi que para probar, monte un programilla que mostrara las temperaturas del pc [http://1.bp.blogspot.com/_26RJWnubh-w/TBa0bEdgr2I/AAAAAAAAAGM/DorL90LAL8c/ s320/Pantallazo-1.png]

El programilla no tiene mucha cosa (solo lee en /proc/acpi/thermal_zone/*/ temperature), asi que no me liare con eso... De la prueba saque algunas conclusiones sobre Gambas: * Es sencillo si el objetivo es hacer un programa que se base mucho en la interfaz grafica * Sino, sigue siendo sencillo, pero el codigo no me parece tan limpio como podria ser con otros lenguajes (como Python o C) * La documentacion es poca, o eso, o simplemente no supe buscarla... el

Fortunes con javascript y perl

¿Quien no conoce las miticas frases que suelen salir cuando se hace login en un sistema? (al menos en Slackware), tambien conocidas como Galletas de la suerte, fortunes, o algo asi...

¿Seria curioso poder usarlas tambien en una pagina web y que cada vez que carge la pagina salga una diferente, no?, pues no es demasiado dificil. Si las instalaste " sudo apt-get install fortune " puedes encontrar varias en /usr/ share/games/fortunes/ , el formato que siguen es bastante sencillo, es texto plano, separando una "galleta" de otra con una linea con solo un %, seria algo asi:

Frase nº 1 % Frase nº 2 % Frase nº 3 ...

Siendo tan sencillo el formato, se pueden aprovechar facilmente los archivos para cualquier cosa, por ejemplo (o para descargar [fort2js.pl] ):

===============================================================================

!/usr/bin/env perl

if ($#ARGV != 1){ # Se comprueba que se especificaron los dos archivos     print "./fort2js.pl \n";     exit(0); }

Introduccion a la criptografia, con Python: ElGamal (V -1 )

Y vamos por la quinta parte de Introduccion a la criptografia, se dividira en dos porque ya que hablamos de cifrado asimetrico vale la pena ver un cifrado/ descifrado y un algoritmo de firma/comprobacion, el problema es que si bien ElGamal cumple perfectamente su parte en lo primero, no tiene un esquema de firmado con el que comparta la generacion de claves (tambien hay un algoritmo de firma ElGamal, pero no es el mismo, y ademas no se considera del todo seguro), asi que ademas veremos un esquema de solo firma ( DSA ) en la segunda parte. Sin mas espera...

¿Que es ElGamal?

Probando shellcodes

Pues hoy vengo con poca cosa, andaba escribiendo algo para pasar el rato... un programilla para probar shellcodes ¿porque no?

Y este es el resultado [ shellcode_tester.c ] o al final coloreado con Pygments

La compilacion es simple, solo hay que hacer gcc shellcode_tester.c -o shellcode_tester

Las opciones al lanzarlo son: ./shellcode_tester [-nv] [-nw] [-nr] [-f ] -nv: No verbose (no se imprimira nada por pantalla)[--no-verbose] -nw: No write (no se permitira escribir en la memoria del shellcode)[--no- write] -nr: No read (no se permitira leer la memoria del shellcode)[--no-read] -f: Introduce el shellcode a traves de un archivo

Mas o menos, usarlo seria algo asi: kenkeiras@viaxante:~/%%%%%$ ./shellcode_tester Shellcode Tester

Introduce el shellcode: \x31\xdb\x8d\x43\x17\xcd\x80\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80\x31\xc0\x40\xcd\x80

Introduccion a la criptografia, con Python: AES (IV)

Cuarte parte de la serie... uffff, esto debía haberse posteado hace un mes xD

¿Qué es AES? Advanced Encryption Standard (AES), también conocido como Rijndael (pronunciado "Rain Doll" en inglés), es un esquema de cifrado_por bloques adoptado como un estándar de cifrado por el gobierno_de_los Estados_Unidos. Se espera que sea usado en el mundo entero y analizado exhaustivamente, como fue el caso de su predecesor, el Data Encryption_Standard (DES). El AES fue anunciado por el Instituto Nacional_de_Estándares_y_Tecnología (NIST) como FIPS PUB 197 de los Estados Unidos (FIPS 197) el 26_de_noviembre de 2001 después de un proceso de estandarización que duró 5 años (véase proceso_de Advanced_Encryption_Standard para más detalles). Se transformó en un estándar efectivo el 26_de_mayo de 2002. Desde 2006, el AES es uno de los algoritmos más populares usados en criptografía simétrica. [ http://es.wikipedia.org/wiki/
Newer posts Older posts