Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Reflection Legalities 1

Status
Not open for further replies.

DriveByCheckmate

Programmer
Jun 2, 2008
19
US
Hi Everyone,

Are there any legal repercussions to reflecting someone else's code? I'm not trying to steal anything - I have a client who wants something done with a custom piece of software and I'm trying to figure out how the core application does it so I can replicate the behavior.

Anyone have any feedback for me?
 
This might be a better question for forum717.

I will warn you that most companies who produce software know about reflector though, and take measures to obfuscate their code. Your time might be better spent studying their API documentation, and asking questions about the particular component.

Hope this helps,


Alex

[small]----signature below----[/small]
Majority rule don't work in mental institutions

My Crummy Web Page
 
Hi Alex,

I thought about the ethics forum but reflection is a .NET thing (I think) so I figure it might not be understood in general context.

I wish their was an API - part of the reason I'm doing what I'm doing is becuase of the companies inability to get it done, they have nothing even close to an API.

Obfuscatation doesn't scare me. Really, only concerned about one thing in regard to this forum post - is it legal?

 
I would guess that depends on 3 things...

1. Where you live since laws are different everwhere
2. Who's .net assembly you are trying to reflect
3. If you are trying to use someone elses assembly with their knowledge, consent, and/or license agreement or if you are simply trying to reverse engineer someone elses work to use as your own.

If you have serious legal concerns - go spend an hour at your local lawyer for a quick assessment. If I was seriously concerned I'd rather spend the money on a lawyer rather than.....

just my $0.02

 
Also keep in mind that there's a difference between ethical and legal.

There may be an instance where the letter of the law lets you do something, but it's still not ethical. The fact that you're asking about it tends me to believe that it's going down the path of non-ethical.

When it comes to reflecting other people's code, I strongly recommend against it. IF there's a circumstance where you have a valid reason to do it, and there's no API, then call the company that created the assembly and ask if you can do it. They just might say yes (make sure you get that in writing tho...management changes can happen and you not know about it). If they say no, then don't do it.

You said you're wanting to see how they're doing a particular action. That makes me believe that you really just want to get an idea of how they do it and reproduce it. You might want to spend a few minutes and design what needs to be done. A few hours on a white-board will probably give you all the information you need to write your own without having to reflect their code.

im in ur stakz, overflowin ur heapz!
 
Depends on what the license says. It may have a "no decompilation, no reverse-engineering" clause in it.

The other thing to be aware of: if you have run one of the Microsoft assemblies thru ILDASM or Reflector, you cannot contribute to some of the open-source projects (like Mono).

Chip H.


____________________________________________________________________
www.chipholland.com
 
Interesting point Chip. I wasn't aware of that restriction on running MS assemblies through ILDASM. Not that I'm contributing to any open-source projects atm, but still interesting. I wonder if they plan to put something in ILDASM to track/report useage to monitor this????

im in ur stakz, overflowin ur heapz!
 
It's not Microsoft that cares if you decompile the System assembly -- it's the Mono project. They're really worried that someone with internal knowledge of .NET will contribute to the project, and contaminate their IP. Thus giving MSFT grounds to sue them into oblivion.

Right now, IMO, Microsoft is subtly favoring Mono, as it gives them the ability to have someone to point to, to say "See, we're multi-platform!"

But that may not last, so the Mono guys are playing it smart and planning for the day that Mono no longer fits into Microsoft's larger strategic vision.

Chip H.


____________________________________________________________________
www.chipholland.com
 
AHHHHHHH....now THAT makes sense!

im in ur stakz, overflowin ur heapz!
 
Ah yes I did not even think of that chip. Your comment sparked a tangential discussion here, hope you don't mind if I plagiarize your comments again ;)

[small]----signature below----[/small]
Majority rule don't work in mental institutions

My Crummy Web Page
 
Thanks for all the great feedback everyone.

Ethical versus legal - macleod1021, don't be quick to judge. Just because I'm asking doesn't suggests that I'm doing anything unethical. There are plenty of things that are illegal that I wouldn't consider unethical and vis versa.

"Ask the company about it if there's no API" - we're actually working on that but I want to make sure we're aware of all of our options - worst case...

There's actually come decompiling type case with Sega versus Nintendo that would come to our aid in this circumstance if needed. If someone finds this topic looking for more information that's a good reference.

Alex, glad this post sparked some comments that were interesting to be worthy of another post. Thanks again everyone.
 
Your comment sparked a tangential discussion here, hope you don't mind if I plagiarize your comments again

Dave (who runs Tek-Tips) might appreciate a link-back when you do this.

Chip H.


____________________________________________________________________
www.chipholland.com
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top