[SOLVED] Decompile vs. Reverse Engineering

Solution
What is the differences between the two?
In PowerShell Package ,one of the software agreement talks about them in separate, Why?
Decompile:
Take the machine code, an exe perhaps, and decompile (extract) it out to some language readable code.
https://whatis.techtarget.com/definition/decompile

Reverse engineer:
Look at the input and output, and figure out how it got to that output.
https://whatis.techtarget.com/search/query?q=reverse+engineer
(reverse engineering can be done with anything, not just computer code)

USAFRet

Titan
Moderator
What is the differences between the two?
In PowerShell Package ,one of the software agreement talks about them in separate, Why?
Decompile:
Take the machine code, an exe perhaps, and decompile (extract) it out to some language readable code.
https://whatis.techtarget.com/definition/decompile

Reverse engineer:
Look at the input and output, and figure out how it got to that output.
https://whatis.techtarget.com/search/query?q=reverse+engineer
(reverse engineering can be done with anything, not just computer code)
 
Solution
The reason they're separate is for copyright reasons. Decompiling effectively gives you the source code of the app. It may not be exactly the same source code, but it's enough that for copyright reasons it's not yours. Reverse engineering, at least if you only look at the inputs and outputs of the app, is copying the behavior of the app which is not copyrightable.

For example, Microsoft Paint and Adobe Photoshop can be used to produce the same exact image (the behavior), but Microsoft can't use Adobe's source code or vice versa to achieve it.