This thread is a great example of why I think open-source is a distracter for true freedom: it emphasises the notion that source is somehow necessary to understand and modify software, when the truth is far from it.
Legal or not, you can always take a disassembler to a binary and find out the truth, just like you can do the same to other devices and understand their workings much like what the "true scientists" do[1]. Crackers and the security industry have been doing that for decades. PC magazines of the 80s and early 90s even told you how to patch your own software --- without source --- to accomplish certain things like fixing bugs or changing "annoyances".
I often wonder what the state of software would be like if Stallman emphasised the right to inspect and modify regardless of source code availability; perhaps there would be far less open-source projects, but people would have a much more intimate familiarity with how computers work in general.
If I can modify the binary, I don't need the source. Especially for large projects, where trying to figure out how to compile the exact same binary I already have and know works, along with its massive tree of dependencies, can be even more difficult compared to just opening it in a hex editor and patching a few bytes.
[1] It seems computer scientists mainly focus on construction unlike physicists, biologists, and chemists who focus on analysis first.
I still think open source is an important effort, editing/reading source code will always be more efficient then reverse engineering and modifying the binary.
That being said, I agree with much of what you say, and I am working on learning re/binary patching. Are there any good resources you could recommend?
Get a manual for your processors assembly and a description of the way binaries are organized for your operating system (Headers, sections).
Try to build a minimal binary with c, analyze it, try to modify it. Find out what the appropriate tools are for your operating system.
Legal or not, you can always take a disassembler to a binary and find out the truth, just like you can do the same to other devices and understand their workings much like what the "true scientists" do[1]. Crackers and the security industry have been doing that for decades. PC magazines of the 80s and early 90s even told you how to patch your own software --- without source --- to accomplish certain things like fixing bugs or changing "annoyances".
I often wonder what the state of software would be like if Stallman emphasised the right to inspect and modify regardless of source code availability; perhaps there would be far less open-source projects, but people would have a much more intimate familiarity with how computers work in general.
If I can modify the binary, I don't need the source. Especially for large projects, where trying to figure out how to compile the exact same binary I already have and know works, along with its massive tree of dependencies, can be even more difficult compared to just opening it in a hex editor and patching a few bytes.
[1] It seems computer scientists mainly focus on construction unlike physicists, biologists, and chemists who focus on analysis first.