Clon de LOIC en python

Cierto anónimo_sugirió_hacer_un_clon_de_LOIC_en_python, aquí está un posible código, dividido en 5 archivos, no tiene interfaz gráfica, pero implementa el flooder de los 3 protocolos de LOIC.

Actualización2: eliminado de github en un impulso, queda en el de Mephiston

(Los argumentos son)

Uso: ./pyloic.py {http | tcp | udp} -h [-p ] [-t ] [-m Message] [-k]

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

http, tcp o udp: El protocolo escogido. -h : La dirección (IP o hostname). -p : El puerto al que se dirigirán las conexiones (por defecto el 80). -t : Número de hilos que se ejecutan a la vez (por defecto 10). -m Message: El mensaje que se enviará. -k: En TCP y HTTP no espera a que el otro lado de la conexión la cierre, en UDP detiene el script si el puerto no es accesible.

Probando el Go de Google

Pues leyendo la linux_magazine de este mes (donde me también di por primera vez con scratch) me encontré con un articulo sobre el lenguaje Go_de_Google y me entraron ganas de probarlo, la experiencia es bastante curiosa.

En cuanto a la instalación, usar el binario del proyecto no es especialmente difícil para lo que podría ser, lo bajas del repo, y lanzas un script que lo compila, aquí_están_las_instrucciones. Pero si piensas usar el frontend_de gcc (no veo para que) te auguro un par de dolores de cabeza...

Con este lenguaje de programación, el obligado "hola mundo" quedaría así:

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

package main

import "fmt"

func main(){     fmt.Println("Hola, mundo!") }

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

Antes ejecutarlo hay que compilarlo y enlazarlo (para 386, 8g ; 8l ).

Probando scratch

"Scratch es un lenguaje de programación que hace fácil crear tus
propias historias interactivas, animaciones, juegos, musica y arte -
- y compartir tus creaciones en la red.
Cuando la gente joven crea y comparte proyectos de Scratch, aprenden
importantes ideas sobre las matemáticas y la computación, mientras
aprenden también a pensar de forma creativa, razonar
systematicamente y trabajar colaborativamente."

Eso es lo que dicen de este proyecto en_su_web, solo cabría añadir que fue desarrollado en el MIT y que el código está basado en "bloques" de instrucciones, no en texto, haciendolo muy visual y evitando errores sintácticos.

Un autómata celular para generar números pseudo-aleatorios

La idea no es la primera vez que se oye, creo que fue_Wolfram_quién_lo_propuso en_su_momento, pero el concepto no deja de ser curioso, y el otro día trasteando con Golly me encontre con que una pequeña variante del juego_de_la vida_de_Conway, con la diferencia de que una "célula" también puede "nacer" si tiene 4 vecinos (y no solo 3) llamado "3-4 life", que hace que patrones sencillos crezcan indefinidamente quedando el contenido en su interior algo aleatorio, esta es una simulación de las 250 primeras generaciones [http:// videobin.org/+2be/2ly.html].

Lo que intenta hacer el código es expandir la figura inicial estas 250 generaciones e introducir una "semilla de aleatoriedad", que puede ser un string cualquiera o se puede leer de un archivo, lo que hará que la figura crezca de forma distinta cada vez. Se deja además 1000 generaciones para que esta semilla se mezcle bien, y el resultado se utiliza para generar números pseudo-aleatorios, que no creo que sean criptográficamente.

SniperlCat 0.3, suma y sigue

Pues nada, nueva versión de sniperlcat, los cambios son: - Los avisos los hace un script a parte, eliminando GTK de las dependencias y haciendo que no haya que trastear en el código para que haga algo distinto con los avisos. - Corregido al bug que lo volvia paranoico al cerrar el dispositivo...al final solo había que reabrirlo =) - Añadida la opción de poner a la escucha un puerto cualquiera para detectar los scanners que se conectan a el, si se utiliza varias veces se escuchan varios puertos (cada uno en un hilo distinto).

