Bluetooth spam
Boas novamente,
Num dia de sol, ou talvez não, surgiu a ideia de efectuar uma spam via bluetooth.
Coisa simples sem nada de muito complexo e que fosse util.
O objectivo é simples.
Um telemóvel com suporte Bluetooth aproxima-se de uma determinada area e após o seu reconhecimento recebe uma ficheiro. Tanto pode ser imagem, texto ou um som.
Como sempre o desenvolvimento é feito sobre o S.Operativo linux, distro Debian.
Parte 1
Bom, para começar os modulos a instalar no kernel são
bluetooth, rfcomm e l2cap.
Para isso pode utilizar o comando insmod ou modconf para instalar os modulos
Após a instalação listamos os modulos instalados e obtemos
~$ lsmod | grep blue
bluetooth 48676 4 rfcomm,l2cap
Agora que temos o bluetooth instalado, instalmos de seguida o software
se utilizarem debian basta
~# apt-get install bluez-utils ussp-push
vamos verifcar o nosso bluetooth
# hciconfig
hci0: Type: USB
BD Address: 00:11:B1:0A:0C:E3 ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:441 acl:0 sco:0 events:23 errors:0
TX bytes:342 acl:0 sco:0 commands:21 errors:0
Se obterem algo do genero significa que estamos no bom caminho
Agora activem o bluetooth no vosso telemovel ou outro dispositivo e coloquem-no visivel a todos os dispositivos bluetooth.
Executem
$ hcitool scan
o resultado deve ser
Scanning ...
00:13:FD:BA:F9:57 Xekhz.Mobile
OK, bluetooth up-and-running.
Parte 2
Como conseguir enviar um ficheiro para o telemovel.
Pela minha pesquisa não muito exaustiva verifiquei que a melhor forma, pelo menos a mais expedita, seria pesquisar se os dispositivos bluetooth suportam o OPUSH service
para isso
~$ sdptool search OPUSH
Se no alcance do dispositivo existir algum dispositivo que suporte o OPUSH
então
Inquiring ...
Searching for OPUSH on 00:13:FD:BA:F9:57 ...
Service Name: OBEX Object Push
Service RecHandle: 0x1000d
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100
Agora so nos falta enviar os ficheiros para o telemovel.
Para isso:
~$ ussp-push 00:13:FD:BA:F9:57@9 /tmp/foto1.jpeg telef-foto1.jpeg
Apos aceitarem a ligacao a foto sera enviada para o telefone.
Note-se que antes do @ é o mac address e depois do @ é o channel indentificado que possui o OPUSH
Fica aqui o script que uso para enviar mensagens.
Alteracoes sao bem vindas.
---------------
#!/bin/bash
log="/tmp/"
TIME_NOW=`date +%s`
devices=`hcitool scan`
echo -e "SHOWING $devices \n"
#MAC
##echo $devices
##echo "press enter"
##read
device_name=(`echo $devices | sed 's/Scanning \.\.\.//' `)
#device_name=(`echo $devices | sed 's/.*\(..:..:..:..:..:..\) \(.*\)/\1 \2/g' `)
echo ${device_name[*]}
##echo "press enter"
##read
# verifica se ja enviou mensagem
# file guarda TIMESTAMP UNIX MAC ADDRESS
function check_device(){
t=0 ;
i=0;
while [ ${device_name[$i]} ]; do
if [ $(($t)) -eq 0 ];
then
#verifica se nao existe file
if ! [ -f "$log/${device_name[$i]}" ];
then
echo 0 > "$log/${device_name[$i]}"
fi
#saca ultima entrada
TIMESTAMP_OLD=`cat "$log/${device_name[$i]}"`
#28800 8 horas
if [ $(($TIME_NOW - $TIMESTAMP_OLD)) -gt $((60)) ];
then
echo $TIME_NOW > "$log/${device_name[$i]}"
# Verifica canal OPUSH
channel=`sdptool search --bdaddr ${device_name[$i]} OPUSH | grep -i channel | sed 's/.*: *\([0-9]*\)/\1/g' `
echo ${device_name[$(($i+1))]} >/tmp/x.txt
ussp-push ${device_name[$i]}@$channel /tmp/f1.jpeg f1.jepg &
# Se Existe envia mensagem
fi
fi ;
i=$(($i+2));
done;
}
check_device
#EOF
-------------------------
Num dia de sol, ou talvez não, surgiu a ideia de efectuar uma spam via bluetooth.
Coisa simples sem nada de muito complexo e que fosse util.
O objectivo é simples.
Um telemóvel com suporte Bluetooth aproxima-se de uma determinada area e após o seu reconhecimento recebe uma ficheiro. Tanto pode ser imagem, texto ou um som.
Como sempre o desenvolvimento é feito sobre o S.Operativo linux, distro Debian.
Parte 1
Bom, para começar os modulos a instalar no kernel são
bluetooth, rfcomm e l2cap.
Para isso pode utilizar o comando insmod ou modconf para instalar os modulos
Após a instalação listamos os modulos instalados e obtemos
~$ lsmod | grep blue
bluetooth 48676 4 rfcomm,l2cap
Agora que temos o bluetooth instalado, instalmos de seguida o software
se utilizarem debian basta
~# apt-get install bluez-utils ussp-push
vamos verifcar o nosso bluetooth
# hciconfig
hci0: Type: USB
BD Address: 00:11:B1:0A:0C:E3 ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:441 acl:0 sco:0 events:23 errors:0
TX bytes:342 acl:0 sco:0 commands:21 errors:0
Se obterem algo do genero significa que estamos no bom caminho
Agora activem o bluetooth no vosso telemovel ou outro dispositivo e coloquem-no visivel a todos os dispositivos bluetooth.
Executem
$ hcitool scan
o resultado deve ser
Scanning ...
00:13:FD:BA:F9:57 Xekhz.Mobile
OK, bluetooth up-and-running.
Parte 2
Como conseguir enviar um ficheiro para o telemovel.
Pela minha pesquisa não muito exaustiva verifiquei que a melhor forma, pelo menos a mais expedita, seria pesquisar se os dispositivos bluetooth suportam o OPUSH service
para isso
~$ sdptool search OPUSH
Se no alcance do dispositivo existir algum dispositivo que suporte o OPUSH
então
Inquiring ...
Searching for OPUSH on 00:13:FD:BA:F9:57 ...
Service Name: OBEX Object Push
Service RecHandle: 0x1000d
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100
Agora so nos falta enviar os ficheiros para o telemovel.
Para isso:
~$ ussp-push 00:13:FD:BA:F9:57@9 /tmp/foto1.jpeg telef-foto1.jpeg
Apos aceitarem a ligacao a foto sera enviada para o telefone.
Note-se que antes do @ é o mac address e depois do @ é o channel indentificado que possui o OPUSH
Fica aqui o script que uso para enviar mensagens.
Alteracoes sao bem vindas.
---------------
#!/bin/bash
log="/tmp/"
TIME_NOW=`date +%s`
devices=`hcitool scan`
echo -e "SHOWING $devices \n"
#MAC
##echo $devices
##echo "press enter"
##read
device_name=(`echo $devices | sed 's/Scanning \.\.\.//' `)
#device_name=(`echo $devices | sed 's/.*\(..:..:..:..:..:..\) \(.*\)/\1 \2/g' `)
echo ${device_name[*]}
##echo "press enter"
##read
# verifica se ja enviou mensagem
# file guarda TIMESTAMP UNIX MAC ADDRESS
function check_device(){
t=0 ;
i=0;
while [ ${device_name[$i]} ]; do
if [ $(($t)) -eq 0 ];
then
#verifica se nao existe file
if ! [ -f "$log/${device_name[$i]}" ];
then
echo 0 > "$log/${device_name[$i]}"
fi
#saca ultima entrada
TIMESTAMP_OLD=`cat "$log/${device_name[$i]}"`
#28800 8 horas
if [ $(($TIME_NOW - $TIMESTAMP_OLD)) -gt $((60)) ];
then
echo $TIME_NOW > "$log/${device_name[$i]}"
# Verifica canal OPUSH
channel=`sdptool search --bdaddr ${device_name[$i]} OPUSH | grep -i channel | sed 's/.*: *\([0-9]*\)/\1/g' `
echo ${device_name[$(($i+1))]} >/tmp/x.txt
ussp-push ${device_name[$i]}@$channel /tmp/f1.jpeg f1.jepg &
# Se Existe envia mensagem
fi
fi ;
i=$(($i+2));
done;
}
check_device
#EOF
-------------------------
Comments