I recently gave a lecture on DDoS in my Network OS class. I demonstrated a simple bot on the computers in the class. I also demonstrated how portable devices are capable of running bots as well.

I used Android Scripting Environment (ASE) for the demo. The commands I gave it where text, call, speak aloud, and vibrate. The only draw back ASE has is no real GUI support. I can’t wait for the day when OpenGL ES is ported to python. Anyway, ASE allows access to almost all of the phones featurtes. Here is a link to the API ref: http://code.google.com/p/android-scripting/wiki/ApiReference

#------------------------------------------------------------------------------- # Name:        AndroidIRC # Purpose: Android based IRC bot # # Author: K.B. Carte (techb) # # Created: 10/26/2010 # # Copyright: (c) K.B. Carte (techb) 2010 #------------------------------------------------------------------------------- #!/usr/bin/env python

import socket, string, time, os, sys, android droid = android.Android() os.chdir("sdcard")

droid.makeToast("AndroidBot Started") droid.vibrate(300)

chan = 'AndroidBot' ircsite = 'irc.freenode.net' port = 6667

irc = socket.socket() irc.connect((ircsite, port)) n = 'AndroidBotV1' irc.send('NICK %s\\r\\n' % n) irc.send("USER %s %s bla :%s\\r\\n" % ("Ohlook", 'itsnotmy', 'Realname')) time.sleep(4) irc.send("JOIN #%s\\r\\n" % chan)

readbuffer = '' while True: readbuffer= irc.recv(1024) temp=string.split(readbuffer, "\\n") Check = readbuffer.split(':') print readbuffer

if 'PING' in readbuffer: """PIN/PONG connection echo response""" irc.send("PONG :%s" % Check\[1\])

if 'JOIN' in readbuffer: """Greet people that join the channel""" na = Check\[1\].split('!') irc.send("PRIVMSG #%s :Hello %s\\r\\n" % (chan, str(na\[0\])))

if '^call' in readbuffer: number = readbuffer.split(':') droid.phoneCallNumber(number\[3\].strip())

if '^text' in readbuffer: "texts the number 5 times with given message" data = readbuffer.split(":") number = data\[3\].strip() message = data\[4\].strip() print number, message cnt = 0 while cnt < 5: droid.smsSend(number, message) cnt += 1

if '^vibe' in readbuffer: droid.vibrate(300)

if '^say' in readbuffer: say = readbuffer.split(":") droid.ttsSpeak(say\[3\].strip()