Man oh man did my moral issues concerning programming get tested today.
I think I did what most of us here probably would have done.
Here was my situation:
I was mucking around with my cell phone at work and turned the phone security on. So I thought no biggie I can get out of anything on the phone, right?? Wrong. I forgot the security code. So when I failed at it 3 times it then asked me for the PUK code or the personal unlock key. Little did I know that this key could only be provided by your service provider. So I proceed to put in the wrong code about 5 times and whammo the whole thing locks up and says SIM card rejected. At this point I'm thinkin no biggie just turn it off, disconnect the power, and......you guessed it, it didn't help. So I was FUBARed big time.
I go to Cingular to get it fixed and they say no biggie. I buy a new SIM card for about 25 bucks, he programs it and then sticks it in my phone. It then asks for the security code and he asks me for it. Well.....since I got here in the first place because I forgot the stupid thing....my phone was locked out with no way to get in.
So we try default codes and other codes....nothing. I take the phone apart....still nothing. So I think, hey I'm a good programmer I'll just see what I can find. I do a lot of research and find out there are data cables (not authorized by Nokia of course) for lots of phones (not just Nokia). Also I find that there are 9 locks on all phones and you can disable them as well, as well as enable all kinds of hidden features. Heck some phones can be used as radar detectors.....no kidding.
Then I realize I also know assembly language and so I go about looking for phone memory addresses. Turns out some guy has hacked mine and found out where the code starts. Even though the code is in Java....it's all assembly later...like I always say.
My dilemma though is this. I'm not a hacker and I pay for my cell phone service...even though now I have information that could change all of that. As well there are certain locks that they should not be able to do since it is my phone. One of them is SIM card lock....which is what SIM card rejected means. This lock is so that someone else cannot use another person's SIM card in your phone. Your SIM card holds your phone number and service info on it. But since its your phone....this does not seem fair. As well there is a country code lock on it and several other locks. I find all the codes for my phone and try them....they work except some cannot be undone because I entered the wrong codes at work 2 many times. Now all that can be done is a hardware to hardware reset of that code - via PC or some other device. There are thousands of cables out there and they are pretty cheap and I have software that will alter a lot of stuff for phones (I found it on the net).
But again, I'm not a hacker and I don't want to be one. I'd rather pay for a new phone, because it was my fault after all, than hack into mine. But the new phone is like 190 bucks and the cable is only 20 bucks. Also if Nokia takes my phone they will do a hardware reset and I will lose all the phone numbers in it.
So what did I do?
I turned the phone into Nokia tech support for repair. Losing all those numbers is nothing next to losing my integrity on an issue I feel so strongly about. So, all in all guys I love assembly language, C, and I love programming in general, but I'm not a hacker....even when it really is a legitimate hack that's not illegal and that helps me out quite a bit. Hacking into my phone is not illegal and unlocking it is not illegal (changing the serial # is), but hacking is not what I do. I must say that it was a very tough decision because after all why should I have to suffer for 1 mistake or because the software designers failed to see this situation when they coded it for the phone?
I shouldn't, but that does not make hacking into it any less of a violation of my ethics.
But....from a programming standpoint....I must go through all this crap just because of one stinking variable.
Thats the only thing keeping me from getting into my phone.....crazy.
What would you guys have done? I'm not patting myself on the back here....I'm just saying that is how strongly I believe that programming serves a purpose....and hacking is not one of em.