3 ms·
Ask HN: Can you run a binary without reverse engineering?
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 & rewritten by the OS loader. OSX might optimize it for my shared library layout if it's the first run.
If the binary blob is CLR or python bytecode, the program will be analyzed and completely rewritten to run on my native architecture.
If the binary blob is machine code, my CPU will analyze pieces of it and translate them into microcode.
These forms of analysis aren't substantively different from so-called 'reverse engineering'. Is there a clear line between running a binary and the reverse engineering people get sued for?
- GFK_of_xmaspast 11y agoWhen was the last time you actually reverse-engineered something, that you'd think to ask this question.
- orionblastar 11y agoReverse 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.