This is similar in nature to this question and this question; I'm interested in what compiler settings to enabled/disable to make a Visual C++ harder to reverse engineer.
Here's a few compiler flags I've already got which I believe should be set:
/Ox
Full optimization. This appears to be the equivalent of gcc's -O3
/Oy
Omit frame pointers. (x86 only)
/GR-
Disable Run Time Type Information
/MT
flag is used to static link the various libraries.
Visibility - I don't think the MSVC compiler has any options to turn off visibility like -fvisibility=hidden
offered in gcc, but is this necessary for MSVC since the debugging symbols are stored in the PDB file?
Are there any other things I should include to ensure minimal information is distrubuted in the application?
(I might add that I am creating a standalone executable)