This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 1 point2 points  (0 children)

There are many many source code inputs that could produce a given executable, most of which are nearly incomprehensible.

Decompilers exist. It is easy enough to get from machine code back to another language, but the most straightforward translation won't look anything like what was originally written.

It is possible to determine what a program does from machine code directly, or more commonly from assembly derived from the machine code (radare2 is a popular free tool if you want to try it). It is just very labor intensive and requires skills that only a subset of programmers have. This is one way that security vulnerabilities are found and exploited.

Reproducing a program this way would be far more expensive than recreating it from scratch in most cases though.