this post was submitted on 26 Jun 2023
8 points (100.0% liked)
Explain Like I'm Five
14289 readers
1 users here now
Simplifying Complexity, One Answer at a Time!
Rules
- Be respectful and inclusive.
- No harassment, hate speech, or trolling.
- Engage in constructive discussions.
- Share relevant content.
- Follow guidelines and moderators' instructions.
- Use appropriate language and tone.
- Report violations.
- Foster a continuous learning environment.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
To understand this you need to know how code is compiled into machine code. So basically computers only understand ones and zeros, but that's really hard for humans to work with. So we created something called assembly, which allows us to convert more human understandable phrases like "add" and "sub" to perform calculations and map them to certain machine code instructions (AKA ones and zeros). But it turns out using just assembly was also pretty tedious, so they created languages like C, where you have another program called a compiler take in C code which was easier for humans to understand and convert it to the equivalent assembly automatically.
So most software you run on the computer is a binary, meaning it's a bunch of the machine code that was previously compiled from some other language like C. You can decompile these binaries back into assembly, which you can then manually read and convert back to a more human readable language. There's also other tools out there that make this process easier, but that's the basic idea: take ones and zeros, convert it back into assembly, then try and figure out how it works from there.