Month: February 2011

I was just wondering on how to send SMS from your computer via a mobile device (or GPRS modem). I dug it up and created a small application using c++ (Netbeans IDE) which you can extend and use as per your free will.

The How??

There is a great guide here which you can use to telnet your mobile device and test sending a SMS manually. To do it via a program: read on.

Quick Start

To incorporate this library into your project all you have to do is to include the “ATCommands.h” file. This exports the following functions:
void initPort(int n);
void pokeDevice();
int getMsgIndex();
void sendSMS(char *TargetNo,char *Msg);
void closePort();
Lets dicuss their roles one at a time:
  • initPort(int n): It initializes and sets up the port for communication. The device string should be of the form /dev/ttS<n> where n is the port number (like mostly if you have only one device attached then it will be /dev/ttyS1).
  • pokeDevice(): To be used only under debug mode(explained later). It is analogous to a ping.
  • getMsgIndex(): It is a helper function for sendSMS and returns the index for the new message to be written.
  • sendSMS(char *TargetNo,char *Msg): It is the function you want to call most often and is responsible for actual sending of SMS.
  • closePort(): performs cleanup and closes open port.
Putting it all together, we have a sample test program as:
initPort(n); // Open Port and set params;
#ifdef DEBUG
pokeDevice(); // To test if connection can be made
sendSMS(argv[2],argv[3]); // actual procedure that sends message
// argv[2] is no. and argv[3] is MSG
closePort(); // Cleanup

Try running it and …. guess what… you’ve got SMS (You’ve got mail sounds more catchy or is it just me :P).

Under The Hood

The code I have written supports a DEBUG flag. All you’ve got to do is to include “Debug.h” which defines a macro Debug and enables logging of debug messages to stdout. If you are extending the library then you might want to use the DbgPrint( char *format, … ) function to maintain uniformity of the debug flag.

click download link below to download the complete netbeans project and have a go at it yourself.


The above code was compiled using g++4.3.2/cygwin and tested with mobile handsets of Nokia, Sony Ericsson and Sigmatel. It should also work with most GPRS modems. 

Further Improvements

  • Support for handling multiple mobile devices at once.
  • Error handling can be better.
  • Support for Queueing/Scheduling of messages.


news appeared on the 15th feb 2011 the famous (HBGary)
attacked and all the data in its mysql db and emails were stolen and
posted online. Being a huge fan of the book Rootkits: subverting the
windows kernel
by Hoguland and Butler, I was an active member of the
community there.
It is believed that the site
had published the username and password of all accounts in clear text
(And yes mine toooo!!). As many users are in a habit of keeping the
same password for all accounts like their mail or facebook etc, this
posed a great risk.
The good thing is that the site has now removed the cleartext passwords
stating that it has the potential to compromise people’s social
networking or mailing accounts. But the download to the backup of the
mysql db still is available at :
Moreover, the password field in the database is hashed.
So, can you see your password (clear text) in here… Yes, it is now a
DIY thing.
You will have to use the JTR (John the ripper password cracker) tool.
The hash used is a vulnerable MD5 hash which can be broken given JTR
has the right dictionary (
JTR is available at :
  • Step 1: Download backup, JTR, dictionary (john is in synaptic for
    ubuntu users).
  • Step 2: Extract the .gz file and open the extracted file as text,
    search for your login name and get your password’s hash (I used nano to
    open the file and searched for my login name. Hash is the field next to
    your login name). Note only the first occurence of your username as
    rest may be entries for comments and other stuff.
  • Step 3: Create a text file test.txt with content
    “mypassword:<hash>” without the “” and replace <hash> with
    the hash you found in step 2.
  • Step 4: Open terminal and ask jtr to do its magic using the
    following command :
-wordlist=passwords.txt -format=raw-MD5 test.txt
That was easy.. funny part is that it took 0.00 secs to crack my
password. Am thinking of increasing my password strength….
Now what???
If you or someone you know is a user then you must
immediately change
your password for all site accounts that have the same password. Go Go
With all that being said and done, I feel that it is really unethical
of someone to post such stuff online and posing a threat to other
sites.However, It is our duty to stay vigilant enough and act on it as soon as possible. I am also the kind of person who likes to keep one password for
all accounts (I know its not recommended but its just easier this way)
and hence had to go through a lot of settings and change
password pages. Thankfully, none of my accounts were compromised before
I changed my password. Hope it is the same for you.:)