Is there ever an ethical reason to decompile another developers code?
The program-transform site has a lot of information about programming, especially reverse-engineering and compilation/recompilation. Since they seem to promote techniques for decompiling code I wasn't surprised to find a decompile ethics page.
Ethical dilemma
Well,that got me to thinking. What are the circumstances, if any, that would permit me to decompile another persons code? A key distinction I feel is whether or not you OWN the code. If the code was written by someone employed by you or your company then I don't see any issues with running a decompiler against the exe.
Any code that is owned by my company.
Code developed by earlier teams.
Code gained through merger or acquisition of another company.
Further dilemmas
What about an exe that you don't OWN? This is where the problem becomes a bit murkier. What if the company that you bought software from goes bankrupt and you can't get the source code? The dot com bust shows that both big and little companies are not immune from this problem. Do you have the right to peek at their code?
What about your competitors code? I have a friend that wrote a successful bond trading application. His company employed a handful of developers over the past twenty years and has managed to continue to be a major player selling software to bonds traders. He tells me that his product is profitable primarily because it is faster and leaner than his competitors products. Do I or any of his competitors has the right to decompile his code to see why it is faster?
What if my competitor is from another country? Does that make decompiling more ethical? There are countries that hold a dramatically different view from the U.S. of what is considered legitimate ownership of intellectual property. If they have no qualms about taking my code and creating an application - or cracking it and the selling for much less than I would - should I turn the tables and do the same to their local companies?
What about shareware or trial software? Free software has enormous appeal simply because it's free - witness how popular the open source applications are becoming. I will save comments on how the open source movement is affecting the software industry for another day however. What if I find a nifty application on the Internet and like what I see? Darn! They want $350US for a license. Can I decompile it and re-build it with the copy protection disabled to save me money? What if I'm a poor student without a job - does that make it more honorable?
What about viruses, mal-ware or spy-ware? If I suspect that an application has a virus can I look inside? Isn't that what anti-virus software does? It seems easy to answer that question with a affirmative. OK, now what about spy-ware?
Summary
I'm not sure if I have the right answers yet. In the hope of bringing some form of closure to this post I've summed up my thoughts as follows.
Good reasons
- We own the code.
- Company is bankrupt and we need further development or maintenance of our code.
- Virus detection
Bad reasons
- To bypass copy protection.
- To steal/borrow another persons algorithm.
Comments
What do you think?