#!/bin/sh
############################################################################################
# OSCam-Server
LOGIN="root" # Beutzer
PW="su" # Passwort
IP="192.168.178.189" # ip oder
#IP="xxxxx.myftp.biz" # dyn-url Adresse
PORT="80" # port des Webif
# Enigma2 Client für die Anzeige
LOGINC="root" # Beutzername
PWC="vu+" # Passwort
IPC="192.168.178.254" # ip Adresse oder
#IPC="xxxxx.no-ip.biz" # dyn-url Adresse
PORTC="80" # port des Webif
KARTE="v14" # Label des Readers
LOGPFAD="/srv/cardsharing/log/oscam.log" #Pfad zu dem logfile
rot='\033[31;1m';gelb='\033[33;1m';gruen='\033[32;1m';blau='\033[34;1m';lila='\033[35;1m';cyan='\033[36;1m';norm='\033[0m'
PLATZ="\033[90;1m############################################################################### -> O.K.\033[0m"
TEMP="/tmp/tempfile"
############################################################################################
clear
curl -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/logpoll.html?lastid=start&debug=65535#" > $TEMP
printf "$cyan-> switching debug to 65535 ... \n\033[0m";
printf "$PLATZ\n";
rm -f $TEMP
curl -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/readers.html?label=$KARTE&action=disable" > $TEMP
printf "Reader $cyan$KARTE$norm wird ausgeschaltet ...\n";
wget -q -O /dev/null "http://$LOGINC:$PWC@$IPC:$PORTC/web/message?text=Starte den Smartcard-Reader neu!&type=1&timeout=16"
rm -f $TEMP
printf "$PLATZ\n";
curl -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/readers.html?label=$KARTE&action=enable" > $TEMP
c=1
printf "Reader $cyan$KARTE$norm wird neu gestartet ... warte noch$cyan 15 sek.$norm"
while [ $c -le 15 ]
do
printf "$cyan\033[5;45H `expr 15 - $c` sek. $norm" #curser 5.Zeile, Spalte 45
c=`expr $c + 1`
sleep 1
done
rm -f $TEMP
printf "\n$PLATZ \n";
printf "$cyan-> suche Fusebyte\n$lila";
grep -A 2 -B 1 "15 48 " $LOGPFAD | grep -A 1 "Answer from cardreader" | grep -A 1 "$KARTE " | tail -n 1 | tail -c 49 > $TEMP
fusebyte=$(cut -c 7-8 $TEMP | tail -n 2)
printf "Fusebyte$norm\n15 48$lila $fusebyte $norm\n"
printf ""
rm -f $TEMP
printf "\033[90;1m15 48 ||""$norm\n";
printf "15 48""$blau 00 = Karte jungfräulich""$norm\n";
printf "15 48""$gelb 05 = Karte aktivert""$norm\n";
printf "15 48 25 =""$rot"" Karte verheiratet$norm oder $gruen Karte aktiviert""$norm\n";
curl -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/logpoll.html?lastid=start&debug=0#" > $TEMP
rm -f $TEMP
printf "$PLATZ \n";
printf "$cyan-> suche Payload \n";
cat $LOGPFAD | grep -A 0 -B 3 "00 0F 06 " | grep Dec | tail -n 1 | tail -c 18 >> $TEMP
cat $LOGPFAD | grep -A 0 -B 3 "00 0F 06 " | tail -n 1 | tail -c 31 >> $TEMP
payload=$(cat $TEMP | tail -n 2)
printf "$lila$payload$norm\n";
wget -q -O /dev/null "http://$LOGINC:$PWC@$IPC:$PORTC/web/message?text=FuseByte\n$fusebyte\n\n$payload&type=1&timeout=30"
rm -f $TEMP
printf "\033[90;1m0F 06 || || ||\n";
printf "$blau""0F 06 02 30 20 = Karte komplett neu und nackt (nicht mit EMMs versorgt)***""$gelb\n";
printf "0F 06 00 10 20 = Karte aktiviert...\n";
printf " ...EMM geschrieben aber noch ohne Entitlements...\n";
printf " ...EMM fehlt /ODER/ Karte war schon hell, Entitlements abgelaufen...\n";
printf "$gruen""0F 06 00 00 00 = Karte aktiviert und mit Entitlements versorgt\n";
printf "$rot""0F 06 00 10 00 = Karte verheiratet/gepairt ***""$norm\n";
printf "$PLATZ \n";
printf "$cyan-> switching debug to 0 ...""$norm\n";
printf "$PLATZ \n";
printf "done...\n";
exit 1