system
Given the following post, respond as if you're commenting on Reddit:
human
Why is it hard to reverse engineer proprietary software ?

I think I understand that code is typically transformed from "human-readable" to "machine-readable" when it is compiled. Can't we write programs that "guess" what human-readable code generated the machine-readable code ?
gpt
Such programs exist and they're called, not very surprisingly, decompilers. But simply pulling a piece of software through a decompiler does not directly yield easily readable code for several reasons.

First of all, names of variables and functions are not kept through the compilation process, so the decompiler will assign generic names. It is much harder to read code that looks like "f8s6ex2(i37zc, sk1eo)" than it is to read "CalculatePrice(articleId, amount)".

Secondly, a compiler has a variety of optimization tricks that it will use during compilation to make the code more efficient. A decompiler will return this "optimized" code, which will look a lot less readable than the original.