La opción de escuchar puertos se añadió por la necesidad de detectar scanners de conexión, (y de evitar tener que ser root para detectar los escaneos), que además se pueda elegir el mensaje que envía es para hacerse pasar por un servicio legítimo, por ejemplo, "SSH-2.0-OpenSSH_5.3p1 Debian- 3ubuntu4" hace que amap lo marque como un servidor openssh =D

Invertir los canales de sonido

Otro script más que engrosa las listas de lo programado solo por programar [http://pastebin.com/FzQmDxKP].

Recibe como parámetros el archivo original y el nombre del que se creará y copia el sonido del primero en el segundo cambiando el canal de la derecha por el de la izquierda y viceversa.

Meh... pues si que quedo pequeño el post =P.

Como generar una onda de Audio para archivos WAV (PCM)

Como en su momento no encontré nada sobre este tema, aquí va una pequeña explicación de como generar audio modulado en PCM, lo que usa por ejemplo, el formato WAV.

Partiremos de algunos conceptos básicos que supongo que conoceréis:

Sobre las ondas de sonido:

* Frecuencia de la onda: veces en un segundo que la onda se repite (o que
pasa por el valor intermedio).

* Amplitud de la onda: en este caso, la distancia entre el punto más alto
y el más bajo, determinará el volumen.
*

Sobre su representación en el archivo:

* Framerate: número de veces por segundo que se representa la onda (a más
framerate, más cercano es a la onda original y mejor calidad).

* Canales: número de salidas del audio (1: Mono, 2: Stereo).
*
* Ancho de canal: bits que se dedican a cada frame de cada canal (suele ser
de 16 bits).
*

[Offtopic] Thunderbird te avisa si te olvidas de adjuntar algo

Parece que thunderbird añadió la característica de avisar al usuario de que falta algo por adjuntar si observa algo en el mensaje que indica que se debería haber hecho (algo como nombrar un tipo de archivo común)

[http://1.bp.blogspot.com/_26RJWnubh-w/TMboUfMRFrI/AAAAAAAAARk/YaUd_xhHL0o/ s320/thunder.png]                [Recordatorio de Adjunto] ¿Te olvidaste de añadir un adjunto? [X ¡Oh, me olvide!] [✓ No, enviar ahora]

Btw, si a alguién le falla el programa para capturar la pantalla puede probar con: =============================================================================== sleep 1;import -frame salida.png ===============================================================================

Mostrar el voltaje actual de la batería en gambas

Con el tiempo el hardware deja de funcionar todo lo bien que deberia, esto se nota sobretodo (al menos eso creo) con los portátiles, que al parecer tienen una marcada tendencia a fallar en la batería y en el cargador, piezas que se supongo que resienten especialmente en un uso prolongado.

La última "manifestación" que vi de estos problemas es de vez en cuando la potencia de la corriente que viene del adaptador AC cae por debajo de cierto valor, lo que hace que poco a poco la batería se vaya descargando(¿?). Esto hace que haya que comprobar frecuentemente el voltaje de carga para poder tomar precauciones antes de que se quede sin energía, una forma fácil de hacerlo es con una sencilla línea de bash

=============================================================================== while [ 1 ];do cat /proc/acpi/battery/####/state;sleep 1;done ===============================================================================

Improvisando un cifrado de flujo/generador de números aleatorios

A veces hay que hacer un pequeño sistema de cifrado para la ocasión que no tiene porque ser criptográficamente seguro, una chapuzilla vamos, veremos como improvisar uno.

La idea de un cifrado de flujo es hacer un generador de números pseudo- aleatorios, que funcione en base a una semilla (la contraseña), y utilizar los números generados para cifrar/descifrar el mensaje, en este caso utilizaremos la operación XOR con cada byte generado y cada byte del mensaje, lo que se llama un cifrado_Vernam, de una forma similar a como hace ARC4

Una vez decidido esto, ya podemos comenzar con el código class sample_cipher:

def cipherStream(self, stream):

   s = ""  # Se parte de un flujo vacio

   for i in stream:  # A cada byte del flujo original

       s += chr(ord(i) ^ self.nextByte())  # Se le hace XOR con el

aleatorio generado

       # Y se anhade al flujo cifrado

   return s  # El flujo cifrado se devuelve

def nextByte(self):

Newer posts Older posts