This presentation will seek to identify the current strategies for attacking and defending software against well-known reverse engineering attacks. Discussion will include advancements made in reverse engineering and current directions in this constantly evolving field. The talk will pay special attention to existing APIs, development strategies, and third-party solutions to prevent reverse engineering.