What does the ownership of software actually mean? Is it the compiled executable? Or the source code? I think (simply put) it's the source code and the permission to compile/distribute executables. So I actually only acquire permission to use/run the executable they supply me.
Software is so often defended as a black box. You may only double click on the icon on your computer desktop, click the buttons inside the windows and do nothing else with it. "Don't touch it, it's our IP!"
Whereas if I have got a hardware device and don't like to press the power button, there is little to stop me from changing that around by automating it with a relay, either internally or externally.
Moreover, I am pretty certain Dutch law prescribes that if you have got a piece of software, which you have the full rights to own&use (valid license and stuff), and want to create/maintain interoperability between your own software, then you're 'allowed' to reverse engineer (
disassemble) the software to figure out how it works, so your own software can adopt/react to it. However you may not release this information, nor may you create a product which competes with the original.
It almost says jailbreaking your iPhone to run own apps (that are not from the app store) is not illegal, but it's a grey area as it doesn't say anything about modification of original software. Apple (but any other company , like Microsoft or Nokia Symbian) will claim it's (disassembly, decompilation, etc.) not allowed by any stretch of the imagination, but probably is nonsense.
Because modification is not (yet) mentioned: I would argue that to increase the interoperability between a DSO and me I need to modify the branch-if-conditions code in the scope to unlock all serial decoders and bandwidth.[/sarcasm]
There are some examples where hacked software is distributed and sometimes even promoted (although not always supported) by the original creators. I take some examples from games, like Just Cause 2 Multiplayer Mod or Skyrim Script Extender. These mods all rely on hacking the original binary/game engine on the fly (not on disk, but in memory) with clever memory signature scanning, function hooks, so game code calls to their mod instead and changes the behavior of the software. Thus enables them to create what they want to do. They however, did not modify the original binary!
This is done all over the place, most original Half Life 2 mods work this way too.. Not to mention cheat programs like trainers. And arguably even more dirty, "anti-cheating tools" use very similar tools to those of game modders&hackers to protect their game from cheaters. Fight fire with fire.
In case of Just Cause 2, this has been acquired with reverse engineering and other clever hack techniques, and is actually picked up by the
official developers.
As for software "licenses", I think this is an interesting video:
For me personally software licenses sounds like, if you don't ask, you don't get no as an answer.