
Ask HN: Can you run a binary without reverse engineering? - awinter-py
A lot of things happen when I run a program on my computer. It might get analyzed by a virus scanner, it might get mapped &amp; rewritten by the OS loader. OSX might optimize it for my shared library layout if it&#x27;s the first run.<p>If the binary blob is CLR or python bytecode, the program will be analyzed and completely rewritten to run on my native architecture.<p>If the binary blob is machine code, my CPU will analyze pieces of it and translate them into microcode.<p>These forms of analysis aren&#x27;t substantively different from so-called &#x27;reverse engineering&#x27;. Is there a clear line between running a binary and the reverse engineering people get sued for?
======
GFK_of_xmaspast
When was the last time you actually reverse-engineered something, that you'd
think to ask this question.

------
orionblastar
Reverse engineering is different in that a human being unassembles a binary
file with some reverse engineering tool to figure out how it works so they can
make their own version of it.

For example there are secret API calls that are not documented in Windows or
any other software. You can find them by reverse engineering the system files
to find the undocumented secret API calls. The WINE project uses the
documented API calls and if they reversed engineered Windows they'd find the
hidden secret API calls to make it more compatible. But the law forbids that.

Reverse engineering is also used to find vulnerabilities in code and document
them.

What the virus scanner or OS does to modify a binary file is not the same as
reverse engineering, there is no human doing the work, and the software
optimizes or checks the file for problems. I think the modifications are done
in memory instead of to the file on the hard drive.

