Share via

Is looking at the assembly code of a Windows API function for learning illegal?

eggsa 21 Reputation points
2022-09-17T20:13:20.023+00:00

The EULA for Windows states that reverse engineering is not allowed (with some exceptions however). Lets assume I wanted to take a closer look at how for example CoGetClassObject works under the hood because I am curious. For that purpose I am using a disassembler. Is that already considered illegal reverse engineering? I am especially confused by the fact that microsoft themselves provide tools and even debug symbols for that. Or for example the authors of the Windows Internals book series clearly state at the beginning of the book that even they disassembled windows code in order to write the book. Apparently Microsoft didn't really care about that.

Community Center | Not monitored
0 comments No comments

Answer accepted by question author

Dillon Silzer 60,926 Reputation points Volunteer Moderator
2022-09-17T20:36:49.35+00:00

Hi @eggsa

This message is not legal advice (only from the research I have completed). If someone has a correction, please let me know.

1) Generally speaking, reverse engineering in your situation is legal and ethical (see articles below):

https://ethics.csc.ncsu.edu/intellectual/reverse/study.php

https://www.law.cornell.edu/wex/reverse_engineering#:\~:text=Reverse%20engineering%20is%20generally%20legal,engineering%20is%20not%20a%20defense.

2) Where it begins to be unethical/illegal is when you copy the product and use it to create a copycat product.

3) I would also consult with your country's (locale) laws with regards to reverse engineering as stated by Microsoft:

General Terms

242243-image.png

https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use#11--general-terms

Microsoft APIs License and Guidelines

242120-image.png

https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use#3--microsoft-apis-license-and-guidelines


If this is helpful please accept answer.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.