diff options
Diffstat (limited to '.graveyard')
60 files changed, 2306 insertions, 0 deletions
diff --git a/.graveyard/autowifi/autowifi b/.graveyard/autowifi/autowifi new file mode 100755 index 00000000..5bdbde22 --- /dev/null +++ b/.graveyard/autowifi/autowifi @@ -0,0 +1,212 @@ +#!/bin/sh -x + +confdir=${confdir:-"$(dirname $0)/confdir"} +interface="wlan0" + +exists() { type "$1" >/dev/null 2>/dev/null; } + +start_wpa_supplicant(){ + killall wpa_supplicant + sleep 1 +cat>wpa.conf<<EOF +ctrl_interface=/var/run/wpa_supplicant +EOF + wpa_supplicant -i wlan0 -c wpa.conf -B + sleep 4 +} + +connect(){ + #mac ssid encryption key + wpa_cli reconfigure + + #INTERFACE PRE CONNECT HOOKS + for hook in $(find $confdir/hooks/$interface/pre -type f | sort -u); do + $hook $@ + done + + #PROFILE PRE CONNECT HOOKS + for hook in $(find "$confdir/hooks/$2/pre" -type f | sort -u); do + $hook $@ + done + + int=$(wpa_cli add_network | tail -1) + wpa_cli set_network $int ssid \"$2\" + wpa_cli set_network $int bssid $1 + #wpa_cli set_network $int ap_scan 1 + if [ "$3" = "[ESS]" ]; then + wpa_cli set_network $int key_mgmt NONE + else + wpa_cli set_network $int key_mgmt WPA-PSK + wpa_cli set_network $int psk \"$4\" + fi + wpa_cli enable_network $int + + if exists dhcpcd; then + dhcpcd -x $interface + dhcpcd -w -A $interface + elif exists dhclient; then + dhclient $interface + fi + + if check_gateway && check_internet; then + echo yay internet + #INTERFACE POST CONNECT HOOKS + for hook in $(find $confdir/hooks/$interface/post -type f | sort -u); do + $hook $@ + done + + #PROFILE POST CONNECT HOOKS + for hook in $(find "$confdir/hooks/$2/post" -type f | sort -u); do + $hook $@ + done + + + bandw=$(check_bandwidth) + (cat $confdir/wifi_stats | grep -v "|$1|" ; echo "$2|$1|$bandw|$4" ) | sort | uniq > $confdir/wifi_stats2 + mv $confdir/wifi_stats2 $confdir/wifi_stats + return 0 + fi + return 1 + +} +print_iwlist_env(){ + # takes environment: + # MAC + # FREQ + # QUALITY + # ENCRYPTION + # ESSID + for i in MAC FREQ QUALITY ENCRYPTION ESSID;do + eval echo ${i}_${count}=\\\"\$"${i}"\\\" + done +} + +iwlist_scan(){ + # usage: iwlist_scan $wifi-itf + + count=0 + wpa_cli scan >/dev/null + sleep 10 + + wpa_cli scan_results 2>/dev/null | grep -E "^??:" | sed 's/ / /g' | (while IFS=' ' read MAC FREQ QUALITY ENCRYPTION ESSID + do + : $((count+=1)) + print_iwlist_env + + done; echo WIFI_COUNT=$count) +} + +find_count_of_ssid(){ + c=0 + for i in `seq 1 $WIFI_COUNT`; do + eval SSID=\${ESSID_${i}} + if [ "$SSID" = $1 ]; then + c+=1 + echo $i + fi + done + if [ $c -eq 0 ];then + exit 1 + fi + exit 0 +} + +find_unscanned_networks(){ + for i in `seq 1 $WIFI_COUNT`; do + eval SSID=\${ESSID_${i}} + eval MAC=\${MAC_${i}} + cat $confdir/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do + if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then + continue + fi + done; echo $i) + done + exit 0 +} + +connect_to_network_by_ssid(){ + find_count_of_ssid "$1" | (while read i + do + loop_over_cracks $i + done;exit 1) + if [ $? -eq 0 ]; then + exit 0 + fi + echo "no network found :(" + exit 1 +} + +connect_with_pw(){ + find_count_of_ssid "$1" | (while read i + do + KEY="$2" + eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\" + if [ $? -eq 0 ]; then + exit 0 + fi + done;exit 1) +} + +loop_over_networks(){ + for i in `seq 1 $WIFI_COUNT`; do + loop_over_cracks $i + if [ $? -eq 0 ]; then + exit 0 + fi + done +} + +loop_over_cracks(){ + i=$1 + KEY='' + for crack in $(find $confdir/cracks -type f | sort -u); do + KEY="$(eval root=$confdir \$crack \"\${ESSID_${i}}\" \"\${MAC_${i}}\" \${FREQ_${i}} \${ENCRYPTION_${i}})" + if [ $? -eq 0 ]; then + eval connect \"\${MAC_${i}}\" \"\${ESSID_${i}}\" \${ENCRYPTION_${i}} \"\${KEY}\" + if [ $? -eq 0 ]; then + return 0 + fi + fi + done + return 1 +} + +scan_all(){ + for i in `seq 1 $WIFI_COUNT`; do + loop_over_cracks $i + done +} + +scan_unscanned(){ + find_unscanned_networks | (while read i + do + loop_over_cracks $i + done) +} + + +check_gateway(){ + echo ping -c 1 -w 5 $(ip route | grep $interface | awk '/default/{print $3}') +} + +check_internet(){ + ping -c 1 -w 5 8.8.8.8 +} + +check_bandwidth(){ + echo $(printf "%.16d\n" $(curl ftp://ftp.microsoft.com/Products/mspress/library/ANIMAT.ZIP -w "%{speed_download}" -o /dev/null 2>/dev/null | sed 's/\..*//')) +} + +start_wpa_supplicant +iwlist_scan > /tmp/$interface.scan +. /tmp/$interface.scan +if [ -n "$2" ]; then + echo connecting to $1 with pw $2 + connect_with_pw "$1" "$2" +elif [ -n "$1" ]; then + echo connecting to $1 + connect_to_network_by_ssid "$1" +else + echo looping network now + loop_over_networks +fi diff --git a/.graveyard/autowifi/confdir/blacklist b/.graveyard/autowifi/confdir/blacklist new file mode 100644 index 00000000..f0e5c6a1 --- /dev/null +++ b/.graveyard/autowifi/confdir/blacklist @@ -0,0 +1,2 @@ +02:25:9c:41:c6:89 +02:25:9c:41:c4:cc diff --git a/.graveyard/autowifi/confdir/cracks/00profile b/.graveyard/autowifi/confdir/cracks/00profile new file mode 100755 index 00000000..c2ad6ec7 --- /dev/null +++ b/.graveyard/autowifi/confdir/cracks/00profile @@ -0,0 +1,11 @@ +#!/bin/sh -x +#ESSID MAC CHANNEL ENCRYPTION WPA WPA2 +# ENV: +# root (default: /) +root=${root:-/} +cat $root/wifi_stats 2>/dev/null | (while IFS='|' read SSID MAC BANDW KEY; do + if [ "$1" = "$SSID" -a "$2" = "$MAC" ]; then + echo $KEY + exit 0 + fi +done; exit 1) diff --git a/.graveyard/autowifi/confdir/cracks/01open b/.graveyard/autowifi/confdir/cracks/01open new file mode 100755 index 00000000..7bd98e20 --- /dev/null +++ b/.graveyard/autowifi/confdir/cracks/01open @@ -0,0 +1,6 @@ +#!/bin/sh -x +#ESSID MAC CHANNEL ENCRYPTION WPA WPA2 +if [ "$4" = "[ESS]" ]; then + exit 0 +fi +exit 1 diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up new file mode 100755 index 00000000..3fd786e4 --- /dev/null +++ b/.graveyard/autowifi/confdir/hooks/wlan0/post/00tinc-up @@ -0,0 +1,2 @@ +#!/bin/sh +tincd -n retiolum -kALRM diff --git a/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac new file mode 100755 index 00000000..c3e0632f --- /dev/null +++ b/.graveyard/autowifi/confdir/hooks/wlan0/pre/00changemac @@ -0,0 +1,5 @@ +#!/bin/sh +ifconfig wlan0 down +sleep 1 +macchanger -r wlan0 +ifconfig wlan0 up diff --git a/.graveyard/cholerab-live/README b/.graveyard/cholerab-live/README new file mode 100644 index 00000000..b778b98c --- /dev/null +++ b/.graveyard/cholerab-live/README @@ -0,0 +1,6 @@ + +view.py: contains view classes for cholerab +cholerab.py: main file + +start with : +python cholerab.py diff --git a/.graveyard/cholerab-live/chol_net.py b/.graveyard/cholerab-live/chol_net.py new file mode 100644 index 00000000..ee0f5378 --- /dev/null +++ b/.graveyard/cholerab-live/chol_net.py @@ -0,0 +1,82 @@ +from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP +import struct +import threading +import logging +log = None +from select import select +GROUP = '224.110.42.23' +PORT = 42023 +log = logging.getLogger('CholerabNet') +class CholerabMulicastNet(threading.Thread): + def __init__(self,cholerab,group=GROUP,port=PORT): + threading.Thread.__init__(self) + self.cholerab=cholerab + self.group=group + self.port=port + self.initSocket() + def send_char(self,x,y,char): + """ translates given params into network message """ + self.send_mc("%s %d %d" %(str(ord(char)),x,y)) + def send_mc(self,arg): + """ Sends message via multicast""" + try: + log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port)) + self.ignore_next += 1# we need this to work together correctly with reused sockets + self.s.sendto("%s" % arg,0,(self.group,self.port)) + except Exception ,e: + self.ignore_next -=1 + log.error("IN send_mc:%s"%str(e)) + + def initSocket (self,rcv=1): + ''' Initializes a Multicast socket ''' + host = '' + log.debug("Setting up Multicast Socket") + self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP) + self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) + self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32) + self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed + if rcv==1: + log.debug("Configuring for Read AND Write") + self.s.bind((host,PORT)) + mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY) + self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq) + def run(self): + self.running = 1 + self.ignore_next = 0 + while self.running: + # break if we do not want to loop on + ready,output,exception = select([self.s],[],[],1) # try every second + for r in ready: + if r == self.s: + log.debug(str(self.ignore_next)) + (data,addr) = self.s.recvfrom(1024) + if not self.ignore_next: + log.debug("Received Data from %s, data %s"%(str(addr),str(data))) + self.receive_net(addr,data) + else: + self.ignore_next -= 1 + + def send_stupid(self,addr): + """ sends YOU ARE MADE OF STUPID to the right host """ + #TODO implement me + pass + + def receive_net(self,addr,data): + """ resolves which nick sent the message + TODO handle user resolution in mulicast """ + try: + address,port = addr + arr = str(data).split() + char = arr[0] + x = arr[1] + y = arr[2] + self.cholerab.write_char(int(x),int(y),chr(int(char))) + except Exception, e: + log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e)) + self.send_stupid(addr) + + def stop(self): + ''' + stops the whole treading stuff gracefully + ''' + self.running=0 diff --git a/.graveyard/cholerab-live/chol_net.pyc b/.graveyard/cholerab-live/chol_net.pyc Binary files differnew file mode 100644 index 00000000..0694ad6d --- /dev/null +++ b/.graveyard/cholerab-live/chol_net.pyc diff --git a/.graveyard/cholerab-live/cholerab.py b/.graveyard/cholerab-live/cholerab.py new file mode 100755 index 00000000..eb9e66df --- /dev/null +++ b/.graveyard/cholerab-live/cholerab.py @@ -0,0 +1,36 @@ +#!/usr/bin/python2 +# -*- coding: utf-8 -*- +import curses,time +from view import CursesView +from chol_net import CholerabMulicastNet +import logging +logging.basicConfig(filename='here.log',level=logging.DEBUG) +log = logging.getLogger('main') +class Cholerab: + def __init__(self): + self.view = CursesView(cholerab=self) + self.transport = CholerabMulicastNet(cholerab=self) + def send_char(self,x,y,char): + log.info("Sending %s at (%d,%d) to connected peers" %(char,x,y)) + self.transport.send_char(x,y,char) + + def write_char(self,x,y,char): + log.info("Writing %s at (%d,%d) to view" %(char,x,y)) + self.view.write_char(x,y,char,user=2) + def stop(self): + self.view.stop() + self.transport.stop() + def main(self): + self.view.start() + self.transport.start() + self.view.join() + #after view dies, kill the transport as well + self.transport.stop() + self.transport.join() +def main(): + log.debug('started main') + chol = Cholerab() + chol.main() + +if __name__ == "__main__": + main() diff --git a/.graveyard/cholerab-live/live.sh b/.graveyard/cholerab-live/live.sh new file mode 100755 index 00000000..62a2c3cf --- /dev/null +++ b/.graveyard/cholerab-live/live.sh @@ -0,0 +1,88 @@ +#! /bin/sh +set -euf +stty cbreak -echo + +go() { + state=$1 + wr 7 + wr "[1;70H " >&2 + wr "[1;70Hstate=$state" >&2 + wr 8 + $1 +} + +rd() { + dd bs=1 count=1 2>/dev/null +} + +bufrd() { + buf="`rd`" + bufinfowr +} + +bufrda() { + buf="$buf`rd`" + bufinfowr +} + +bufinfowr() { + wr 7 + wr "[2;70H " >&2 + wr "[3;70H " >&2 + case "$buf" in + () wr '[2;70H[35m^[[m' >&2;; + (*) wr "[2;70H$buf" >&2;; + esac + wr "[3;70H`wr "$buf" | xxd -p`" >&2 + wr 8 +} + +wr() { + echo -n "$1" +} + +C0="`echo C0 | xxd -r -p`"; DF="`echo DF | xxd -r -p`" +E0="`echo E0 | xxd -r -p`"; EF="`echo EF | xxd -r -p`" +F0="`echo F0 | xxd -r -p`"; F7="`echo F7 | xxd -r -p`" +S() { + bufrd + case "$buf" in + () go ESC;; + () wr '[D [D'; go S;; + ([$C0-$DF]) go U1;; + ([$E0-$EF]) go U2;; + ([$F0-$F7]) go U3;; + (*) wr "$buf"; go S;; + esac +} + +U1() { buf="$buf`rd`"; wr "$buf"; go S; } +U2() { buf="$buf`rd`"; go U1; } +U3() { buf="$buf`rd`"; go U2; } + + +ESC() { + bufrda + case "$buf" in + ('[') go ESC_OSQRB;; + (*) + wr '[35m^[[m' + go S + ;; + esac +} + +ESC_OSQRB() { + bufrda + case "$buf" in + ('[A'|'[B'|'[C'|'[D') wr "$buf"; go S;; + (*) + wr '[35m^[[m[' + go S + ;; + esac +} + + +wr 'c' +go S diff --git a/.graveyard/cholerab-live/makefu/README b/.graveyard/cholerab-live/makefu/README new file mode 100644 index 00000000..b778b98c --- /dev/null +++ b/.graveyard/cholerab-live/makefu/README @@ -0,0 +1,6 @@ + +view.py: contains view classes for cholerab +cholerab.py: main file + +start with : +python cholerab.py diff --git a/.graveyard/cholerab-live/makefu/chol_net.py b/.graveyard/cholerab-live/makefu/chol_net.py new file mode 100644 index 00000000..ee0f5378 --- /dev/null +++ b/.graveyard/cholerab-live/makefu/chol_net.py @@ -0,0 +1,82 @@ +from socket import socket, AF_INET,SOCK_DGRAM,IPPROTO_UDP,SOL_SOCKET,SO_REUSEADDR,IP_MULTICAST_TTL,IP_MULTICAST_LOOP,INADDR_ANY,inet_aton,IP_ADD_MEMBERSHIP,IPPROTO_IP +import struct +import threading +import logging +log = None +from select import select +GROUP = '224.110.42.23' +PORT = 42023 +log = logging.getLogger('CholerabNet') +class CholerabMulicastNet(threading.Thread): + def __init__(self,cholerab,group=GROUP,port=PORT): + threading.Thread.__init__(self) + self.cholerab=cholerab + self.group=group + self.port=port + self.initSocket() + def send_char(self,x,y,char): + """ translates given params into network message """ + self.send_mc("%s %d %d" %(str(ord(char)),x,y)) + def send_mc(self,arg): + """ Sends message via multicast""" + try: + log.debug("Sending '%s' to %s:%d" % (arg,self.group,self.port)) + self.ignore_next += 1# we need this to work together correctly with reused sockets + self.s.sendto("%s" % arg,0,(self.group,self.port)) + except Exception ,e: + self.ignore_next -=1 + log.error("IN send_mc:%s"%str(e)) + + def initSocket (self,rcv=1): + ''' Initializes a Multicast socket ''' + host = '' + log.debug("Setting up Multicast Socket") + self.s = socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP) + self.s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) + self.s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, 32) + self.s.setsockopt(IPPROTO_IP,IP_MULTICAST_LOOP,1) # we do not want our own packets to be replayed + if rcv==1: + log.debug("Configuring for Read AND Write") + self.s.bind((host,PORT)) + mreq = struct.pack("4sl", inet_aton(GROUP), INADDR_ANY) + self.s.setsockopt(IPPROTO_IP,IP_ADD_MEMBERSHIP,mreq) + def run(self): + self.running = 1 + self.ignore_next = 0 + while self.running: + # break if we do not want to loop on + ready,output,exception = select([self.s],[],[],1) # try every second + for r in ready: + if r == self.s: + log.debug(str(self.ignore_next)) + (data,addr) = self.s.recvfrom(1024) + if not self.ignore_next: + log.debug("Received Data from %s, data %s"%(str(addr),str(data))) + self.receive_net(addr,data) + else: + self.ignore_next -= 1 + + def send_stupid(self,addr): + """ sends YOU ARE MADE OF STUPID to the right host """ + #TODO implement me + pass + + def receive_net(self,addr,data): + """ resolves which nick sent the message + TODO handle user resolution in mulicast """ + try: + address,port = addr + arr = str(data).split() + char = arr[0] + x = arr[1] + y = arr[2] + self.cholerab.write_char(int(x),int(y),chr(int(char))) + except Exception, e: + log.error("Triggered YOU ARE MADE OF STUPID: %s" % str(e)) + self.send_stupid(addr) + + def stop(self): + ''' + stops the whole treading stuff gracefully + ''' + self.running=0 diff --git a/.graveyard/cholerab-live/makefu/cholerab.py b/.graveyard/cholerab-live/makefu/cholerab.py new file mode 100755 index 00000000..eb9e66df --- /dev/null +++ b/.graveyard/cholerab-live/makefu/cholerab.py @@ -0,0 +1,36 @@ +#!/usr/bin/python2 +# -*- coding: utf-8 -*- +import curses,time +from view import CursesView +from chol_net import CholerabMulicastNet +import logging +logging.basicConfig(filename='here.log',level=logging.DEBUG) +log = logging.getLogger('main') +class Cholerab: + def __init__(self): + self.view = CursesView(cholerab=self) + self.transport = CholerabMulicastNet(cholerab=self) + def send_char(self,x,y,char): + log.info("Sending %s at (%d,%d) to connected peers" %(char,x,y)) + self.transport.send_char(x,y,char) + + def write_char(self,x,y,char): + log.info("Writing %s at (%d,%d) to view" %(char,x,y)) + self.view.write_char(x,y,char,user=2) + def stop(self): + self.view.stop() + self.transport.stop() + def main(self): + self.view.start() + self.transport.start() + self.view.join() + #after view dies, kill the transport as well + self.transport.stop() + self.transport.join() +def main(): + log.debug('started main') + chol = Cholerab() + chol.main() + +if __name__ == "__main__": + main() diff --git a/.graveyard/cholerab-live/makefu/view.py b/.graveyard/cholerab-live/makefu/view.py new file mode 100644 index 00000000..6a75f655 --- /dev/null +++ b/.graveyard/cholerab-live/makefu/view.py @@ -0,0 +1,112 @@ +#!/usr/bin/python2 + +from curses import * +import socket +import threading +import logging +log = logging.getLogger('cholerab-curses') + +class CursesView(threading.Thread): + def addch(self,char): + """ + adds a char at the cur |