Obvious Ideas

From the desk of a Software Developer

Archive for the ‘Software’ tag

How To Protect Your Program Against Piracy

View Comments

This is another way to protect your software - just ask politely. (Photo by penner42 on Flickr)

This is another way to protect your software - just ask politely. (Photo by penner42 on Flickr)

A friend of mine sent me this question by email today:

I have  a software written in visual C++ which is compiled into an .exe file and I wish to distribute (sell) it in a “secure” (anti pirated) way.  How can I “lock it” so it will be able to run on only one computer (the one of the person who purchased the software)?  Is there a software to turn .exe files into protected ones, or good tutorials on what to do from the coding side?

I thought that for the general good and in order to get more views on the topic, I will post my answer to him here:

I can think of mainly four ways to protect your software -

  1. Some serial number authentication mechanism – this is the most traditional way and it fails big time. All of the documented techniques to protect yourself in such a way are already broken, and if you’re not in the field of software security you probably won’t find anything better. This might be a good way if you know that your target market is non-technical people who probably won’t bother breaking your authentication mechanism themselves and usually don’t know someone who can do it for them.
  2. Serial number authentication and online check – this is what Babylon do. When their application connects to their server it verifies the serial number it has with their database, if they see some misuse they either lock your application or just stop providing you answers. Microsoft use similar technique with XBox Live accounts – whenever you connect to XBox Live they check if the games you run are legal – if not they take actions against you. In recent check they disabled 1 million pirated accounts. But not only they disabled their access to XBox Live, they also disabled the hard drive in their console. This is quite good method as long as your software requires constant communication with your server. If not there are ways to override this protections (like disabling access to the Internet from your application).
  3. Good target market – like in mentioned in (1) a lot depends on your target audience. If you create a truly great product and price it in reasonable and achievable price, most people are likely to pay (unless your target solely to the Israeli market…).
  4. Online service – if you convert your software into an online service (like the 37Signals products, ZoHo, GitHub and many more), you are fully protected up to the extent that people will use stolen credit cards or hack your system in some way. But this actions are considered as “real crimes” by most people and they will less likely use them or spread the knowledge about them.

This are the four ways I can think of. If you ask me what would I do, I would go with option #4 – all other ways (besides #3) require you to invest unreasonable time and money in protecting your software instead of improving it. While it can be a nice mouse&cat game, it highly unproductive.

That’s what I think, I’m not sure if it really helps my friend, but maybe one of the readers will offer some better insights & tips on the topic.

Arik

Written by Arik

November 16th, 2009 at 8:22 pm

A look into the new Android SDK

View Comments

After seeing all this videos of prototype Android devices from 3GSM at Barcelona, it’s time for some more good news – as I reported earlier on twitter, Google has finally released the new Android SDK. As Dan Morill mentioned on the Code Day, the new SDK introduces a new UI (although Google promised that it still work in progress), new Eclipse plugin and some very interesting API changes -

  • New user interface – As I mentioned when we introduced the m3 version of the Android SDK, we’re continuing to refine the UI that’s available for Android. m5-rc14 replaces the previous placeholder with a new UI, but as before, work on it is still in-progress.
  • Layout animations – Developers can now create layout animations for their applications using the capabilities introduced in the android.view.animation package. Check out the LayoutAnimation*.java files in the APIDemos sample code for examples of how this works.
  • Geo-codingandroid.location.Geocoder enables developers to forward and reverse geo-code (i.e. translate an address into a coordinate and vice-versa), and also search for businesses.
  • New media codecs – The MediaPlayer class has added support for the OGG Vorbis, MIDI, XMF, iMelody, RTTL/RTX, and OTA audio file formats.
  • Updated Eclipse plug-in – A new version of ADT is available and provides improvements to the Android developer experience. In particular, check out the new Android Manifest editor.

As for the UI change, you can watch the following videos (origin) from 3GSM Barcelona :

You can see a more complete list of the major changes here (you can also find a complete difference report here). So what are you waiting for? Go upgrade :-)

Written by Arik

February 14th, 2008 at 9:00 am

Updates from Android Code Day

View Comments

It seems the Twitter is back online, so I’ve started updating there.

Soon I will upload the photos to Flickr.

Update 15:15: Caught a talk with Ouriel Ohayon (Ouriel is live blogging the event on Techcrunch.fr and on Twitter).

Update 15:40: I’m keeping updating from time to time on Twitter, and uploaded some photos to Flickr.

Update 15:50: Ouriel mentions on his blog, that the Android is going to be much more influencing than the iPhone. I guess he’s right. And now I’m happy that I didn’t buy an iPhone :-)

Update 16:33: Dan Morrill is doing a code demo. For me, after watching his video demo, it’s a bit boring… Although from a quick survey Dan conducted earlier, it seems that most of the audience didn’t watch the video demos or even downloaded the SDK.

Update 17:20: Caught a talk with Dan Morrill. I had some really good questions, so he wrote them down and I hope to see updates from Google soon.

Update: I’m back home. At the weekend I will post a summary and my thoughts on Android. Hope you enjoyed the coverage :-)

Arik

Written by Arik

January 31st, 2008 at 3:39 pm

Android Code Day @ Tel Aviv

View Comments

Thanks to a tip at SMO.co.il blog, I found out that Google conducting a day long introduction for their Android cellular phone operating system – the Android Code Day. This event takes place today in London, UK and here in Israel. Also on the 23 February they’re having a similar day in Boston, Massachusetts.

My First Android Application

I’m attending the event here in Tel Aviv, if Twitter servers start responding I will tweet the event from time to time (you can follow me here). I’m bringing my camera, and will post the photos under “Android Code Day” tag on Flickr.

Hope to learn new cool stuff,

Arik

Written by Arik

January 31st, 2008 at 10:57 am

Posted in Android

Tagged with , , ,

GTD Two Minutes Timer for Free on any platform

View Comments

Today a friend of mine mentioned that you can find on David Allen’s web site a GTD utilty called “Two Minutes Timer”. As it name states it’s a two minutes timer, that will make a sound when the time ends and flashes “What is your next action?”. If you aren’t famililar with the GTD methodology – the 2 minute timer is intended to facilitate the 2 minute rule, which states that:

“If the Next Action can be done in 2 minutes or less, do it when you first pick the item up. Even if that item is not a “high priority”, because it takes longer to store and track any item than to deal with it the first time its in your head.”(p. 131, “Getting Things Done”)

While the GTD methology is a great thing, paying 10$ for a utility that I can write in half an hour seemed to be as too much. Making a quick google search for gtd + “two minutes timer” reveled to me that I wasn’t the only one who thought like that. 20 minutes later I’ve compiled a list replacement timers for PC, Mac, Google Widgets, Yahoo Widgets and more…

Read the rest of this entry »

Written by Arik

December 14th, 2006 at 9:02 pm

Posted in Productivity

Tagged with , , ,