If I am building a C++ application and I want to make it more difficult to reverse engineer, what steps can I take to do this?
- Does the choice of compiler affect this?
- What about compiler flags, presumably a high optimization level would help, what about other flags?
- Does stripping symbols help and not building with debug symbols?
- Should I encrypt any internal data such as static strings?
- What other steps might I take?