A Survey on the Role of Reverse Engineering in Security Attacks