I have seen that operating systems like windows, apple, and android all use some sort of hexadecimal code language, which is obviously not human friendly. (I hope I am using that term correctly)
That’s the difference between high-level and low-level languages.
48 65 6C 6C 6F 20 77 6F 72 6C 64
01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100
This is precisely why people created languages that have a very high level of abstraction.
High-level languages do a lot “under the hood” to make things simpler for us.
They’re human-friendly. Binary is machine-friendly. Because computers cannot understand human-friendly languages.
For example, in Go you’d write
You’ll then have to compile this into a binary executable that the machine can understand.
So the compiler will translate high-level into low-level. Makes sense.
So you want to reverse engineer? You could use a decompiler I guess (the opposite of the compiler)
And you could then recompile.
This is used a lot in software security. And I guess in cracking as well. So, careful on your use case.
Also keep in mind that source code is often considered commercial secret, and can be protected by law. If it’s not open-source, you’ll want to be careful how you treat such code / what you do with it.
Hope this answers your question