AWMA the Elephant

AWMA the Elephant packed her disc,
And said “Just try and install it”,
Off it went, it arrived on my desk,
Damn, damn, damn.

Software that needs to be activated is a pain. For most big packages, though, you can automate it so that it’s not too much of a hassle. For smaller packages, it’s nowhere near as easy. For educational packages, it’s a pain in the backside.

Our school has recently purchased Automated Working Memory Assessment (AWMA), which is to aid in remembering… erm… something or other. Plus, it has a really cute looking logo that I want to cut out and keep, but I think people will wonder why there’s part of the CD insert missing.

While the installer is nice and easy, a next, next, finish type of affair, the real fun comes with the activation. Once we had it installed, and ran it, it immediately presented a “Please quote this number: 192843” screen, and a box to type into. Note, no useful information was displayed, such as a number to call.

After a call to Pearson, who in all honesty were very quick and helpful, we had a code that we could type into the box. It worked, and we were into the program. Right, now time to give the computer back to the user and let them have a play on it. Our work was done.

It wasn’t. The phone rang, with us being told “The program that you’ve just installed is asking for a number to be typed“. Back we go, only to realise that the number that is currently being presented to the user is different to the one that we were shown before. Another call to Pearson, and another code we had to enter. After that, the program worked for that user without any more problems.

Any other user, on the other hand, still keeps getting asked to type in a number. Feeling that this would be a never ending problem, I decided to see if I could find a way to decode how the license keys were being generated or where they were being stored. As AWMA is written in Java, I found a useful tool and had a poke around.

My first clue was where the license key was being stored. This was helpfully given at the top of the file that looked after licenses:

So, it was located in the user profile location, called “.awma/license.txt“. I quickly browsed to the location of the user who had already been able to access AWMA, and there was the license file. Good. Copying this file to the other users’ profile and then running the program came to no avail, as the numerical code that was being displayed to this user was different. Back to the drawing board.

Carrying on looking through that Java file did give me a few hints on how the licensing checks were done. The further I went through the file, the more I realised I was probably going to give up pretty soon. While I don’t normally give up so easily, there were hints in the code that the number displayed is totally random, such as:

Getting the MAC address of the local computer

Converting the MAC address into a MD5 hash

There are also a few other functions that get environment variables local to the user who is currently logged on and what machine they are using. So, for the meantime, for any new users that want to have access to this program, Pearson are going to have a call from us. Oh, and one final thing – the license is only valid for a year. What happens after that I have no idea, but I’m not looking forward to it.

Please excuse me now, as I think AWMA the Elephant and I have just had an argument. And I’m determined to win it…

Update: 31st March 2015
I did.

Leave a Reply

Your email address will not be published. Required fields are marked *